// WARNING: Please don't edit this file. It was generated by C++/WinRT v2.0.240405.15 #pragma once #ifndef WINRT_Windows_Media_Control_H #define WINRT_Windows_Media_Control_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/Windows.Media.h" #include "winrt/impl/Windows.Foundation.2.h" #include "winrt/impl/Windows.Foundation.Collections.2.h" #include "winrt/impl/Windows.Media.2.h" #include "winrt/impl/Windows.Storage.Streams.2.h" #include "winrt/impl/Windows.Media.Control.2.h" namespace winrt::impl { template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSession::SourceAppUserModelId() const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSession)->get_SourceAppUserModelId(&value)); return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSession::TryGetMediaPropertiesAsync() const { void* operation{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSession)->TryGetMediaPropertiesAsync(&operation)); return winrt::Windows::Foundation::IAsyncOperation{ operation, take_ownership_from_abi }; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSession::GetTimelineProperties() const { void* result{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSession)->GetTimelineProperties(&result)); return winrt::Windows::Media::Control::GlobalSystemMediaTransportControlsSessionTimelineProperties{ result, take_ownership_from_abi }; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSession::GetPlaybackInfo() const { void* result{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSession)->GetPlaybackInfo(&result)); return winrt::Windows::Media::Control::GlobalSystemMediaTransportControlsSessionPlaybackInfo{ result, take_ownership_from_abi }; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSession::TryPlayAsync() const { void* operation{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSession)->TryPlayAsync(&operation)); return winrt::Windows::Foundation::IAsyncOperation{ operation, take_ownership_from_abi }; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSession::TryPauseAsync() const { void* operation{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSession)->TryPauseAsync(&operation)); return winrt::Windows::Foundation::IAsyncOperation{ operation, take_ownership_from_abi }; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSession::TryStopAsync() const { void* operation{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSession)->TryStopAsync(&operation)); return winrt::Windows::Foundation::IAsyncOperation{ operation, take_ownership_from_abi }; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSession::TryRecordAsync() const { void* operation{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSession)->TryRecordAsync(&operation)); return winrt::Windows::Foundation::IAsyncOperation{ operation, take_ownership_from_abi }; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSession::TryFastForwardAsync() const { void* operation{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSession)->TryFastForwardAsync(&operation)); return winrt::Windows::Foundation::IAsyncOperation{ operation, take_ownership_from_abi }; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSession::TryRewindAsync() const { void* operation{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSession)->TryRewindAsync(&operation)); return winrt::Windows::Foundation::IAsyncOperation{ operation, take_ownership_from_abi }; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSession::TrySkipNextAsync() const { void* operation{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSession)->TrySkipNextAsync(&operation)); return winrt::Windows::Foundation::IAsyncOperation{ operation, take_ownership_from_abi }; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSession::TrySkipPreviousAsync() const { void* operation{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSession)->TrySkipPreviousAsync(&operation)); return winrt::Windows::Foundation::IAsyncOperation{ operation, take_ownership_from_abi }; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSession::TryChangeChannelUpAsync() const { void* operation{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSession)->TryChangeChannelUpAsync(&operation)); return winrt::Windows::Foundation::IAsyncOperation{ operation, take_ownership_from_abi }; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSession::TryChangeChannelDownAsync() const { void* operation{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSession)->TryChangeChannelDownAsync(&operation)); return winrt::Windows::Foundation::IAsyncOperation{ operation, take_ownership_from_abi }; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSession::TryTogglePlayPauseAsync() const { void* operation{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSession)->TryTogglePlayPauseAsync(&operation)); return winrt::Windows::Foundation::IAsyncOperation{ operation, take_ownership_from_abi }; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSession::TryChangeAutoRepeatModeAsync(winrt::Windows::Media::MediaPlaybackAutoRepeatMode const& requestedAutoRepeatMode) const { void* operation{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSession)->TryChangeAutoRepeatModeAsync(static_cast(requestedAutoRepeatMode), &operation)); return winrt::Windows::Foundation::IAsyncOperation{ operation, take_ownership_from_abi }; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSession::TryChangePlaybackRateAsync(double requestedPlaybackRate) const { void* operation{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSession)->TryChangePlaybackRateAsync(requestedPlaybackRate, &operation)); return winrt::Windows::Foundation::IAsyncOperation{ operation, take_ownership_from_abi }; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSession::TryChangeShuffleActiveAsync(bool requestedShuffleState) const { void* operation{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSession)->TryChangeShuffleActiveAsync(requestedShuffleState, &operation)); return winrt::Windows::Foundation::IAsyncOperation{ operation, take_ownership_from_abi }; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSession::TryChangePlaybackPositionAsync(int64_t requestedPlaybackPosition) const { void* operation{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSession)->TryChangePlaybackPositionAsync(requestedPlaybackPosition, &operation)); return winrt::Windows::Foundation::IAsyncOperation{ operation, take_ownership_from_abi }; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSession::TimelinePropertiesChanged(winrt::Windows::Foundation::TypedEventHandler const& handler) const { winrt::event_token token{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSession)->add_TimelinePropertiesChanged(*(void**)(&handler), put_abi(token))); return token; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSession::TimelinePropertiesChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler const& handler) const { return impl::make_event_revoker(this, TimelinePropertiesChanged(handler)); } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSession::TimelinePropertiesChanged(winrt::event_token const& token) const noexcept { WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSession)->remove_TimelinePropertiesChanged(impl::bind_in(token)); } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSession::PlaybackInfoChanged(winrt::Windows::Foundation::TypedEventHandler const& handler) const { winrt::event_token token{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSession)->add_PlaybackInfoChanged(*(void**)(&handler), put_abi(token))); return token; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSession::PlaybackInfoChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler const& handler) const { return impl::make_event_revoker(this, PlaybackInfoChanged(handler)); } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSession::PlaybackInfoChanged(winrt::event_token const& token) const noexcept { WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSession)->remove_PlaybackInfoChanged(impl::bind_in(token)); } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSession::MediaPropertiesChanged(winrt::Windows::Foundation::TypedEventHandler const& handler) const { winrt::event_token token{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSession)->add_MediaPropertiesChanged(*(void**)(&handler), put_abi(token))); return token; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSession::MediaPropertiesChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler const& handler) const { return impl::make_event_revoker(this, MediaPropertiesChanged(handler)); } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSession::MediaPropertiesChanged(winrt::event_token const& token) const noexcept { WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSession)->remove_MediaPropertiesChanged(impl::bind_in(token)); } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSessionManager::GetCurrentSession() const { void* result{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSessionManager)->GetCurrentSession(&result)); return winrt::Windows::Media::Control::GlobalSystemMediaTransportControlsSession{ result, take_ownership_from_abi }; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSessionManager::GetSessions() const { void* result{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSessionManager)->GetSessions(&result)); return winrt::Windows::Foundation::Collections::IVectorView{ result, take_ownership_from_abi }; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSessionManager::CurrentSessionChanged(winrt::Windows::Foundation::TypedEventHandler const& handler) const { winrt::event_token token{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSessionManager)->add_CurrentSessionChanged(*(void**)(&handler), put_abi(token))); return token; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSessionManager::CurrentSessionChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler const& handler) const { return impl::make_event_revoker(this, CurrentSessionChanged(handler)); } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSessionManager::CurrentSessionChanged(winrt::event_token const& token) const noexcept { WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSessionManager)->remove_CurrentSessionChanged(impl::bind_in(token)); } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSessionManager::SessionsChanged(winrt::Windows::Foundation::TypedEventHandler const& handler) const { winrt::event_token token{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSessionManager)->add_SessionsChanged(*(void**)(&handler), put_abi(token))); return token; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSessionManager::SessionsChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler const& handler) const { return impl::make_event_revoker(this, SessionsChanged(handler)); } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSessionManager::SessionsChanged(winrt::event_token const& token) const noexcept { WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSessionManager)->remove_SessionsChanged(impl::bind_in(token)); } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSessionManagerStatics::RequestAsync() const { void* operation{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSessionManagerStatics)->RequestAsync(&operation)); return winrt::Windows::Foundation::IAsyncOperation{ operation, take_ownership_from_abi }; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSessionMediaProperties::Title() const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSessionMediaProperties)->get_Title(&value)); return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSessionMediaProperties::Subtitle() const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSessionMediaProperties)->get_Subtitle(&value)); return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSessionMediaProperties::AlbumArtist() const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSessionMediaProperties)->get_AlbumArtist(&value)); return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSessionMediaProperties::Artist() const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSessionMediaProperties)->get_Artist(&value)); return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSessionMediaProperties::AlbumTitle() const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSessionMediaProperties)->get_AlbumTitle(&value)); return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSessionMediaProperties::TrackNumber() const { int32_t value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSessionMediaProperties)->get_TrackNumber(&value)); return value; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSessionMediaProperties::Genres() const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSessionMediaProperties)->get_Genres(&value)); return winrt::Windows::Foundation::Collections::IVectorView{ value, take_ownership_from_abi }; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSessionMediaProperties::AlbumTrackCount() const { int32_t value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSessionMediaProperties)->get_AlbumTrackCount(&value)); return value; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSessionMediaProperties::PlaybackType() const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSessionMediaProperties)->get_PlaybackType(&value)); return winrt::Windows::Foundation::IReference{ value, take_ownership_from_abi }; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSessionMediaProperties::Thumbnail() const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSessionMediaProperties)->get_Thumbnail(&value)); return winrt::Windows::Storage::Streams::IRandomAccessStreamReference{ value, take_ownership_from_abi }; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSessionPlaybackControls::IsPlayEnabled() const { bool value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSessionPlaybackControls)->get_IsPlayEnabled(&value)); return value; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSessionPlaybackControls::IsPauseEnabled() const { bool value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSessionPlaybackControls)->get_IsPauseEnabled(&value)); return value; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSessionPlaybackControls::IsStopEnabled() const { bool value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSessionPlaybackControls)->get_IsStopEnabled(&value)); return value; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSessionPlaybackControls::IsRecordEnabled() const { bool value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSessionPlaybackControls)->get_IsRecordEnabled(&value)); return value; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSessionPlaybackControls::IsFastForwardEnabled() const { bool value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSessionPlaybackControls)->get_IsFastForwardEnabled(&value)); return value; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSessionPlaybackControls::IsRewindEnabled() const { bool value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSessionPlaybackControls)->get_IsRewindEnabled(&value)); return value; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSessionPlaybackControls::IsNextEnabled() const { bool value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSessionPlaybackControls)->get_IsNextEnabled(&value)); return value; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSessionPlaybackControls::IsPreviousEnabled() const { bool value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSessionPlaybackControls)->get_IsPreviousEnabled(&value)); return value; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSessionPlaybackControls::IsChannelUpEnabled() const { bool value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSessionPlaybackControls)->get_IsChannelUpEnabled(&value)); return value; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSessionPlaybackControls::IsChannelDownEnabled() const { bool value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSessionPlaybackControls)->get_IsChannelDownEnabled(&value)); return value; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSessionPlaybackControls::IsPlayPauseToggleEnabled() const { bool value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSessionPlaybackControls)->get_IsPlayPauseToggleEnabled(&value)); return value; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSessionPlaybackControls::IsShuffleEnabled() const { bool value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSessionPlaybackControls)->get_IsShuffleEnabled(&value)); return value; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSessionPlaybackControls::IsRepeatEnabled() const { bool value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSessionPlaybackControls)->get_IsRepeatEnabled(&value)); return value; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSessionPlaybackControls::IsPlaybackRateEnabled() const { bool value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSessionPlaybackControls)->get_IsPlaybackRateEnabled(&value)); return value; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSessionPlaybackControls::IsPlaybackPositionEnabled() const { bool value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSessionPlaybackControls)->get_IsPlaybackPositionEnabled(&value)); return value; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSessionPlaybackInfo::Controls() const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSessionPlaybackInfo)->get_Controls(&value)); return winrt::Windows::Media::Control::GlobalSystemMediaTransportControlsSessionPlaybackControls{ value, take_ownership_from_abi }; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSessionPlaybackInfo::PlaybackStatus() const { winrt::Windows::Media::Control::GlobalSystemMediaTransportControlsSessionPlaybackStatus value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSessionPlaybackInfo)->get_PlaybackStatus(reinterpret_cast(&value))); return value; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSessionPlaybackInfo::PlaybackType() const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSessionPlaybackInfo)->get_PlaybackType(&value)); return winrt::Windows::Foundation::IReference{ value, take_ownership_from_abi }; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSessionPlaybackInfo::AutoRepeatMode() const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSessionPlaybackInfo)->get_AutoRepeatMode(&value)); return winrt::Windows::Foundation::IReference{ value, take_ownership_from_abi }; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSessionPlaybackInfo::PlaybackRate() const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSessionPlaybackInfo)->get_PlaybackRate(&value)); return winrt::Windows::Foundation::IReference{ value, take_ownership_from_abi }; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSessionPlaybackInfo::IsShuffleActive() const { void* value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSessionPlaybackInfo)->get_IsShuffleActive(&value)); return winrt::Windows::Foundation::IReference{ value, take_ownership_from_abi }; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSessionTimelineProperties::StartTime() const { winrt::Windows::Foundation::TimeSpan value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSessionTimelineProperties)->get_StartTime(put_abi(value))); return value; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSessionTimelineProperties::EndTime() const { winrt::Windows::Foundation::TimeSpan value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSessionTimelineProperties)->get_EndTime(put_abi(value))); return value; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSessionTimelineProperties::MinSeekTime() const { winrt::Windows::Foundation::TimeSpan value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSessionTimelineProperties)->get_MinSeekTime(put_abi(value))); return value; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSessionTimelineProperties::MaxSeekTime() const { winrt::Windows::Foundation::TimeSpan value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSessionTimelineProperties)->get_MaxSeekTime(put_abi(value))); return value; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSessionTimelineProperties::Position() const { winrt::Windows::Foundation::TimeSpan value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSessionTimelineProperties)->get_Position(put_abi(value))); return value; } template auto consume_Windows_Media_Control_IGlobalSystemMediaTransportControlsSessionTimelineProperties::LastUpdatedTime() const { winrt::Windows::Foundation::DateTime value{}; check_hresult(WINRT_IMPL_SHIM(winrt::Windows::Media::Control::IGlobalSystemMediaTransportControlsSessionTimelineProperties)->get_LastUpdatedTime(put_abi(value))); return value; } #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_SourceAppUserModelId(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().SourceAppUserModelId()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall TryGetMediaPropertiesAsync(void** operation) noexcept final try { clear_abi(operation); typename D::abi_guard guard(this->shim()); *operation = detach_from>(this->shim().TryGetMediaPropertiesAsync()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall GetTimelineProperties(void** result) noexcept final try { clear_abi(result); typename D::abi_guard guard(this->shim()); *result = detach_from(this->shim().GetTimelineProperties()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall GetPlaybackInfo(void** result) noexcept final try { clear_abi(result); typename D::abi_guard guard(this->shim()); *result = detach_from(this->shim().GetPlaybackInfo()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall TryPlayAsync(void** operation) noexcept final try { clear_abi(operation); typename D::abi_guard guard(this->shim()); *operation = detach_from>(this->shim().TryPlayAsync()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall TryPauseAsync(void** operation) noexcept final try { clear_abi(operation); typename D::abi_guard guard(this->shim()); *operation = detach_from>(this->shim().TryPauseAsync()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall TryStopAsync(void** operation) noexcept final try { clear_abi(operation); typename D::abi_guard guard(this->shim()); *operation = detach_from>(this->shim().TryStopAsync()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall TryRecordAsync(void** operation) noexcept final try { clear_abi(operation); typename D::abi_guard guard(this->shim()); *operation = detach_from>(this->shim().TryRecordAsync()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall TryFastForwardAsync(void** operation) noexcept final try { clear_abi(operation); typename D::abi_guard guard(this->shim()); *operation = detach_from>(this->shim().TryFastForwardAsync()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall TryRewindAsync(void** operation) noexcept final try { clear_abi(operation); typename D::abi_guard guard(this->shim()); *operation = detach_from>(this->shim().TryRewindAsync()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall TrySkipNextAsync(void** operation) noexcept final try { clear_abi(operation); typename D::abi_guard guard(this->shim()); *operation = detach_from>(this->shim().TrySkipNextAsync()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall TrySkipPreviousAsync(void** operation) noexcept final try { clear_abi(operation); typename D::abi_guard guard(this->shim()); *operation = detach_from>(this->shim().TrySkipPreviousAsync()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall TryChangeChannelUpAsync(void** operation) noexcept final try { clear_abi(operation); typename D::abi_guard guard(this->shim()); *operation = detach_from>(this->shim().TryChangeChannelUpAsync()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall TryChangeChannelDownAsync(void** operation) noexcept final try { clear_abi(operation); typename D::abi_guard guard(this->shim()); *operation = detach_from>(this->shim().TryChangeChannelDownAsync()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall TryTogglePlayPauseAsync(void** operation) noexcept final try { clear_abi(operation); typename D::abi_guard guard(this->shim()); *operation = detach_from>(this->shim().TryTogglePlayPauseAsync()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall TryChangeAutoRepeatModeAsync(int32_t requestedAutoRepeatMode, void** operation) noexcept final try { clear_abi(operation); typename D::abi_guard guard(this->shim()); *operation = detach_from>(this->shim().TryChangeAutoRepeatModeAsync(*reinterpret_cast(&requestedAutoRepeatMode))); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall TryChangePlaybackRateAsync(double requestedPlaybackRate, void** operation) noexcept final try { clear_abi(operation); typename D::abi_guard guard(this->shim()); *operation = detach_from>(this->shim().TryChangePlaybackRateAsync(requestedPlaybackRate)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall TryChangeShuffleActiveAsync(bool requestedShuffleState, void** operation) noexcept final try { clear_abi(operation); typename D::abi_guard guard(this->shim()); *operation = detach_from>(this->shim().TryChangeShuffleActiveAsync(requestedShuffleState)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall TryChangePlaybackPositionAsync(int64_t requestedPlaybackPosition, void** operation) noexcept final try { clear_abi(operation); typename D::abi_guard guard(this->shim()); *operation = detach_from>(this->shim().TryChangePlaybackPositionAsync(requestedPlaybackPosition)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall add_TimelinePropertiesChanged(void* handler, winrt::event_token* token) noexcept final try { zero_abi(token); typename D::abi_guard guard(this->shim()); *token = detach_from(this->shim().TimelinePropertiesChanged(*reinterpret_cast const*>(&handler))); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall remove_TimelinePropertiesChanged(winrt::event_token token) noexcept final { typename D::abi_guard guard(this->shim()); this->shim().TimelinePropertiesChanged(*reinterpret_cast(&token)); return 0; } int32_t __stdcall add_PlaybackInfoChanged(void* handler, winrt::event_token* token) noexcept final try { zero_abi(token); typename D::abi_guard guard(this->shim()); *token = detach_from(this->shim().PlaybackInfoChanged(*reinterpret_cast const*>(&handler))); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall remove_PlaybackInfoChanged(winrt::event_token token) noexcept final { typename D::abi_guard guard(this->shim()); this->shim().PlaybackInfoChanged(*reinterpret_cast(&token)); return 0; } int32_t __stdcall add_MediaPropertiesChanged(void* handler, winrt::event_token* token) noexcept final try { zero_abi(token); typename D::abi_guard guard(this->shim()); *token = detach_from(this->shim().MediaPropertiesChanged(*reinterpret_cast const*>(&handler))); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall remove_MediaPropertiesChanged(winrt::event_token token) noexcept final { typename D::abi_guard guard(this->shim()); this->shim().MediaPropertiesChanged(*reinterpret_cast(&token)); return 0; } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall GetCurrentSession(void** result) noexcept final try { clear_abi(result); typename D::abi_guard guard(this->shim()); *result = detach_from(this->shim().GetCurrentSession()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall GetSessions(void** result) noexcept final try { clear_abi(result); typename D::abi_guard guard(this->shim()); *result = detach_from>(this->shim().GetSessions()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall add_CurrentSessionChanged(void* handler, winrt::event_token* token) noexcept final try { zero_abi(token); typename D::abi_guard guard(this->shim()); *token = detach_from(this->shim().CurrentSessionChanged(*reinterpret_cast const*>(&handler))); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall remove_CurrentSessionChanged(winrt::event_token token) noexcept final { typename D::abi_guard guard(this->shim()); this->shim().CurrentSessionChanged(*reinterpret_cast(&token)); return 0; } int32_t __stdcall add_SessionsChanged(void* handler, winrt::event_token* token) noexcept final try { zero_abi(token); typename D::abi_guard guard(this->shim()); *token = detach_from(this->shim().SessionsChanged(*reinterpret_cast const*>(&handler))); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall remove_SessionsChanged(winrt::event_token token) noexcept final { typename D::abi_guard guard(this->shim()); this->shim().SessionsChanged(*reinterpret_cast(&token)); return 0; } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall RequestAsync(void** operation) noexcept final try { clear_abi(operation); typename D::abi_guard guard(this->shim()); *operation = detach_from>(this->shim().RequestAsync()); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_Title(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Title()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Subtitle(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Subtitle()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_AlbumArtist(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().AlbumArtist()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Artist(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Artist()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_AlbumTitle(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().AlbumTitle()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_TrackNumber(int32_t* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().TrackNumber()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Genres(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from>(this->shim().Genres()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_AlbumTrackCount(int32_t* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().AlbumTrackCount()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_PlaybackType(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from>(this->shim().PlaybackType()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Thumbnail(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Thumbnail()); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_IsPlayEnabled(bool* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().IsPlayEnabled()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_IsPauseEnabled(bool* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().IsPauseEnabled()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_IsStopEnabled(bool* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().IsStopEnabled()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_IsRecordEnabled(bool* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().IsRecordEnabled()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_IsFastForwardEnabled(bool* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().IsFastForwardEnabled()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_IsRewindEnabled(bool* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().IsRewindEnabled()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_IsNextEnabled(bool* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().IsNextEnabled()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_IsPreviousEnabled(bool* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().IsPreviousEnabled()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_IsChannelUpEnabled(bool* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().IsChannelUpEnabled()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_IsChannelDownEnabled(bool* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().IsChannelDownEnabled()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_IsPlayPauseToggleEnabled(bool* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().IsPlayPauseToggleEnabled()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_IsShuffleEnabled(bool* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().IsShuffleEnabled()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_IsRepeatEnabled(bool* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().IsRepeatEnabled()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_IsPlaybackRateEnabled(bool* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().IsPlaybackRateEnabled()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_IsPlaybackPositionEnabled(bool* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().IsPlaybackPositionEnabled()); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_Controls(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Controls()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_PlaybackStatus(int32_t* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().PlaybackStatus()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_PlaybackType(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from>(this->shim().PlaybackType()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_AutoRepeatMode(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from>(this->shim().AutoRepeatMode()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_PlaybackRate(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from>(this->shim().PlaybackRate()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_IsShuffleActive(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from>(this->shim().IsShuffleActive()); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_StartTime(int64_t* value) noexcept final try { zero_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().StartTime()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_EndTime(int64_t* value) noexcept final try { zero_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().EndTime()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_MinSeekTime(int64_t* value) noexcept final try { zero_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().MinSeekTime()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_MaxSeekTime(int64_t* value) noexcept final try { zero_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().MaxSeekTime()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Position(int64_t* value) noexcept final try { zero_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Position()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_LastUpdatedTime(int64_t* value) noexcept final try { zero_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().LastUpdatedTime()); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { }; #endif } WINRT_EXPORT namespace winrt::Windows::Media::Control { inline auto GlobalSystemMediaTransportControlsSessionManager::RequestAsync() { return impl::call_factory_cast(*)(IGlobalSystemMediaTransportControlsSessionManagerStatics const&), GlobalSystemMediaTransportControlsSessionManager, IGlobalSystemMediaTransportControlsSessionManagerStatics>([](IGlobalSystemMediaTransportControlsSessionManagerStatics const& f) { return f.RequestAsync(); }); } } 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 {}; #endif #ifdef __cpp_lib_format #endif } #endif