// WARNING: Please don't edit this file. It was generated by C++/WinRT v2.0.240405.15 #pragma once #ifndef WINRT_Windows_Security_ExchangeActiveSyncProvisioning_H #define WINRT_Windows_Security_ExchangeActiveSyncProvisioning_H #include "winrt/base.h" static_assert(winrt::check_version(CPPWINRT_VERSION, "2.0.240405.15"), "Mismatched C++/WinRT headers."); #define CPPWINRT_VERSION "2.0.240405.15" #include "winrt/impl/Windows.Foundation.2.h" #include "winrt/impl/Windows.Security.ExchangeActiveSyncProvisioning.2.h" namespace winrt::impl { template auto consume_Windows_Security_ExchangeActiveSyncProvisioning_IEasClientDeviceInformation::Id() const { winrt::guid value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Security::ExchangeActiveSyncProvisioning::IEasClientDeviceInformation)->get_Id(put_abi(value))); return value; } template auto consume_Windows_Security_ExchangeActiveSyncProvisioning_IEasClientDeviceInformation::OperatingSystem() const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Security::ExchangeActiveSyncProvisioning::IEasClientDeviceInformation)->get_OperatingSystem(&value)); return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_ExchangeActiveSyncProvisioning_IEasClientDeviceInformation::FriendlyName() const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Security::ExchangeActiveSyncProvisioning::IEasClientDeviceInformation)->get_FriendlyName(&value)); return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_ExchangeActiveSyncProvisioning_IEasClientDeviceInformation::SystemManufacturer() const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Security::ExchangeActiveSyncProvisioning::IEasClientDeviceInformation)->get_SystemManufacturer(&value)); return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_ExchangeActiveSyncProvisioning_IEasClientDeviceInformation::SystemProductName() const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Security::ExchangeActiveSyncProvisioning::IEasClientDeviceInformation)->get_SystemProductName(&value)); return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_ExchangeActiveSyncProvisioning_IEasClientDeviceInformation::SystemSku() const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Security::ExchangeActiveSyncProvisioning::IEasClientDeviceInformation)->get_SystemSku(&value)); return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_ExchangeActiveSyncProvisioning_IEasClientDeviceInformation2::SystemHardwareVersion() const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Security::ExchangeActiveSyncProvisioning::IEasClientDeviceInformation2)->get_SystemHardwareVersion(&value)); return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_ExchangeActiveSyncProvisioning_IEasClientDeviceInformation2::SystemFirmwareVersion() const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Security::ExchangeActiveSyncProvisioning::IEasClientDeviceInformation2)->get_SystemFirmwareVersion(&value)); return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_ExchangeActiveSyncProvisioning_IEasClientSecurityPolicy::RequireEncryption() const { bool value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Security::ExchangeActiveSyncProvisioning::IEasClientSecurityPolicy)->get_RequireEncryption(&value)); return value; } template auto consume_Windows_Security_ExchangeActiveSyncProvisioning_IEasClientSecurityPolicy::RequireEncryption(bool value) const { check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Security::ExchangeActiveSyncProvisioning::IEasClientSecurityPolicy)->put_RequireEncryption(value)); } template auto consume_Windows_Security_ExchangeActiveSyncProvisioning_IEasClientSecurityPolicy::MinPasswordLength() const { uint8_t value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Security::ExchangeActiveSyncProvisioning::IEasClientSecurityPolicy)->get_MinPasswordLength(&value)); return value; } template auto consume_Windows_Security_ExchangeActiveSyncProvisioning_IEasClientSecurityPolicy::MinPasswordLength(uint8_t value) const { check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Security::ExchangeActiveSyncProvisioning::IEasClientSecurityPolicy)->put_MinPasswordLength(value)); } template auto consume_Windows_Security_ExchangeActiveSyncProvisioning_IEasClientSecurityPolicy::DisallowConvenienceLogon() const { bool value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Security::ExchangeActiveSyncProvisioning::IEasClientSecurityPolicy)->get_DisallowConvenienceLogon(&value)); return value; } template auto consume_Windows_Security_ExchangeActiveSyncProvisioning_IEasClientSecurityPolicy::DisallowConvenienceLogon(bool value) const { check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Security::ExchangeActiveSyncProvisioning::IEasClientSecurityPolicy)->put_DisallowConvenienceLogon(value)); } template auto consume_Windows_Security_ExchangeActiveSyncProvisioning_IEasClientSecurityPolicy::MinPasswordComplexCharacters() const { uint8_t value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Security::ExchangeActiveSyncProvisioning::IEasClientSecurityPolicy)->get_MinPasswordComplexCharacters(&value)); return value; } template auto consume_Windows_Security_ExchangeActiveSyncProvisioning_IEasClientSecurityPolicy::MinPasswordComplexCharacters(uint8_t value) const { check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Security::ExchangeActiveSyncProvisioning::IEasClientSecurityPolicy)->put_MinPasswordComplexCharacters(value)); } template auto consume_Windows_Security_ExchangeActiveSyncProvisioning_IEasClientSecurityPolicy::PasswordExpiration() const { winrt::Windows::Foundation::TimeSpan value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Security::ExchangeActiveSyncProvisioning::IEasClientSecurityPolicy)->get_PasswordExpiration(put_abi(value))); return value; } template auto consume_Windows_Security_ExchangeActiveSyncProvisioning_IEasClientSecurityPolicy::PasswordExpiration(winrt::Windows::Foundation::TimeSpan const& value) const { check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Security::ExchangeActiveSyncProvisioning::IEasClientSecurityPolicy)->put_PasswordExpiration(impl::bind_in(value))); } template auto consume_Windows_Security_ExchangeActiveSyncProvisioning_IEasClientSecurityPolicy::PasswordHistory() const { uint32_t value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Security::ExchangeActiveSyncProvisioning::IEasClientSecurityPolicy)->get_PasswordHistory(&value)); return value; } template auto consume_Windows_Security_ExchangeActiveSyncProvisioning_IEasClientSecurityPolicy::PasswordHistory(uint32_t value) const { check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Security::ExchangeActiveSyncProvisioning::IEasClientSecurityPolicy)->put_PasswordHistory(value)); } template auto consume_Windows_Security_ExchangeActiveSyncProvisioning_IEasClientSecurityPolicy::MaxPasswordFailedAttempts() const { uint8_t value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Security::ExchangeActiveSyncProvisioning::IEasClientSecurityPolicy)->get_MaxPasswordFailedAttempts(&value)); return value; } template auto consume_Windows_Security_ExchangeActiveSyncProvisioning_IEasClientSecurityPolicy::MaxPasswordFailedAttempts(uint8_t value) const { check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Security::ExchangeActiveSyncProvisioning::IEasClientSecurityPolicy)->put_MaxPasswordFailedAttempts(value)); } template auto consume_Windows_Security_ExchangeActiveSyncProvisioning_IEasClientSecurityPolicy::MaxInactivityTimeLock() const { winrt::Windows::Foundation::TimeSpan value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Security::ExchangeActiveSyncProvisioning::IEasClientSecurityPolicy)->get_MaxInactivityTimeLock(put_abi(value))); return value; } template auto consume_Windows_Security_ExchangeActiveSyncProvisioning_IEasClientSecurityPolicy::MaxInactivityTimeLock(winrt::Windows::Foundation::TimeSpan const& value) const { check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Security::ExchangeActiveSyncProvisioning::IEasClientSecurityPolicy)->put_MaxInactivityTimeLock(impl::bind_in(value))); } template auto consume_Windows_Security_ExchangeActiveSyncProvisioning_IEasClientSecurityPolicy::CheckCompliance() const { void* result{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Security::ExchangeActiveSyncProvisioning::IEasClientSecurityPolicy)->CheckCompliance(&result)); return winrt::Windows::Security::ExchangeActiveSyncProvisioning::EasComplianceResults{ result, take_ownership_from_abi }; } template auto consume_Windows_Security_ExchangeActiveSyncProvisioning_IEasClientSecurityPolicy::ApplyAsync() const { void* operation{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Security::ExchangeActiveSyncProvisioning::IEasClientSecurityPolicy)->ApplyAsync(&operation)); return winrt::Windows::Foundation::IAsyncOperation{ operation, take_ownership_from_abi }; } template auto consume_Windows_Security_ExchangeActiveSyncProvisioning_IEasComplianceResults::Compliant() const { bool value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Security::ExchangeActiveSyncProvisioning::IEasComplianceResults)->get_Compliant(&value)); return value; } template auto consume_Windows_Security_ExchangeActiveSyncProvisioning_IEasComplianceResults::RequireEncryptionResult() const { winrt::Windows::Security::ExchangeActiveSyncProvisioning::EasRequireEncryptionResult value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Security::ExchangeActiveSyncProvisioning::IEasComplianceResults)->get_RequireEncryptionResult(reinterpret_cast(&value))); return value; } template auto consume_Windows_Security_ExchangeActiveSyncProvisioning_IEasComplianceResults::MinPasswordLengthResult() const { winrt::Windows::Security::ExchangeActiveSyncProvisioning::EasMinPasswordLengthResult value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Security::ExchangeActiveSyncProvisioning::IEasComplianceResults)->get_MinPasswordLengthResult(reinterpret_cast(&value))); return value; } template auto consume_Windows_Security_ExchangeActiveSyncProvisioning_IEasComplianceResults::DisallowConvenienceLogonResult() const { winrt::Windows::Security::ExchangeActiveSyncProvisioning::EasDisallowConvenienceLogonResult value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Security::ExchangeActiveSyncProvisioning::IEasComplianceResults)->get_DisallowConvenienceLogonResult(reinterpret_cast(&value))); return value; } template auto consume_Windows_Security_ExchangeActiveSyncProvisioning_IEasComplianceResults::MinPasswordComplexCharactersResult() const { winrt::Windows::Security::ExchangeActiveSyncProvisioning::EasMinPasswordComplexCharactersResult value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Security::ExchangeActiveSyncProvisioning::IEasComplianceResults)->get_MinPasswordComplexCharactersResult(reinterpret_cast(&value))); return value; } template auto consume_Windows_Security_ExchangeActiveSyncProvisioning_IEasComplianceResults::PasswordExpirationResult() const { winrt::Windows::Security::ExchangeActiveSyncProvisioning::EasPasswordExpirationResult value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Security::ExchangeActiveSyncProvisioning::IEasComplianceResults)->get_PasswordExpirationResult(reinterpret_cast(&value))); return value; } template auto consume_Windows_Security_ExchangeActiveSyncProvisioning_IEasComplianceResults::PasswordHistoryResult() const { winrt::Windows::Security::ExchangeActiveSyncProvisioning::EasPasswordHistoryResult value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Security::ExchangeActiveSyncProvisioning::IEasComplianceResults)->get_PasswordHistoryResult(reinterpret_cast(&value))); return value; } template auto consume_Windows_Security_ExchangeActiveSyncProvisioning_IEasComplianceResults::MaxPasswordFailedAttemptsResult() const { winrt::Windows::Security::ExchangeActiveSyncProvisioning::EasMaxPasswordFailedAttemptsResult value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Security::ExchangeActiveSyncProvisioning::IEasComplianceResults)->get_MaxPasswordFailedAttemptsResult(reinterpret_cast(&value))); return value; } template auto consume_Windows_Security_ExchangeActiveSyncProvisioning_IEasComplianceResults::MaxInactivityTimeLockResult() const { winrt::Windows::Security::ExchangeActiveSyncProvisioning::EasMaxInactivityTimeLockResult value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Security::ExchangeActiveSyncProvisioning::IEasComplianceResults)->get_MaxInactivityTimeLockResult(reinterpret_cast(&value))); return value; } template auto consume_Windows_Security_ExchangeActiveSyncProvisioning_IEasComplianceResults2::EncryptionProviderType() const { winrt::Windows::Security::ExchangeActiveSyncProvisioning::EasEncryptionProviderType value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Security::ExchangeActiveSyncProvisioning::IEasComplianceResults2)->get_EncryptionProviderType(reinterpret_cast(&value))); return value; } #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_Id(winrt::guid* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Id()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_OperatingSystem(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().OperatingSystem()); 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 get_SystemManufacturer(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().SystemManufacturer()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_SystemProductName(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().SystemProductName()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_SystemSku(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().SystemSku()); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_SystemHardwareVersion(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().SystemHardwareVersion()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_SystemFirmwareVersion(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().SystemFirmwareVersion()); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_RequireEncryption(bool* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().RequireEncryption()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_RequireEncryption(bool value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().RequireEncryption(value); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_MinPasswordLength(uint8_t* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().MinPasswordLength()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_MinPasswordLength(uint8_t value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().MinPasswordLength(value); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_DisallowConvenienceLogon(bool* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().DisallowConvenienceLogon()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_DisallowConvenienceLogon(bool value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().DisallowConvenienceLogon(value); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_MinPasswordComplexCharacters(uint8_t* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().MinPasswordComplexCharacters()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_MinPasswordComplexCharacters(uint8_t value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().MinPasswordComplexCharacters(value); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_PasswordExpiration(int64_t* value) noexcept final try { zero_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().PasswordExpiration()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_PasswordExpiration(int64_t value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().PasswordExpiration(*reinterpret_cast(&value)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_PasswordHistory(uint32_t* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().PasswordHistory()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_PasswordHistory(uint32_t value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().PasswordHistory(value); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_MaxPasswordFailedAttempts(uint8_t* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().MaxPasswordFailedAttempts()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_MaxPasswordFailedAttempts(uint8_t value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().MaxPasswordFailedAttempts(value); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_MaxInactivityTimeLock(int64_t* value) noexcept final try { zero_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().MaxInactivityTimeLock()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_MaxInactivityTimeLock(int64_t value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().MaxInactivityTimeLock(*reinterpret_cast(&value)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall CheckCompliance(void** result) noexcept final try { clear_abi(result); typename D::abi_guard guard(this->shim()); *result = detach_from(this->shim().CheckCompliance()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall ApplyAsync(void** operation) noexcept final try { clear_abi(operation); typename D::abi_guard guard(this->shim()); *operation = detach_from>(this->shim().ApplyAsync()); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_Compliant(bool* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Compliant()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_RequireEncryptionResult(int32_t* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().RequireEncryptionResult()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_MinPasswordLengthResult(int32_t* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().MinPasswordLengthResult()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_DisallowConvenienceLogonResult(int32_t* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().DisallowConvenienceLogonResult()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_MinPasswordComplexCharactersResult(int32_t* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().MinPasswordComplexCharactersResult()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_PasswordExpirationResult(int32_t* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().PasswordExpirationResult()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_PasswordHistoryResult(int32_t* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().PasswordHistoryResult()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_MaxPasswordFailedAttemptsResult(int32_t* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().MaxPasswordFailedAttemptsResult()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_MaxInactivityTimeLockResult(int32_t* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().MaxInactivityTimeLockResult()); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_EncryptionProviderType(int32_t* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().EncryptionProviderType()); return 0; } catch (...) { return to_hresult(); } }; #endif } WINRT_EXPORT namespace winrt::Windows::Security::ExchangeActiveSyncProvisioning { inline EasClientDeviceInformation::EasClientDeviceInformation() : EasClientDeviceInformation(impl::call_factory_cast([](winrt::Windows::Foundation::IActivationFactory const& f) { return f.template ActivateInstance(); })) { } inline EasClientSecurityPolicy::EasClientSecurityPolicy() : EasClientSecurityPolicy(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 {}; #endif #ifdef __cpp_lib_format #endif } #endif