// C++/WinRT v2.0.250303.1 // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. #pragma once #ifndef WINRT_Windows_Security_Cryptography_Certificates_H #define WINRT_Windows_Security_Cryptography_Certificates_H #include "winrt/base.h" static_assert(winrt::check_version(CPPWINRT_VERSION, "2.0.250303.1"), "Mismatched C++/WinRT headers."); #define CPPWINRT_VERSION "2.0.250303.1" #include "winrt/Windows.Security.Cryptography.h" #include "winrt/impl/Windows.Foundation.2.h" #include "winrt/impl/Windows.Foundation.Collections.2.h" #include "winrt/impl/Windows.Networking.2.h" #include "winrt/impl/Windows.Storage.Streams.2.h" #include "winrt/impl/Windows.Security.Cryptography.Certificates.2.h" namespace winrt::impl { template auto consume_Windows_Security_Cryptography_Certificates_ICertificate::BuildChainAsync(param::async_iterable const& certificates) const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->BuildChainAsync(*(void**)(&certificates), &value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->BuildChainAsync(*(void**)(&certificates), &value)); } return winrt::Windows::Foundation::IAsyncOperation{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificate::BuildChainAsync(param::async_iterable const& certificates, winrt::Windows::Security::Cryptography::Certificates::ChainBuildingParameters const& parameters) const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->BuildChainWithParametersAsync(*(void**)(&certificates), *(void**)(¶meters), &value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->BuildChainWithParametersAsync(*(void**)(&certificates), *(void**)(¶meters), &value)); } return winrt::Windows::Foundation::IAsyncOperation{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificate::SerialNumber() const { uint32_t value_impl_size{}; uint8_t* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_SerialNumber(&value_impl_size, &value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_SerialNumber(&value_impl_size, &value)); } return com_array{ value, value_impl_size, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificate::GetHashValue() const { uint32_t value_impl_size{}; uint8_t* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->GetHashValue(&value_impl_size, &value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->GetHashValue(&value_impl_size, &value)); } return com_array{ value, value_impl_size, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificate::GetHashValue(param::hstring const& hashAlgorithmName) const { uint32_t value_impl_size{}; uint8_t* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->GetHashValueWithAlgorithm(*(void**)(&hashAlgorithmName), &value_impl_size, &value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->GetHashValueWithAlgorithm(*(void**)(&hashAlgorithmName), &value_impl_size, &value)); } return com_array{ value, value_impl_size, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificate::GetCertificateBlob() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->GetCertificateBlob(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->GetCertificateBlob(&value)); } return winrt::Windows::Storage::Streams::IBuffer{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificate::Subject() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Subject(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Subject(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificate::Issuer() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Issuer(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Issuer(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificate::HasPrivateKey() const { bool value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_HasPrivateKey(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_HasPrivateKey(&value)); } return value; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificate::IsStronglyProtected() const { bool value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_IsStronglyProtected(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_IsStronglyProtected(&value)); } return value; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificate::ValidFrom() const { winrt::Windows::Foundation::DateTime value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_ValidFrom(put_abi(value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_ValidFrom(put_abi(value))); } return value; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificate::ValidTo() const { winrt::Windows::Foundation::DateTime value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_ValidTo(put_abi(value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_ValidTo(put_abi(value))); } return value; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificate::EnhancedKeyUsages() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_EnhancedKeyUsages(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_EnhancedKeyUsages(&value)); } return winrt::Windows::Foundation::Collections::IVectorView{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificate::FriendlyName(param::hstring const& value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_FriendlyName(*(void**)(&value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_FriendlyName(*(void**)(&value))); } } template auto consume_Windows_Security_Cryptography_Certificates_ICertificate::FriendlyName() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_FriendlyName(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_FriendlyName(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificate2::IsSecurityDeviceBound() const { bool value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_IsSecurityDeviceBound(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_IsSecurityDeviceBound(&value)); } return value; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificate2::KeyUsages() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_KeyUsages(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_KeyUsages(&value)); } return winrt::Windows::Security::Cryptography::Certificates::CertificateKeyUsages{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificate2::KeyAlgorithmName() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_KeyAlgorithmName(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_KeyAlgorithmName(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificate2::SignatureAlgorithmName() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_SignatureAlgorithmName(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_SignatureAlgorithmName(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificate2::SignatureHashAlgorithmName() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_SignatureHashAlgorithmName(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_SignatureHashAlgorithmName(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificate2::SubjectAlternativeName() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_SubjectAlternativeName(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_SubjectAlternativeName(&value)); } return winrt::Windows::Security::Cryptography::Certificates::SubjectAlternativeNameInfo{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificate3::IsPerUser() const { bool value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_IsPerUser(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_IsPerUser(&value)); } return value; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificate3::StoreName() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_StoreName(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_StoreName(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificate3::KeyStorageProviderName() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_KeyStorageProviderName(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_KeyStorageProviderName(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateChain::Validate() const { winrt::Windows::Security::Cryptography::Certificates::ChainValidationResult status{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->Validate(reinterpret_cast(&status))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->Validate(reinterpret_cast(&status))); } return status; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateChain::Validate(winrt::Windows::Security::Cryptography::Certificates::ChainValidationParameters const& parameter) const { winrt::Windows::Security::Cryptography::Certificates::ChainValidationResult status{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->ValidateWithParameters(*(void**)(¶meter), reinterpret_cast(&status))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->ValidateWithParameters(*(void**)(¶meter), reinterpret_cast(&status))); } return status; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateChain::GetCertificates(bool includeRoot) const { void* certificates{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->GetCertificates(includeRoot, &certificates)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->GetCertificates(includeRoot, &certificates)); } return winrt::Windows::Foundation::Collections::IVectorView{ certificates, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateEnrollmentManagerStatics::CreateRequestAsync(winrt::Windows::Security::Cryptography::Certificates::CertificateRequestProperties const& request) const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->CreateRequestAsync(*(void**)(&request), &value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->CreateRequestAsync(*(void**)(&request), &value)); } return winrt::Windows::Foundation::IAsyncOperation{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateEnrollmentManagerStatics::InstallCertificateAsync(param::hstring const& certificate, winrt::Windows::Security::Cryptography::Certificates::InstallOptions const& installOption) const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->InstallCertificateAsync(*(void**)(&certificate), static_cast(installOption), &value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->InstallCertificateAsync(*(void**)(&certificate), static_cast(installOption), &value)); } return winrt::Windows::Foundation::IAsyncAction{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateEnrollmentManagerStatics::ImportPfxDataAsync(param::hstring const& pfxData, param::hstring const& password, winrt::Windows::Security::Cryptography::Certificates::ExportOption const& exportable, winrt::Windows::Security::Cryptography::Certificates::KeyProtectionLevel const& keyProtectionLevel, winrt::Windows::Security::Cryptography::Certificates::InstallOptions const& installOption, param::hstring const& friendlyName) const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->ImportPfxDataAsync(*(void**)(&pfxData), *(void**)(&password), static_cast(exportable), static_cast(keyProtectionLevel), static_cast(installOption), *(void**)(&friendlyName), &value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->ImportPfxDataAsync(*(void**)(&pfxData), *(void**)(&password), static_cast(exportable), static_cast(keyProtectionLevel), static_cast(installOption), *(void**)(&friendlyName), &value)); } return winrt::Windows::Foundation::IAsyncAction{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateEnrollmentManagerStatics2::UserCertificateEnrollmentManager() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_UserCertificateEnrollmentManager(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_UserCertificateEnrollmentManager(&value)); } return winrt::Windows::Security::Cryptography::Certificates::UserCertificateEnrollmentManager{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateEnrollmentManagerStatics2::ImportPfxDataAsync(param::hstring const& pfxData, param::hstring const& password, winrt::Windows::Security::Cryptography::Certificates::ExportOption const& exportable, winrt::Windows::Security::Cryptography::Certificates::KeyProtectionLevel const& keyProtectionLevel, winrt::Windows::Security::Cryptography::Certificates::InstallOptions const& installOption, param::hstring const& friendlyName, param::hstring const& keyStorageProvider) const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->ImportPfxDataToKspAsync(*(void**)(&pfxData), *(void**)(&password), static_cast(exportable), static_cast(keyProtectionLevel), static_cast(installOption), *(void**)(&friendlyName), *(void**)(&keyStorageProvider), &value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->ImportPfxDataToKspAsync(*(void**)(&pfxData), *(void**)(&password), static_cast(exportable), static_cast(keyProtectionLevel), static_cast(installOption), *(void**)(&friendlyName), *(void**)(&keyStorageProvider), &value)); } return winrt::Windows::Foundation::IAsyncAction{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateEnrollmentManagerStatics3::ImportPfxDataAsync(param::hstring const& pfxData, param::hstring const& password, winrt::Windows::Security::Cryptography::Certificates::PfxImportParameters const& pfxImportParameters) const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->ImportPfxDataToKspWithParametersAsync(*(void**)(&pfxData), *(void**)(&password), *(void**)(&pfxImportParameters), &value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->ImportPfxDataToKspWithParametersAsync(*(void**)(&pfxData), *(void**)(&password), *(void**)(&pfxImportParameters), &value)); } return winrt::Windows::Foundation::IAsyncAction{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateExtension::ObjectId() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_ObjectId(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_ObjectId(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateExtension::ObjectId(param::hstring const& value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_ObjectId(*(void**)(&value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_ObjectId(*(void**)(&value))); } } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateExtension::IsCritical() const { bool value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_IsCritical(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_IsCritical(&value)); } return value; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateExtension::IsCritical(bool value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_IsCritical(value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_IsCritical(value)); } } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateExtension::EncodeValue(param::hstring const& value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->EncodeValue(*(void**)(&value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->EncodeValue(*(void**)(&value))); } } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateExtension::Value() const { uint32_t value_impl_size{}; uint8_t* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Value(&value_impl_size, &value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Value(&value_impl_size, &value)); } return com_array{ value, value_impl_size, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateExtension::Value(array_view value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_Value(value.size(), get_abi(value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_Value(value.size(), get_abi(value))); } } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateFactory::CreateCertificate(winrt::Windows::Storage::Streams::IBuffer const& certBlob) const { void* certificate{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->CreateCertificate(*(void**)(&certBlob), &certificate)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->CreateCertificate(*(void**)(&certBlob), &certificate)); } return winrt::Windows::Security::Cryptography::Certificates::Certificate{ certificate, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateKeyUsages::EncipherOnly() const { bool value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_EncipherOnly(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_EncipherOnly(&value)); } return value; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateKeyUsages::EncipherOnly(bool value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_EncipherOnly(value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_EncipherOnly(value)); } } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateKeyUsages::CrlSign() const { bool value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_CrlSign(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_CrlSign(&value)); } return value; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateKeyUsages::CrlSign(bool value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_CrlSign(value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_CrlSign(value)); } } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateKeyUsages::KeyCertificateSign() const { bool value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_KeyCertificateSign(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_KeyCertificateSign(&value)); } return value; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateKeyUsages::KeyCertificateSign(bool value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_KeyCertificateSign(value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_KeyCertificateSign(value)); } } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateKeyUsages::KeyAgreement() const { bool value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_KeyAgreement(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_KeyAgreement(&value)); } return value; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateKeyUsages::KeyAgreement(bool value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_KeyAgreement(value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_KeyAgreement(value)); } } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateKeyUsages::DataEncipherment() const { bool value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_DataEncipherment(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_DataEncipherment(&value)); } return value; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateKeyUsages::DataEncipherment(bool value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_DataEncipherment(value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_DataEncipherment(value)); } } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateKeyUsages::KeyEncipherment() const { bool value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_KeyEncipherment(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_KeyEncipherment(&value)); } return value; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateKeyUsages::KeyEncipherment(bool value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_KeyEncipherment(value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_KeyEncipherment(value)); } } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateKeyUsages::NonRepudiation() const { bool value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_NonRepudiation(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_NonRepudiation(&value)); } return value; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateKeyUsages::NonRepudiation(bool value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_NonRepudiation(value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_NonRepudiation(value)); } } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateKeyUsages::DigitalSignature() const { bool value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_DigitalSignature(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_DigitalSignature(&value)); } return value; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateKeyUsages::DigitalSignature(bool value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_DigitalSignature(value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_DigitalSignature(value)); } } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateQuery::EnhancedKeyUsages() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_EnhancedKeyUsages(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_EnhancedKeyUsages(&value)); } return winrt::Windows::Foundation::Collections::IVector{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateQuery::IssuerName() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_IssuerName(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_IssuerName(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateQuery::IssuerName(param::hstring const& value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_IssuerName(*(void**)(&value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_IssuerName(*(void**)(&value))); } } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateQuery::FriendlyName() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_FriendlyName(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_FriendlyName(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateQuery::FriendlyName(param::hstring const& value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_FriendlyName(*(void**)(&value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_FriendlyName(*(void**)(&value))); } } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateQuery::Thumbprint() const { uint32_t value_impl_size{}; uint8_t* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Thumbprint(&value_impl_size, &value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Thumbprint(&value_impl_size, &value)); } return com_array{ value, value_impl_size, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateQuery::Thumbprint(array_view value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_Thumbprint(value.size(), get_abi(value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_Thumbprint(value.size(), get_abi(value))); } } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateQuery::HardwareOnly() const { bool value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_HardwareOnly(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_HardwareOnly(&value)); } return value; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateQuery::HardwareOnly(bool value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_HardwareOnly(value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_HardwareOnly(value)); } } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateQuery2::IncludeDuplicates() const { bool value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_IncludeDuplicates(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_IncludeDuplicates(&value)); } return value; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateQuery2::IncludeDuplicates(bool value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_IncludeDuplicates(value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_IncludeDuplicates(value)); } } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateQuery2::IncludeExpiredCertificates() const { bool value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_IncludeExpiredCertificates(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_IncludeExpiredCertificates(&value)); } return value; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateQuery2::IncludeExpiredCertificates(bool value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_IncludeExpiredCertificates(value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_IncludeExpiredCertificates(value)); } } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateQuery2::StoreName() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_StoreName(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_StoreName(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateQuery2::StoreName(param::hstring const& value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_StoreName(*(void**)(&value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_StoreName(*(void**)(&value))); } } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateRequestProperties::Subject() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Subject(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Subject(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateRequestProperties::Subject(param::hstring const& value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_Subject(*(void**)(&value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_Subject(*(void**)(&value))); } } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateRequestProperties::KeyAlgorithmName() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_KeyAlgorithmName(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_KeyAlgorithmName(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateRequestProperties::KeyAlgorithmName(param::hstring const& value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_KeyAlgorithmName(*(void**)(&value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_KeyAlgorithmName(*(void**)(&value))); } } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateRequestProperties::KeySize() const { uint32_t value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_KeySize(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_KeySize(&value)); } return value; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateRequestProperties::KeySize(uint32_t value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_KeySize(value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_KeySize(value)); } } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateRequestProperties::FriendlyName() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_FriendlyName(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_FriendlyName(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateRequestProperties::FriendlyName(param::hstring const& value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_FriendlyName(*(void**)(&value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_FriendlyName(*(void**)(&value))); } } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateRequestProperties::HashAlgorithmName() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_HashAlgorithmName(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_HashAlgorithmName(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateRequestProperties::HashAlgorithmName(param::hstring const& value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_HashAlgorithmName(*(void**)(&value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_HashAlgorithmName(*(void**)(&value))); } } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateRequestProperties::Exportable() const { winrt::Windows::Security::Cryptography::Certificates::ExportOption value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Exportable(reinterpret_cast(&value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Exportable(reinterpret_cast(&value))); } return value; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateRequestProperties::Exportable(winrt::Windows::Security::Cryptography::Certificates::ExportOption const& value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_Exportable(static_cast(value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_Exportable(static_cast(value))); } } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateRequestProperties::KeyUsages() const { winrt::Windows::Security::Cryptography::Certificates::EnrollKeyUsages value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_KeyUsages(reinterpret_cast(&value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_KeyUsages(reinterpret_cast(&value))); } return value; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateRequestProperties::KeyUsages(winrt::Windows::Security::Cryptography::Certificates::EnrollKeyUsages const& value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_KeyUsages(static_cast(value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_KeyUsages(static_cast(value))); } } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateRequestProperties::KeyProtectionLevel() const { winrt::Windows::Security::Cryptography::Certificates::KeyProtectionLevel value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_KeyProtectionLevel(reinterpret_cast(&value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_KeyProtectionLevel(reinterpret_cast(&value))); } return value; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateRequestProperties::KeyProtectionLevel(winrt::Windows::Security::Cryptography::Certificates::KeyProtectionLevel const& value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_KeyProtectionLevel(static_cast(value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_KeyProtectionLevel(static_cast(value))); } } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateRequestProperties::KeyStorageProviderName() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_KeyStorageProviderName(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_KeyStorageProviderName(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateRequestProperties::KeyStorageProviderName(param::hstring const& value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_KeyStorageProviderName(*(void**)(&value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_KeyStorageProviderName(*(void**)(&value))); } } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateRequestProperties2::SmartcardReaderName() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_SmartcardReaderName(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_SmartcardReaderName(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateRequestProperties2::SmartcardReaderName(param::hstring const& value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_SmartcardReaderName(*(void**)(&value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_SmartcardReaderName(*(void**)(&value))); } } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateRequestProperties2::SigningCertificate() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_SigningCertificate(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_SigningCertificate(&value)); } return winrt::Windows::Security::Cryptography::Certificates::Certificate{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateRequestProperties2::SigningCertificate(winrt::Windows::Security::Cryptography::Certificates::Certificate const& value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_SigningCertificate(*(void**)(&value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_SigningCertificate(*(void**)(&value))); } } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateRequestProperties2::AttestationCredentialCertificate() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_AttestationCredentialCertificate(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_AttestationCredentialCertificate(&value)); } return winrt::Windows::Security::Cryptography::Certificates::Certificate{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateRequestProperties2::AttestationCredentialCertificate(winrt::Windows::Security::Cryptography::Certificates::Certificate const& value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_AttestationCredentialCertificate(*(void**)(&value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_AttestationCredentialCertificate(*(void**)(&value))); } } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateRequestProperties3::CurveName() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_CurveName(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_CurveName(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateRequestProperties3::CurveName(param::hstring const& value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_CurveName(*(void**)(&value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_CurveName(*(void**)(&value))); } } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateRequestProperties3::CurveParameters() const { uint32_t value_impl_size{}; uint8_t* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_CurveParameters(&value_impl_size, &value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_CurveParameters(&value_impl_size, &value)); } return com_array{ value, value_impl_size, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateRequestProperties3::CurveParameters(array_view value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_CurveParameters(value.size(), get_abi(value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_CurveParameters(value.size(), get_abi(value))); } } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateRequestProperties3::ContainerNamePrefix() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_ContainerNamePrefix(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_ContainerNamePrefix(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateRequestProperties3::ContainerNamePrefix(param::hstring const& value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_ContainerNamePrefix(*(void**)(&value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_ContainerNamePrefix(*(void**)(&value))); } } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateRequestProperties3::ContainerName() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_ContainerName(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_ContainerName(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateRequestProperties3::ContainerName(param::hstring const& value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_ContainerName(*(void**)(&value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_ContainerName(*(void**)(&value))); } } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateRequestProperties3::UseExistingKey() const { bool value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_UseExistingKey(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_UseExistingKey(&value)); } return value; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateRequestProperties3::UseExistingKey(bool value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_UseExistingKey(value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_UseExistingKey(value)); } } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateRequestProperties4::SuppressedDefaults() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_SuppressedDefaults(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_SuppressedDefaults(&value)); } return winrt::Windows::Foundation::Collections::IVector{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateRequestProperties4::SubjectAlternativeName() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_SubjectAlternativeName(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_SubjectAlternativeName(&value)); } return winrt::Windows::Security::Cryptography::Certificates::SubjectAlternativeNameInfo{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateRequestProperties4::Extensions() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Extensions(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Extensions(&value)); } return winrt::Windows::Foundation::Collections::IVector{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateStore::Add(winrt::Windows::Security::Cryptography::Certificates::Certificate const& certificate) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->Add(*(void**)(&certificate))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->Add(*(void**)(&certificate))); } } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateStore::Delete(winrt::Windows::Security::Cryptography::Certificates::Certificate const& certificate) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->Delete(*(void**)(&certificate))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->Delete(*(void**)(&certificate))); } } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateStore2::Name() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Name(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Name(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateStoresStatics::FindAllAsync() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->FindAllAsync(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->FindAllAsync(&value)); } return winrt::Windows::Foundation::IAsyncOperation>{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateStoresStatics::FindAllAsync(winrt::Windows::Security::Cryptography::Certificates::CertificateQuery const& query) const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->FindAllWithQueryAsync(*(void**)(&query), &value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->FindAllWithQueryAsync(*(void**)(&query), &value)); } return winrt::Windows::Foundation::IAsyncOperation>{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateStoresStatics::TrustedRootCertificationAuthorities() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_TrustedRootCertificationAuthorities(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_TrustedRootCertificationAuthorities(&value)); } return winrt::Windows::Security::Cryptography::Certificates::CertificateStore{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateStoresStatics::IntermediateCertificationAuthorities() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_IntermediateCertificationAuthorities(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_IntermediateCertificationAuthorities(&value)); } return winrt::Windows::Security::Cryptography::Certificates::CertificateStore{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateStoresStatics::GetStoreByName(param::hstring const& storeName) const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->GetStoreByName(*(void**)(&storeName), &value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->GetStoreByName(*(void**)(&storeName), &value)); } return winrt::Windows::Security::Cryptography::Certificates::CertificateStore{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICertificateStoresStatics2::GetUserStoreByName(param::hstring const& storeName) const { void* result{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->GetUserStoreByName(*(void**)(&storeName), &result)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->GetUserStoreByName(*(void**)(&storeName), &result)); } return winrt::Windows::Security::Cryptography::Certificates::UserCertificateStore{ result, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_IChainBuildingParameters::EnhancedKeyUsages() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_EnhancedKeyUsages(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_EnhancedKeyUsages(&value)); } return winrt::Windows::Foundation::Collections::IVector{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_IChainBuildingParameters::ValidationTimestamp() const { winrt::Windows::Foundation::DateTime value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_ValidationTimestamp(put_abi(value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_ValidationTimestamp(put_abi(value))); } return value; } template auto consume_Windows_Security_Cryptography_Certificates_IChainBuildingParameters::ValidationTimestamp(winrt::Windows::Foundation::DateTime const& value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_ValidationTimestamp(impl::bind_in(value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_ValidationTimestamp(impl::bind_in(value))); } } template auto consume_Windows_Security_Cryptography_Certificates_IChainBuildingParameters::RevocationCheckEnabled() const { bool value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_RevocationCheckEnabled(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_RevocationCheckEnabled(&value)); } return value; } template auto consume_Windows_Security_Cryptography_Certificates_IChainBuildingParameters::RevocationCheckEnabled(bool value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_RevocationCheckEnabled(value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_RevocationCheckEnabled(value)); } } template auto consume_Windows_Security_Cryptography_Certificates_IChainBuildingParameters::NetworkRetrievalEnabled() const { bool value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_NetworkRetrievalEnabled(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_NetworkRetrievalEnabled(&value)); } return value; } template auto consume_Windows_Security_Cryptography_Certificates_IChainBuildingParameters::NetworkRetrievalEnabled(bool value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_NetworkRetrievalEnabled(value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_NetworkRetrievalEnabled(value)); } } template auto consume_Windows_Security_Cryptography_Certificates_IChainBuildingParameters::AuthorityInformationAccessEnabled() const { bool value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_AuthorityInformationAccessEnabled(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_AuthorityInformationAccessEnabled(&value)); } return value; } template auto consume_Windows_Security_Cryptography_Certificates_IChainBuildingParameters::AuthorityInformationAccessEnabled(bool value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_AuthorityInformationAccessEnabled(value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_AuthorityInformationAccessEnabled(value)); } } template auto consume_Windows_Security_Cryptography_Certificates_IChainBuildingParameters::CurrentTimeValidationEnabled() const { bool value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_CurrentTimeValidationEnabled(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_CurrentTimeValidationEnabled(&value)); } return value; } template auto consume_Windows_Security_Cryptography_Certificates_IChainBuildingParameters::CurrentTimeValidationEnabled(bool value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_CurrentTimeValidationEnabled(value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_CurrentTimeValidationEnabled(value)); } } template auto consume_Windows_Security_Cryptography_Certificates_IChainBuildingParameters::ExclusiveTrustRoots() const { void* certificates{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_ExclusiveTrustRoots(&certificates)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_ExclusiveTrustRoots(&certificates)); } return winrt::Windows::Foundation::Collections::IVector{ certificates, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_IChainValidationParameters::CertificateChainPolicy() const { winrt::Windows::Security::Cryptography::Certificates::CertificateChainPolicy value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_CertificateChainPolicy(reinterpret_cast(&value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_CertificateChainPolicy(reinterpret_cast(&value))); } return value; } template auto consume_Windows_Security_Cryptography_Certificates_IChainValidationParameters::CertificateChainPolicy(winrt::Windows::Security::Cryptography::Certificates::CertificateChainPolicy const& value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_CertificateChainPolicy(static_cast(value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_CertificateChainPolicy(static_cast(value))); } } template auto consume_Windows_Security_Cryptography_Certificates_IChainValidationParameters::ServerDnsName() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_ServerDnsName(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_ServerDnsName(&value)); } return winrt::Windows::Networking::HostName{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_IChainValidationParameters::ServerDnsName(winrt::Windows::Networking::HostName const& value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_ServerDnsName(*(void**)(&value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_ServerDnsName(*(void**)(&value))); } } template auto consume_Windows_Security_Cryptography_Certificates_ICmsAttachedSignature::Certificates() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Certificates(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Certificates(&value)); } return winrt::Windows::Foundation::Collections::IVectorView{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICmsAttachedSignature::Content() const { uint32_t value_impl_size{}; uint8_t* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Content(&value_impl_size, &value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Content(&value_impl_size, &value)); } return com_array{ value, value_impl_size, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICmsAttachedSignature::Signers() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Signers(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Signers(&value)); } return winrt::Windows::Foundation::Collections::IVectorView{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICmsAttachedSignature::VerifySignature() const { winrt::Windows::Security::Cryptography::Certificates::SignatureValidationResult value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->VerifySignature(reinterpret_cast(&value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->VerifySignature(reinterpret_cast(&value))); } return value; } template auto consume_Windows_Security_Cryptography_Certificates_ICmsAttachedSignatureFactory::CreateCmsAttachedSignature(winrt::Windows::Storage::Streams::IBuffer const& inputBlob) const { void* cmsSignedData{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->CreateCmsAttachedSignature(*(void**)(&inputBlob), &cmsSignedData)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->CreateCmsAttachedSignature(*(void**)(&inputBlob), &cmsSignedData)); } return winrt::Windows::Security::Cryptography::Certificates::CmsAttachedSignature{ cmsSignedData, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICmsAttachedSignatureStatics::GenerateSignatureAsync(winrt::Windows::Storage::Streams::IBuffer const& data, param::async_iterable const& signers, param::async_iterable const& certificates) const { void* outputBlob{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->GenerateSignatureAsync(*(void**)(&data), *(void**)(&signers), *(void**)(&certificates), &outputBlob)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->GenerateSignatureAsync(*(void**)(&data), *(void**)(&signers), *(void**)(&certificates), &outputBlob)); } return winrt::Windows::Foundation::IAsyncOperation{ outputBlob, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICmsDetachedSignature::Certificates() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Certificates(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Certificates(&value)); } return winrt::Windows::Foundation::Collections::IVectorView{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICmsDetachedSignature::Signers() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Signers(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Signers(&value)); } return winrt::Windows::Foundation::Collections::IVectorView{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICmsDetachedSignature::VerifySignatureAsync(winrt::Windows::Storage::Streams::IInputStream const& data) const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->VerifySignatureAsync(*(void**)(&data), &value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->VerifySignatureAsync(*(void**)(&data), &value)); } return winrt::Windows::Foundation::IAsyncOperation{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICmsDetachedSignatureFactory::CreateCmsDetachedSignature(winrt::Windows::Storage::Streams::IBuffer const& inputBlob) const { void* cmsSignedData{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->CreateCmsDetachedSignature(*(void**)(&inputBlob), &cmsSignedData)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->CreateCmsDetachedSignature(*(void**)(&inputBlob), &cmsSignedData)); } return winrt::Windows::Security::Cryptography::Certificates::CmsDetachedSignature{ cmsSignedData, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICmsDetachedSignatureStatics::GenerateSignatureAsync(winrt::Windows::Storage::Streams::IInputStream const& data, param::async_iterable const& signers, param::async_iterable const& certificates) const { void* outputBlob{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->GenerateSignatureAsync(*(void**)(&data), *(void**)(&signers), *(void**)(&certificates), &outputBlob)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->GenerateSignatureAsync(*(void**)(&data), *(void**)(&signers), *(void**)(&certificates), &outputBlob)); } return winrt::Windows::Foundation::IAsyncOperation{ outputBlob, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICmsSignerInfo::Certificate() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Certificate(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Certificate(&value)); } return winrt::Windows::Security::Cryptography::Certificates::Certificate{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICmsSignerInfo::Certificate(winrt::Windows::Security::Cryptography::Certificates::Certificate const& value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_Certificate(*(void**)(&value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_Certificate(*(void**)(&value))); } } template auto consume_Windows_Security_Cryptography_Certificates_ICmsSignerInfo::HashAlgorithmName() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_HashAlgorithmName(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_HashAlgorithmName(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICmsSignerInfo::HashAlgorithmName(param::hstring const& value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_HashAlgorithmName(*(void**)(&value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_HashAlgorithmName(*(void**)(&value))); } } template auto consume_Windows_Security_Cryptography_Certificates_ICmsSignerInfo::TimestampInfo() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_TimestampInfo(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_TimestampInfo(&value)); } return winrt::Windows::Security::Cryptography::Certificates::CmsTimestampInfo{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICmsTimestampInfo::SigningCertificate() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_SigningCertificate(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_SigningCertificate(&value)); } return winrt::Windows::Security::Cryptography::Certificates::Certificate{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICmsTimestampInfo::Certificates() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Certificates(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Certificates(&value)); } return winrt::Windows::Foundation::Collections::IVectorView{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ICmsTimestampInfo::Timestamp() const { winrt::Windows::Foundation::DateTime value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Timestamp(put_abi(value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Timestamp(put_abi(value))); } return value; } template auto consume_Windows_Security_Cryptography_Certificates_IKeyAlgorithmNamesStatics::Rsa() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Rsa(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Rsa(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_IKeyAlgorithmNamesStatics::Dsa() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Dsa(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Dsa(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_IKeyAlgorithmNamesStatics::Ecdh256() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Ecdh256(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Ecdh256(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_IKeyAlgorithmNamesStatics::Ecdh384() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Ecdh384(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Ecdh384(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_IKeyAlgorithmNamesStatics::Ecdh521() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Ecdh521(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Ecdh521(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_IKeyAlgorithmNamesStatics::Ecdsa256() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Ecdsa256(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Ecdsa256(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_IKeyAlgorithmNamesStatics::Ecdsa384() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Ecdsa384(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Ecdsa384(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_IKeyAlgorithmNamesStatics::Ecdsa521() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Ecdsa521(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Ecdsa521(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_IKeyAlgorithmNamesStatics2::Ecdsa() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Ecdsa(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Ecdsa(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_IKeyAlgorithmNamesStatics2::Ecdh() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Ecdh(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Ecdh(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_IKeyAttestationHelperStatics::DecryptTpmAttestationCredentialAsync(param::hstring const& credential) const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->DecryptTpmAttestationCredentialAsync(*(void**)(&credential), &value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->DecryptTpmAttestationCredentialAsync(*(void**)(&credential), &value)); } return winrt::Windows::Foundation::IAsyncOperation{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_IKeyAttestationHelperStatics::GetTpmAttestationCredentialId(param::hstring const& credential) const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->GetTpmAttestationCredentialId(*(void**)(&credential), &value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->GetTpmAttestationCredentialId(*(void**)(&credential), &value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_IKeyAttestationHelperStatics2::DecryptTpmAttestationCredentialAsync(param::hstring const& credential, param::hstring const& containerName) const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->DecryptTpmAttestationCredentialWithContainerNameAsync(*(void**)(&credential), *(void**)(&containerName), &value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->DecryptTpmAttestationCredentialWithContainerNameAsync(*(void**)(&credential), *(void**)(&containerName), &value)); } return winrt::Windows::Foundation::IAsyncOperation{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_IKeyStorageProviderNamesStatics::SoftwareKeyStorageProvider() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_SoftwareKeyStorageProvider(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_SoftwareKeyStorageProvider(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_IKeyStorageProviderNamesStatics::SmartcardKeyStorageProvider() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_SmartcardKeyStorageProvider(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_SmartcardKeyStorageProvider(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_IKeyStorageProviderNamesStatics::PlatformKeyStorageProvider() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_PlatformKeyStorageProvider(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_PlatformKeyStorageProvider(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_IKeyStorageProviderNamesStatics2::PassportKeyStorageProvider() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_PassportKeyStorageProvider(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_PassportKeyStorageProvider(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_IPfxImportParameters::Exportable() const { winrt::Windows::Security::Cryptography::Certificates::ExportOption value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Exportable(reinterpret_cast(&value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Exportable(reinterpret_cast(&value))); } return value; } template auto consume_Windows_Security_Cryptography_Certificates_IPfxImportParameters::Exportable(winrt::Windows::Security::Cryptography::Certificates::ExportOption const& value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_Exportable(static_cast(value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_Exportable(static_cast(value))); } } template auto consume_Windows_Security_Cryptography_Certificates_IPfxImportParameters::KeyProtectionLevel() const { winrt::Windows::Security::Cryptography::Certificates::KeyProtectionLevel value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_KeyProtectionLevel(reinterpret_cast(&value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_KeyProtectionLevel(reinterpret_cast(&value))); } return value; } template auto consume_Windows_Security_Cryptography_Certificates_IPfxImportParameters::KeyProtectionLevel(winrt::Windows::Security::Cryptography::Certificates::KeyProtectionLevel const& value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_KeyProtectionLevel(static_cast(value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_KeyProtectionLevel(static_cast(value))); } } template auto consume_Windows_Security_Cryptography_Certificates_IPfxImportParameters::InstallOptions() const { winrt::Windows::Security::Cryptography::Certificates::InstallOptions value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_InstallOptions(reinterpret_cast(&value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_InstallOptions(reinterpret_cast(&value))); } return value; } template auto consume_Windows_Security_Cryptography_Certificates_IPfxImportParameters::InstallOptions(winrt::Windows::Security::Cryptography::Certificates::InstallOptions const& value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_InstallOptions(static_cast(value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_InstallOptions(static_cast(value))); } } template auto consume_Windows_Security_Cryptography_Certificates_IPfxImportParameters::FriendlyName() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_FriendlyName(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_FriendlyName(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_IPfxImportParameters::FriendlyName(param::hstring const& value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_FriendlyName(*(void**)(&value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_FriendlyName(*(void**)(&value))); } } template auto consume_Windows_Security_Cryptography_Certificates_IPfxImportParameters::KeyStorageProviderName() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_KeyStorageProviderName(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_KeyStorageProviderName(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_IPfxImportParameters::KeyStorageProviderName(param::hstring const& value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_KeyStorageProviderName(*(void**)(&value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_KeyStorageProviderName(*(void**)(&value))); } } template auto consume_Windows_Security_Cryptography_Certificates_IPfxImportParameters::ContainerNamePrefix() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_ContainerNamePrefix(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_ContainerNamePrefix(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_IPfxImportParameters::ContainerNamePrefix(param::hstring const& value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_ContainerNamePrefix(*(void**)(&value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_ContainerNamePrefix(*(void**)(&value))); } } template auto consume_Windows_Security_Cryptography_Certificates_IPfxImportParameters::ReaderName() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_ReaderName(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_ReaderName(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_IPfxImportParameters::ReaderName(param::hstring const& value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_ReaderName(*(void**)(&value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_ReaderName(*(void**)(&value))); } } template auto consume_Windows_Security_Cryptography_Certificates_IStandardCertificateStoreNamesStatics::Personal() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Personal(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Personal(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_IStandardCertificateStoreNamesStatics::TrustedRootCertificationAuthorities() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_TrustedRootCertificationAuthorities(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_TrustedRootCertificationAuthorities(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_IStandardCertificateStoreNamesStatics::IntermediateCertificationAuthorities() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_IntermediateCertificationAuthorities(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_IntermediateCertificationAuthorities(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ISubjectAlternativeNameInfo::EmailName() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_EmailName(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_EmailName(&value)); } return winrt::Windows::Foundation::Collections::IVectorView{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ISubjectAlternativeNameInfo::IPAddress() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_IPAddress(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_IPAddress(&value)); } return winrt::Windows::Foundation::Collections::IVectorView{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ISubjectAlternativeNameInfo::Url() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Url(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Url(&value)); } return winrt::Windows::Foundation::Collections::IVectorView{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ISubjectAlternativeNameInfo::DnsName() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_DnsName(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_DnsName(&value)); } return winrt::Windows::Foundation::Collections::IVectorView{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ISubjectAlternativeNameInfo::DistinguishedName() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_DistinguishedName(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_DistinguishedName(&value)); } return winrt::Windows::Foundation::Collections::IVectorView{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ISubjectAlternativeNameInfo::PrincipalName() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_PrincipalName(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_PrincipalName(&value)); } return winrt::Windows::Foundation::Collections::IVectorView{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ISubjectAlternativeNameInfo2::EmailNames() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_EmailNames(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_EmailNames(&value)); } return winrt::Windows::Foundation::Collections::IVector{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ISubjectAlternativeNameInfo2::IPAddresses() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_IPAddresses(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_IPAddresses(&value)); } return winrt::Windows::Foundation::Collections::IVector{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ISubjectAlternativeNameInfo2::Urls() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Urls(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Urls(&value)); } return winrt::Windows::Foundation::Collections::IVector{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ISubjectAlternativeNameInfo2::DnsNames() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_DnsNames(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_DnsNames(&value)); } return winrt::Windows::Foundation::Collections::IVector{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ISubjectAlternativeNameInfo2::DistinguishedNames() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_DistinguishedNames(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_DistinguishedNames(&value)); } return winrt::Windows::Foundation::Collections::IVector{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ISubjectAlternativeNameInfo2::PrincipalNames() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_PrincipalNames(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_PrincipalNames(&value)); } return winrt::Windows::Foundation::Collections::IVector{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_ISubjectAlternativeNameInfo2::Extension() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Extension(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Extension(&value)); } return winrt::Windows::Security::Cryptography::Certificates::CertificateExtension{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_IUserCertificateEnrollmentManager::CreateRequestAsync(winrt::Windows::Security::Cryptography::Certificates::CertificateRequestProperties const& request) const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->CreateRequestAsync(*(void**)(&request), &value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->CreateRequestAsync(*(void**)(&request), &value)); } return winrt::Windows::Foundation::IAsyncOperation{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_IUserCertificateEnrollmentManager::InstallCertificateAsync(param::hstring const& certificate, winrt::Windows::Security::Cryptography::Certificates::InstallOptions const& installOption) const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->InstallCertificateAsync(*(void**)(&certificate), static_cast(installOption), &value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->InstallCertificateAsync(*(void**)(&certificate), static_cast(installOption), &value)); } return winrt::Windows::Foundation::IAsyncAction{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_IUserCertificateEnrollmentManager::ImportPfxDataAsync(param::hstring const& pfxData, param::hstring const& password, winrt::Windows::Security::Cryptography::Certificates::ExportOption const& exportable, winrt::Windows::Security::Cryptography::Certificates::KeyProtectionLevel const& keyProtectionLevel, winrt::Windows::Security::Cryptography::Certificates::InstallOptions const& installOption, param::hstring const& friendlyName) const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->ImportPfxDataAsync(*(void**)(&pfxData), *(void**)(&password), static_cast(exportable), static_cast(keyProtectionLevel), static_cast(installOption), *(void**)(&friendlyName), &value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->ImportPfxDataAsync(*(void**)(&pfxData), *(void**)(&password), static_cast(exportable), static_cast(keyProtectionLevel), static_cast(installOption), *(void**)(&friendlyName), &value)); } return winrt::Windows::Foundation::IAsyncAction{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_IUserCertificateEnrollmentManager::ImportPfxDataAsync(param::hstring const& pfxData, param::hstring const& password, winrt::Windows::Security::Cryptography::Certificates::ExportOption const& exportable, winrt::Windows::Security::Cryptography::Certificates::KeyProtectionLevel const& keyProtectionLevel, winrt::Windows::Security::Cryptography::Certificates::InstallOptions const& installOption, param::hstring const& friendlyName, param::hstring const& keyStorageProvider) const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->ImportPfxDataToKspAsync(*(void**)(&pfxData), *(void**)(&password), static_cast(exportable), static_cast(keyProtectionLevel), static_cast(installOption), *(void**)(&friendlyName), *(void**)(&keyStorageProvider), &value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->ImportPfxDataToKspAsync(*(void**)(&pfxData), *(void**)(&password), static_cast(exportable), static_cast(keyProtectionLevel), static_cast(installOption), *(void**)(&friendlyName), *(void**)(&keyStorageProvider), &value)); } return winrt::Windows::Foundation::IAsyncAction{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_IUserCertificateEnrollmentManager2::ImportPfxDataAsync(param::hstring const& pfxData, param::hstring const& password, winrt::Windows::Security::Cryptography::Certificates::PfxImportParameters const& pfxImportParameters) const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->ImportPfxDataToKspWithParametersAsync(*(void**)(&pfxData), *(void**)(&password), *(void**)(&pfxImportParameters), &value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->ImportPfxDataToKspWithParametersAsync(*(void**)(&pfxData), *(void**)(&password), *(void**)(&pfxImportParameters), &value)); } return winrt::Windows::Foundation::IAsyncAction{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_IUserCertificateStore::RequestAddAsync(winrt::Windows::Security::Cryptography::Certificates::Certificate const& certificate) const { void* result{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->RequestAddAsync(*(void**)(&certificate), &result)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->RequestAddAsync(*(void**)(&certificate), &result)); } return winrt::Windows::Foundation::IAsyncOperation{ result, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_IUserCertificateStore::RequestDeleteAsync(winrt::Windows::Security::Cryptography::Certificates::Certificate const& certificate) const { void* result{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->RequestDeleteAsync(*(void**)(&certificate), &result)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->RequestDeleteAsync(*(void**)(&certificate), &result)); } return winrt::Windows::Foundation::IAsyncOperation{ result, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Certificates_IUserCertificateStore::Name() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Name(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Name(&value)); } return hstring{ value, take_ownership_from_abi }; } #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall BuildChainAsync(void* certificates, void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from>(this->shim().BuildChainAsync(*reinterpret_cast const*>(&certificates))); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall BuildChainWithParametersAsync(void* certificates, void* parameters, void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from>(this->shim().BuildChainAsync(*reinterpret_cast const*>(&certificates), *reinterpret_cast(¶meters))); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_SerialNumber(uint32_t* __valueSize, uint8_t** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); std::tie(*__valueSize, *value) = detach_abi(this->shim().SerialNumber()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall GetHashValue(uint32_t* __valueSize, uint8_t** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); std::tie(*__valueSize, *value) = detach_abi(this->shim().GetHashValue()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall GetHashValueWithAlgorithm(void* hashAlgorithmName, uint32_t* __valueSize, uint8_t** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); std::tie(*__valueSize, *value) = detach_abi(this->shim().GetHashValue(*reinterpret_cast(&hashAlgorithmName))); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall GetCertificateBlob(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().GetCertificateBlob()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Subject(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Subject()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Issuer(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Issuer()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_HasPrivateKey(bool* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().HasPrivateKey()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_IsStronglyProtected(bool* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().IsStronglyProtected()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_ValidFrom(int64_t* value) noexcept final try { zero_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().ValidFrom()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_ValidTo(int64_t* value) noexcept final try { zero_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().ValidTo()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_EnhancedKeyUsages(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from>(this->shim().EnhancedKeyUsages()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_FriendlyName(void* value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().FriendlyName(*reinterpret_cast(&value)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_FriendlyName(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().FriendlyName()); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_IsSecurityDeviceBound(bool* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().IsSecurityDeviceBound()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_KeyUsages(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().KeyUsages()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_KeyAlgorithmName(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().KeyAlgorithmName()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_SignatureAlgorithmName(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().SignatureAlgorithmName()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_SignatureHashAlgorithmName(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().SignatureHashAlgorithmName()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_SubjectAlternativeName(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().SubjectAlternativeName()); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_IsPerUser(bool* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().IsPerUser()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_StoreName(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().StoreName()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_KeyStorageProviderName(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().KeyStorageProviderName()); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall Validate(int32_t* status) noexcept final try { typename D::abi_guard guard(this->shim()); *status = detach_from(this->shim().Validate()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall ValidateWithParameters(void* parameter, int32_t* status) noexcept final try { typename D::abi_guard guard(this->shim()); *status = detach_from(this->shim().Validate(*reinterpret_cast(¶meter))); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall GetCertificates(bool includeRoot, void** certificates) noexcept final try { clear_abi(certificates); typename D::abi_guard guard(this->shim()); *certificates = detach_from>(this->shim().GetCertificates(includeRoot)); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall CreateRequestAsync(void* request, void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from>(this->shim().CreateRequestAsync(*reinterpret_cast(&request))); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall InstallCertificateAsync(void* certificate, uint32_t installOption, void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().InstallCertificateAsync(*reinterpret_cast(&certificate), *reinterpret_cast(&installOption))); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall ImportPfxDataAsync(void* pfxData, void* password, int32_t exportable, int32_t keyProtectionLevel, uint32_t installOption, void* friendlyName, void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().ImportPfxDataAsync(*reinterpret_cast(&pfxData), *reinterpret_cast(&password), *reinterpret_cast(&exportable), *reinterpret_cast(&keyProtectionLevel), *reinterpret_cast(&installOption), *reinterpret_cast(&friendlyName))); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_UserCertificateEnrollmentManager(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().UserCertificateEnrollmentManager()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall ImportPfxDataToKspAsync(void* pfxData, void* password, int32_t exportable, int32_t keyProtectionLevel, uint32_t installOption, void* friendlyName, void* keyStorageProvider, void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().ImportPfxDataAsync(*reinterpret_cast(&pfxData), *reinterpret_cast(&password), *reinterpret_cast(&exportable), *reinterpret_cast(&keyProtectionLevel), *reinterpret_cast(&installOption), *reinterpret_cast(&friendlyName), *reinterpret_cast(&keyStorageProvider))); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall ImportPfxDataToKspWithParametersAsync(void* pfxData, void* password, void* pfxImportParameters, void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().ImportPfxDataAsync(*reinterpret_cast(&pfxData), *reinterpret_cast(&password), *reinterpret_cast(&pfxImportParameters))); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_ObjectId(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().ObjectId()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_ObjectId(void* value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().ObjectId(*reinterpret_cast(&value)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_IsCritical(bool* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().IsCritical()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_IsCritical(bool value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().IsCritical(value); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall EncodeValue(void* value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().EncodeValue(*reinterpret_cast(&value)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Value(uint32_t* __valueSize, uint8_t** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); std::tie(*__valueSize, *value) = detach_abi(this->shim().Value()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_Value(uint32_t __valueSize, uint8_t* value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().Value(array_view(reinterpret_cast(value), reinterpret_cast(value) + __valueSize)); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall CreateCertificate(void* certBlob, void** certificate) noexcept final try { clear_abi(certificate); typename D::abi_guard guard(this->shim()); *certificate = detach_from(this->shim().CreateCertificate(*reinterpret_cast(&certBlob))); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_EncipherOnly(bool* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().EncipherOnly()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_EncipherOnly(bool value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().EncipherOnly(value); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_CrlSign(bool* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().CrlSign()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_CrlSign(bool value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().CrlSign(value); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_KeyCertificateSign(bool* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().KeyCertificateSign()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_KeyCertificateSign(bool value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().KeyCertificateSign(value); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_KeyAgreement(bool* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().KeyAgreement()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_KeyAgreement(bool value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().KeyAgreement(value); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_DataEncipherment(bool* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().DataEncipherment()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_DataEncipherment(bool value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().DataEncipherment(value); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_KeyEncipherment(bool* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().KeyEncipherment()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_KeyEncipherment(bool value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().KeyEncipherment(value); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_NonRepudiation(bool* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().NonRepudiation()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_NonRepudiation(bool value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().NonRepudiation(value); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_DigitalSignature(bool* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().DigitalSignature()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_DigitalSignature(bool value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().DigitalSignature(value); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_EnhancedKeyUsages(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from>(this->shim().EnhancedKeyUsages()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_IssuerName(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().IssuerName()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_IssuerName(void* value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().IssuerName(*reinterpret_cast(&value)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_FriendlyName(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().FriendlyName()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_FriendlyName(void* value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().FriendlyName(*reinterpret_cast(&value)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Thumbprint(uint32_t* __valueSize, uint8_t** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); std::tie(*__valueSize, *value) = detach_abi(this->shim().Thumbprint()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_Thumbprint(uint32_t __valueSize, uint8_t* value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().Thumbprint(array_view(reinterpret_cast(value), reinterpret_cast(value) + __valueSize)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_HardwareOnly(bool* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().HardwareOnly()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_HardwareOnly(bool value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().HardwareOnly(value); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_IncludeDuplicates(bool* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().IncludeDuplicates()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_IncludeDuplicates(bool value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().IncludeDuplicates(value); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_IncludeExpiredCertificates(bool* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().IncludeExpiredCertificates()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_IncludeExpiredCertificates(bool value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().IncludeExpiredCertificates(value); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_StoreName(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().StoreName()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_StoreName(void* value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().StoreName(*reinterpret_cast(&value)); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_Subject(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Subject()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_Subject(void* value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().Subject(*reinterpret_cast(&value)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_KeyAlgorithmName(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().KeyAlgorithmName()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_KeyAlgorithmName(void* value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().KeyAlgorithmName(*reinterpret_cast(&value)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_KeySize(uint32_t* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().KeySize()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_KeySize(uint32_t value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().KeySize(value); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_FriendlyName(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().FriendlyName()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_FriendlyName(void* value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().FriendlyName(*reinterpret_cast(&value)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_HashAlgorithmName(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().HashAlgorithmName()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_HashAlgorithmName(void* value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().HashAlgorithmName(*reinterpret_cast(&value)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Exportable(int32_t* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Exportable()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_Exportable(int32_t value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().Exportable(*reinterpret_cast(&value)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_KeyUsages(uint32_t* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().KeyUsages()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_KeyUsages(uint32_t value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().KeyUsages(*reinterpret_cast(&value)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_KeyProtectionLevel(int32_t* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().KeyProtectionLevel()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_KeyProtectionLevel(int32_t value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().KeyProtectionLevel(*reinterpret_cast(&value)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_KeyStorageProviderName(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().KeyStorageProviderName()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_KeyStorageProviderName(void* value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().KeyStorageProviderName(*reinterpret_cast(&value)); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_SmartcardReaderName(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().SmartcardReaderName()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_SmartcardReaderName(void* value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().SmartcardReaderName(*reinterpret_cast(&value)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_SigningCertificate(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().SigningCertificate()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_SigningCertificate(void* value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().SigningCertificate(*reinterpret_cast(&value)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_AttestationCredentialCertificate(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().AttestationCredentialCertificate()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_AttestationCredentialCertificate(void* value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().AttestationCredentialCertificate(*reinterpret_cast(&value)); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_CurveName(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().CurveName()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_CurveName(void* value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().CurveName(*reinterpret_cast(&value)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_CurveParameters(uint32_t* __valueSize, uint8_t** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); std::tie(*__valueSize, *value) = detach_abi(this->shim().CurveParameters()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_CurveParameters(uint32_t __valueSize, uint8_t* value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().CurveParameters(array_view(reinterpret_cast(value), reinterpret_cast(value) + __valueSize)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_ContainerNamePrefix(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().ContainerNamePrefix()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_ContainerNamePrefix(void* value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().ContainerNamePrefix(*reinterpret_cast(&value)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_ContainerName(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().ContainerName()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_ContainerName(void* value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().ContainerName(*reinterpret_cast(&value)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_UseExistingKey(bool* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().UseExistingKey()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_UseExistingKey(bool value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().UseExistingKey(value); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_SuppressedDefaults(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from>(this->shim().SuppressedDefaults()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_SubjectAlternativeName(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().SubjectAlternativeName()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Extensions(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from>(this->shim().Extensions()); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall Add(void* certificate) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().Add(*reinterpret_cast(&certificate)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall Delete(void* certificate) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().Delete(*reinterpret_cast(&certificate)); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_Name(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Name()); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall FindAllAsync(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from>>(this->shim().FindAllAsync()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall FindAllWithQueryAsync(void* query, void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from>>(this->shim().FindAllAsync(*reinterpret_cast(&query))); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_TrustedRootCertificationAuthorities(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().TrustedRootCertificationAuthorities()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_IntermediateCertificationAuthorities(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().IntermediateCertificationAuthorities()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall GetStoreByName(void* storeName, void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().GetStoreByName(*reinterpret_cast(&storeName))); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall GetUserStoreByName(void* storeName, void** result) noexcept final try { clear_abi(result); typename D::abi_guard guard(this->shim()); *result = detach_from(this->shim().GetUserStoreByName(*reinterpret_cast(&storeName))); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_EnhancedKeyUsages(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from>(this->shim().EnhancedKeyUsages()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_ValidationTimestamp(int64_t* value) noexcept final try { zero_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().ValidationTimestamp()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_ValidationTimestamp(int64_t value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().ValidationTimestamp(*reinterpret_cast(&value)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_RevocationCheckEnabled(bool* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().RevocationCheckEnabled()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_RevocationCheckEnabled(bool value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().RevocationCheckEnabled(value); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_NetworkRetrievalEnabled(bool* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().NetworkRetrievalEnabled()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_NetworkRetrievalEnabled(bool value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().NetworkRetrievalEnabled(value); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_AuthorityInformationAccessEnabled(bool* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().AuthorityInformationAccessEnabled()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_AuthorityInformationAccessEnabled(bool value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().AuthorityInformationAccessEnabled(value); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_CurrentTimeValidationEnabled(bool* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().CurrentTimeValidationEnabled()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_CurrentTimeValidationEnabled(bool value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().CurrentTimeValidationEnabled(value); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_ExclusiveTrustRoots(void** certificates) noexcept final try { clear_abi(certificates); typename D::abi_guard guard(this->shim()); *certificates = detach_from>(this->shim().ExclusiveTrustRoots()); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_CertificateChainPolicy(int32_t* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().CertificateChainPolicy()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_CertificateChainPolicy(int32_t value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().CertificateChainPolicy(*reinterpret_cast(&value)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_ServerDnsName(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().ServerDnsName()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_ServerDnsName(void* value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().ServerDnsName(*reinterpret_cast(&value)); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_Certificates(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from>(this->shim().Certificates()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Content(uint32_t* __valueSize, uint8_t** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); std::tie(*__valueSize, *value) = detach_abi(this->shim().Content()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Signers(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from>(this->shim().Signers()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall VerifySignature(int32_t* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().VerifySignature()); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall CreateCmsAttachedSignature(void* inputBlob, void** cmsSignedData) noexcept final try { clear_abi(cmsSignedData); typename D::abi_guard guard(this->shim()); *cmsSignedData = detach_from(this->shim().CreateCmsAttachedSignature(*reinterpret_cast(&inputBlob))); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall GenerateSignatureAsync(void* data, void* signers, void* certificates, void** outputBlob) noexcept final try { clear_abi(outputBlob); typename D::abi_guard guard(this->shim()); *outputBlob = detach_from>(this->shim().GenerateSignatureAsync(*reinterpret_cast(&data), *reinterpret_cast const*>(&signers), *reinterpret_cast const*>(&certificates))); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_Certificates(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from>(this->shim().Certificates()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Signers(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from>(this->shim().Signers()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall VerifySignatureAsync(void* data, void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from>(this->shim().VerifySignatureAsync(*reinterpret_cast(&data))); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall CreateCmsDetachedSignature(void* inputBlob, void** cmsSignedData) noexcept final try { clear_abi(cmsSignedData); typename D::abi_guard guard(this->shim()); *cmsSignedData = detach_from(this->shim().CreateCmsDetachedSignature(*reinterpret_cast(&inputBlob))); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall GenerateSignatureAsync(void* data, void* signers, void* certificates, void** outputBlob) noexcept final try { clear_abi(outputBlob); typename D::abi_guard guard(this->shim()); *outputBlob = detach_from>(this->shim().GenerateSignatureAsync(*reinterpret_cast(&data), *reinterpret_cast const*>(&signers), *reinterpret_cast const*>(&certificates))); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_Certificate(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Certificate()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_Certificate(void* value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().Certificate(*reinterpret_cast(&value)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_HashAlgorithmName(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().HashAlgorithmName()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_HashAlgorithmName(void* value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().HashAlgorithmName(*reinterpret_cast(&value)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_TimestampInfo(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().TimestampInfo()); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_SigningCertificate(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().SigningCertificate()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Certificates(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from>(this->shim().Certificates()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Timestamp(int64_t* value) noexcept final try { zero_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Timestamp()); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_Rsa(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Rsa()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Dsa(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Dsa()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Ecdh256(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Ecdh256()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Ecdh384(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Ecdh384()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Ecdh521(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Ecdh521()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Ecdsa256(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Ecdsa256()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Ecdsa384(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Ecdsa384()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Ecdsa521(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Ecdsa521()); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_Ecdsa(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Ecdsa()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Ecdh(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Ecdh()); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall DecryptTpmAttestationCredentialAsync(void* credential, void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from>(this->shim().DecryptTpmAttestationCredentialAsync(*reinterpret_cast(&credential))); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall GetTpmAttestationCredentialId(void* credential, void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().GetTpmAttestationCredentialId(*reinterpret_cast(&credential))); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall DecryptTpmAttestationCredentialWithContainerNameAsync(void* credential, void* containerName, void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from>(this->shim().DecryptTpmAttestationCredentialAsync(*reinterpret_cast(&credential), *reinterpret_cast(&containerName))); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_SoftwareKeyStorageProvider(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().SoftwareKeyStorageProvider()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_SmartcardKeyStorageProvider(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().SmartcardKeyStorageProvider()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_PlatformKeyStorageProvider(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().PlatformKeyStorageProvider()); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_PassportKeyStorageProvider(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().PassportKeyStorageProvider()); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_Exportable(int32_t* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Exportable()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_Exportable(int32_t value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().Exportable(*reinterpret_cast(&value)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_KeyProtectionLevel(int32_t* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().KeyProtectionLevel()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_KeyProtectionLevel(int32_t value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().KeyProtectionLevel(*reinterpret_cast(&value)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_InstallOptions(uint32_t* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().InstallOptions()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_InstallOptions(uint32_t value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().InstallOptions(*reinterpret_cast(&value)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_FriendlyName(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().FriendlyName()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_FriendlyName(void* value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().FriendlyName(*reinterpret_cast(&value)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_KeyStorageProviderName(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().KeyStorageProviderName()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_KeyStorageProviderName(void* value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().KeyStorageProviderName(*reinterpret_cast(&value)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_ContainerNamePrefix(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().ContainerNamePrefix()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_ContainerNamePrefix(void* value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().ContainerNamePrefix(*reinterpret_cast(&value)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_ReaderName(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().ReaderName()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_ReaderName(void* value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().ReaderName(*reinterpret_cast(&value)); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_Personal(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Personal()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_TrustedRootCertificationAuthorities(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().TrustedRootCertificationAuthorities()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_IntermediateCertificationAuthorities(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().IntermediateCertificationAuthorities()); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_EmailName(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from>(this->shim().EmailName()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_IPAddress(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from>(this->shim().IPAddress()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Url(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from>(this->shim().Url()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_DnsName(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from>(this->shim().DnsName()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_DistinguishedName(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from>(this->shim().DistinguishedName()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_PrincipalName(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from>(this->shim().PrincipalName()); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_EmailNames(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from>(this->shim().EmailNames()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_IPAddresses(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from>(this->shim().IPAddresses()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Urls(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from>(this->shim().Urls()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_DnsNames(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from>(this->shim().DnsNames()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_DistinguishedNames(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from>(this->shim().DistinguishedNames()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_PrincipalNames(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from>(this->shim().PrincipalNames()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Extension(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Extension()); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall CreateRequestAsync(void* request, void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from>(this->shim().CreateRequestAsync(*reinterpret_cast(&request))); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall InstallCertificateAsync(void* certificate, uint32_t installOption, void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().InstallCertificateAsync(*reinterpret_cast(&certificate), *reinterpret_cast(&installOption))); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall ImportPfxDataAsync(void* pfxData, void* password, int32_t exportable, int32_t keyProtectionLevel, uint32_t installOption, void* friendlyName, void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().ImportPfxDataAsync(*reinterpret_cast(&pfxData), *reinterpret_cast(&password), *reinterpret_cast(&exportable), *reinterpret_cast(&keyProtectionLevel), *reinterpret_cast(&installOption), *reinterpret_cast(&friendlyName))); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall ImportPfxDataToKspAsync(void* pfxData, void* password, int32_t exportable, int32_t keyProtectionLevel, uint32_t installOption, void* friendlyName, void* keyStorageProvider, void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().ImportPfxDataAsync(*reinterpret_cast(&pfxData), *reinterpret_cast(&password), *reinterpret_cast(&exportable), *reinterpret_cast(&keyProtectionLevel), *reinterpret_cast(&installOption), *reinterpret_cast(&friendlyName), *reinterpret_cast(&keyStorageProvider))); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall ImportPfxDataToKspWithParametersAsync(void* pfxData, void* password, void* pfxImportParameters, void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().ImportPfxDataAsync(*reinterpret_cast(&pfxData), *reinterpret_cast(&password), *reinterpret_cast(&pfxImportParameters))); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall RequestAddAsync(void* certificate, void** result) noexcept final try { clear_abi(result); typename D::abi_guard guard(this->shim()); *result = detach_from>(this->shim().RequestAddAsync(*reinterpret_cast(&certificate))); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall RequestDeleteAsync(void* certificate, void** result) noexcept final try { clear_abi(result); typename D::abi_guard guard(this->shim()); *result = detach_from>(this->shim().RequestDeleteAsync(*reinterpret_cast(&certificate))); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Name(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Name()); return 0; } catch (...) { return to_hresult(); } }; #endif } WINRT_EXPORT namespace winrt::Windows::Security::Cryptography::Certificates { constexpr auto operator|(EnrollKeyUsages const left, EnrollKeyUsages const right) noexcept { return static_cast(impl::to_underlying_type(left) | impl::to_underlying_type(right)); } constexpr auto operator|=(EnrollKeyUsages& left, EnrollKeyUsages const right) noexcept { left = left | right; return left; } constexpr auto operator&(EnrollKeyUsages const left, EnrollKeyUsages const right) noexcept { return static_cast(impl::to_underlying_type(left) & impl::to_underlying_type(right)); } constexpr auto operator&=(EnrollKeyUsages& left, EnrollKeyUsages const right) noexcept { left = left & right; return left; } constexpr auto operator~(EnrollKeyUsages const value) noexcept { return static_cast(~impl::to_underlying_type(value)); } constexpr auto operator^(EnrollKeyUsages const left, EnrollKeyUsages const right) noexcept { return static_cast(impl::to_underlying_type(left) ^ impl::to_underlying_type(right)); } constexpr auto operator^=(EnrollKeyUsages& left, EnrollKeyUsages const right) noexcept { left = left ^ right; return left; } constexpr auto operator|(InstallOptions const left, InstallOptions const right) noexcept { return static_cast(impl::to_underlying_type(left) | impl::to_underlying_type(right)); } constexpr auto operator|=(InstallOptions& left, InstallOptions const right) noexcept { left = left | right; return left; } constexpr auto operator&(InstallOptions const left, InstallOptions const right) noexcept { return static_cast(impl::to_underlying_type(left) & impl::to_underlying_type(right)); } constexpr auto operator&=(InstallOptions& left, InstallOptions const right) noexcept { left = left & right; return left; } constexpr auto operator~(InstallOptions const value) noexcept { return static_cast(~impl::to_underlying_type(value)); } constexpr auto operator^(InstallOptions const left, InstallOptions const right) noexcept { return static_cast(impl::to_underlying_type(left) ^ impl::to_underlying_type(right)); } constexpr auto operator^=(InstallOptions& left, InstallOptions const right) noexcept { left = left ^ right; return left; } inline Certificate::Certificate(winrt::Windows::Storage::Streams::IBuffer const& certBlob) : Certificate(impl::call_factory([&](ICertificateFactory const& f) { return f.CreateCertificate(certBlob); })) { } inline auto CertificateEnrollmentManager::CreateRequestAsync(winrt::Windows::Security::Cryptography::Certificates::CertificateRequestProperties const& request) { return impl::call_factory([&](ICertificateEnrollmentManagerStatics const& f) { return f.CreateRequestAsync(request); }); } inline auto CertificateEnrollmentManager::InstallCertificateAsync(param::hstring const& certificate, winrt::Windows::Security::Cryptography::Certificates::InstallOptions const& installOption) { return impl::call_factory([&](ICertificateEnrollmentManagerStatics const& f) { return f.InstallCertificateAsync(certificate, installOption); }); } inline auto CertificateEnrollmentManager::ImportPfxDataAsync(param::hstring const& pfxData, param::hstring const& password, winrt::Windows::Security::Cryptography::Certificates::ExportOption const& exportable, winrt::Windows::Security::Cryptography::Certificates::KeyProtectionLevel const& keyProtectionLevel, winrt::Windows::Security::Cryptography::Certificates::InstallOptions const& installOption, param::hstring const& friendlyName) { return impl::call_factory([&](ICertificateEnrollmentManagerStatics const& f) { return f.ImportPfxDataAsync(pfxData, password, exportable, keyProtectionLevel, installOption, friendlyName); }); } inline auto CertificateEnrollmentManager::UserCertificateEnrollmentManager() { return impl::call_factory_cast([](ICertificateEnrollmentManagerStatics2 const& f) { return f.UserCertificateEnrollmentManager(); }); } inline auto CertificateEnrollmentManager::ImportPfxDataAsync(param::hstring const& pfxData, param::hstring const& password, winrt::Windows::Security::Cryptography::Certificates::ExportOption const& exportable, winrt::Windows::Security::Cryptography::Certificates::KeyProtectionLevel const& keyProtectionLevel, winrt::Windows::Security::Cryptography::Certificates::InstallOptions const& installOption, param::hstring const& friendlyName, param::hstring const& keyStorageProvider) { return impl::call_factory([&](ICertificateEnrollmentManagerStatics2 const& f) { return f.ImportPfxDataAsync(pfxData, password, exportable, keyProtectionLevel, installOption, friendlyName, keyStorageProvider); }); } inline auto CertificateEnrollmentManager::ImportPfxDataAsync(param::hstring const& pfxData, param::hstring const& password, winrt::Windows::Security::Cryptography::Certificates::PfxImportParameters const& pfxImportParameters) { return impl::call_factory([&](ICertificateEnrollmentManagerStatics3 const& f) { return f.ImportPfxDataAsync(pfxData, password, pfxImportParameters); }); } inline CertificateExtension::CertificateExtension() : CertificateExtension(impl::call_factory_cast([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance(); })) { } inline CertificateKeyUsages::CertificateKeyUsages() : CertificateKeyUsages(impl::call_factory_cast([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance(); })) { } inline CertificateQuery::CertificateQuery() : CertificateQuery(impl::call_factory_cast([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance(); })) { } inline CertificateRequestProperties::CertificateRequestProperties() : CertificateRequestProperties(impl::call_factory_cast([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance(); })) { } inline auto CertificateStores::FindAllAsync() { return impl::call_factory_cast>(*)(ICertificateStoresStatics const&), CertificateStores, ICertificateStoresStatics>([](ICertificateStoresStatics const& f) { return f.FindAllAsync(); }); } inline auto CertificateStores::FindAllAsync(winrt::Windows::Security::Cryptography::Certificates::CertificateQuery const& query) { return impl::call_factory([&](ICertificateStoresStatics const& f) { return f.FindAllAsync(query); }); } inline auto CertificateStores::TrustedRootCertificationAuthorities() { return impl::call_factory_cast([](ICertificateStoresStatics const& f) { return f.TrustedRootCertificationAuthorities(); }); } inline auto CertificateStores::IntermediateCertificationAuthorities() { return impl::call_factory_cast([](ICertificateStoresStatics const& f) { return f.IntermediateCertificationAuthorities(); }); } inline auto CertificateStores::GetStoreByName(param::hstring const& storeName) { return impl::call_factory([&](ICertificateStoresStatics const& f) { return f.GetStoreByName(storeName); }); } inline auto CertificateStores::GetUserStoreByName(param::hstring const& storeName) { return impl::call_factory([&](ICertificateStoresStatics2 const& f) { return f.GetUserStoreByName(storeName); }); } inline ChainBuildingParameters::ChainBuildingParameters() : ChainBuildingParameters(impl::call_factory_cast([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance(); })) { } inline ChainValidationParameters::ChainValidationParameters() : ChainValidationParameters(impl::call_factory_cast([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance(); })) { } inline CmsAttachedSignature::CmsAttachedSignature(winrt::Windows::Storage::Streams::IBuffer const& inputBlob) : CmsAttachedSignature(impl::call_factory([&](ICmsAttachedSignatureFactory const& f) { return f.CreateCmsAttachedSignature(inputBlob); })) { } inline auto CmsAttachedSignature::GenerateSignatureAsync(winrt::Windows::Storage::Streams::IBuffer const& data, param::async_iterable const& signers, param::async_iterable const& certificates) { return impl::call_factory([&](ICmsAttachedSignatureStatics const& f) { return f.GenerateSignatureAsync(data, signers, certificates); }); } inline CmsDetachedSignature::CmsDetachedSignature(winrt::Windows::Storage::Streams::IBuffer const& inputBlob) : CmsDetachedSignature(impl::call_factory([&](ICmsDetachedSignatureFactory const& f) { return f.CreateCmsDetachedSignature(inputBlob); })) { } inline auto CmsDetachedSignature::GenerateSignatureAsync(winrt::Windows::Storage::Streams::IInputStream const& data, param::async_iterable const& signers, param::async_iterable const& certificates) { return impl::call_factory([&](ICmsDetachedSignatureStatics const& f) { return f.GenerateSignatureAsync(data, signers, certificates); }); } inline CmsSignerInfo::CmsSignerInfo() : CmsSignerInfo(impl::call_factory_cast([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance(); })) { } inline auto KeyAlgorithmNames::Rsa() { return impl::call_factory_cast([](IKeyAlgorithmNamesStatics const& f) { return f.Rsa(); }); } inline auto KeyAlgorithmNames::Dsa() { return impl::call_factory_cast([](IKeyAlgorithmNamesStatics const& f) { return f.Dsa(); }); } inline auto KeyAlgorithmNames::Ecdh256() { return impl::call_factory_cast([](IKeyAlgorithmNamesStatics const& f) { return f.Ecdh256(); }); } inline auto KeyAlgorithmNames::Ecdh384() { return impl::call_factory_cast([](IKeyAlgorithmNamesStatics const& f) { return f.Ecdh384(); }); } inline auto KeyAlgorithmNames::Ecdh521() { return impl::call_factory_cast([](IKeyAlgorithmNamesStatics const& f) { return f.Ecdh521(); }); } inline auto KeyAlgorithmNames::Ecdsa256() { return impl::call_factory_cast([](IKeyAlgorithmNamesStatics const& f) { return f.Ecdsa256(); }); } inline auto KeyAlgorithmNames::Ecdsa384() { return impl::call_factory_cast([](IKeyAlgorithmNamesStatics const& f) { return f.Ecdsa384(); }); } inline auto KeyAlgorithmNames::Ecdsa521() { return impl::call_factory_cast([](IKeyAlgorithmNamesStatics const& f) { return f.Ecdsa521(); }); } inline auto KeyAlgorithmNames::Ecdsa() { return impl::call_factory_cast([](IKeyAlgorithmNamesStatics2 const& f) { return f.Ecdsa(); }); } inline auto KeyAlgorithmNames::Ecdh() { return impl::call_factory_cast([](IKeyAlgorithmNamesStatics2 const& f) { return f.Ecdh(); }); } inline auto KeyAttestationHelper::DecryptTpmAttestationCredentialAsync(param::hstring const& credential) { return impl::call_factory([&](IKeyAttestationHelperStatics const& f) { return f.DecryptTpmAttestationCredentialAsync(credential); }); } inline auto KeyAttestationHelper::GetTpmAttestationCredentialId(param::hstring const& credential) { return impl::call_factory([&](IKeyAttestationHelperStatics const& f) { return f.GetTpmAttestationCredentialId(credential); }); } inline auto KeyAttestationHelper::DecryptTpmAttestationCredentialAsync(param::hstring const& credential, param::hstring const& containerName) { return impl::call_factory([&](IKeyAttestationHelperStatics2 const& f) { return f.DecryptTpmAttestationCredentialAsync(credential, containerName); }); } inline auto KeyStorageProviderNames::SoftwareKeyStorageProvider() { return impl::call_factory_cast([](IKeyStorageProviderNamesStatics const& f) { return f.SoftwareKeyStorageProvider(); }); } inline auto KeyStorageProviderNames::SmartcardKeyStorageProvider() { return impl::call_factory_cast([](IKeyStorageProviderNamesStatics const& f) { return f.SmartcardKeyStorageProvider(); }); } inline auto KeyStorageProviderNames::PlatformKeyStorageProvider() { return impl::call_factory_cast([](IKeyStorageProviderNamesStatics const& f) { return f.PlatformKeyStorageProvider(); }); } inline auto KeyStorageProviderNames::PassportKeyStorageProvider() { return impl::call_factory_cast([](IKeyStorageProviderNamesStatics2 const& f) { return f.PassportKeyStorageProvider(); }); } inline PfxImportParameters::PfxImportParameters() : PfxImportParameters(impl::call_factory_cast([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance(); })) { } inline auto StandardCertificateStoreNames::Personal() { return impl::call_factory_cast([](IStandardCertificateStoreNamesStatics const& f) { return f.Personal(); }); } inline auto StandardCertificateStoreNames::TrustedRootCertificationAuthorities() { return impl::call_factory_cast([](IStandardCertificateStoreNamesStatics const& f) { return f.TrustedRootCertificationAuthorities(); }); } inline auto StandardCertificateStoreNames::IntermediateCertificationAuthorities() { return impl::call_factory_cast([](IStandardCertificateStoreNamesStatics const& f) { return f.IntermediateCertificationAuthorities(); }); } inline SubjectAlternativeNameInfo::SubjectAlternativeNameInfo() : SubjectAlternativeNameInfo(impl::call_factory_cast([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance(); })) { } } namespace std { #ifndef WINRT_LEAN_AND_MEAN template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; #endif #ifdef __cpp_lib_format #endif } #endif