// C++/WinRT v2.0.250303.1 // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. #pragma once #ifndef WINRT_Windows_Graphics_Display_Core_0_H #define WINRT_Windows_Graphics_Display_Core_0_H WINRT_EXPORT namespace winrt::Windows::Foundation { struct EventRegistrationToken; struct IAsyncAction; template struct WINRT_IMPL_EMPTY_BASES TypedEventHandler; } WINRT_EXPORT namespace winrt::Windows::Graphics::Display::Core { enum class HdmiDisplayColorSpace : int32_t { RgbLimited = 0, RgbFull = 1, BT2020 = 2, BT709 = 3, }; enum class HdmiDisplayHdrOption : int32_t { None = 0, EotfSdr = 1, Eotf2084 = 2, DolbyVisionLowLatency = 3, }; enum class HdmiDisplayPixelEncoding : int32_t { Rgb444 = 0, Ycc444 = 1, Ycc422 = 2, Ycc420 = 3, }; struct IHdmiDisplayInformation; struct IHdmiDisplayInformationStatics; struct IHdmiDisplayMode; struct IHdmiDisplayMode2; struct HdmiDisplayInformation; struct HdmiDisplayMode; struct HdmiDisplayHdr2086Metadata; } namespace winrt::impl { template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = enum_category; }; template <> struct category{ using type = enum_category; }; template <> struct category{ using type = enum_category; }; template <> struct category{ using type = struct_category; }; template <> inline constexpr auto& name_v = L"Windows.Graphics.Display.Core.HdmiDisplayInformation"; template <> inline constexpr auto& name_v = L"Windows.Graphics.Display.Core.HdmiDisplayMode"; template <> inline constexpr auto& name_v = L"Windows.Graphics.Display.Core.HdmiDisplayColorSpace"; template <> inline constexpr auto& name_v = L"Windows.Graphics.Display.Core.HdmiDisplayHdrOption"; template <> inline constexpr auto& name_v = L"Windows.Graphics.Display.Core.HdmiDisplayPixelEncoding"; template <> inline constexpr auto& name_v = L"Windows.Graphics.Display.Core.HdmiDisplayHdr2086Metadata"; template <> inline constexpr auto& name_v = L"Windows.Graphics.Display.Core.IHdmiDisplayInformation"; template <> inline constexpr auto& name_v = L"Windows.Graphics.Display.Core.IHdmiDisplayInformationStatics"; template <> inline constexpr auto& name_v = L"Windows.Graphics.Display.Core.IHdmiDisplayMode"; template <> inline constexpr auto& name_v = L"Windows.Graphics.Display.Core.IHdmiDisplayMode2"; template <> inline constexpr guid guid_v{ 0x130B3C0A,0xF565,0x476E,{ 0xAB,0xD5,0xEA,0x05,0xAE,0xE7,0x4C,0x69 } }; // 130B3C0A-F565-476E-ABD5-EA05AEE74C69 template <> inline constexpr guid guid_v{ 0x6CE6B260,0xF42A,0x4A15,{ 0x91,0x4C,0x7B,0x8E,0x2A,0x5A,0x65,0xDF } }; // 6CE6B260-F42A-4A15-914C-7B8E2A5A65DF template <> inline constexpr guid guid_v{ 0x0C06D5AD,0x1B90,0x4F51,{ 0x99,0x81,0xEF,0x5A,0x1C,0x0D,0xDF,0x66 } }; // 0C06D5AD-1B90-4F51-9981-EF5A1C0DDF66 template <> inline constexpr guid guid_v{ 0x07CD4E9F,0x4B3C,0x42B8,{ 0x84,0xE7,0x89,0x53,0x68,0x71,0x8A,0xF2 } }; // 07CD4E9F-4B3C-42B8-84E7-895368718AF2 template <> struct default_interface{ using type = winrt::Windows::Graphics::Display::Core::IHdmiDisplayInformation; }; template <> struct default_interface{ using type = winrt::Windows::Graphics::Display::Core::IHdmiDisplayMode; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall GetSupportedDisplayModes(void**) noexcept = 0; virtual int32_t __stdcall GetCurrentDisplayMode(void**) noexcept = 0; virtual int32_t __stdcall SetDefaultDisplayModeAsync(void**) noexcept = 0; virtual int32_t __stdcall RequestSetCurrentDisplayModeAsync(void*, void**) noexcept = 0; virtual int32_t __stdcall RequestSetCurrentDisplayModeWithHdrAsync(void*, int32_t, void**) noexcept = 0; virtual int32_t __stdcall RequestSetCurrentDisplayModeWithHdrAndMetadataAsync(void*, int32_t, struct struct_Windows_Graphics_Display_Core_HdmiDisplayHdr2086Metadata, void**) noexcept = 0; virtual int32_t __stdcall add_DisplayModesChanged(void*, winrt::event_token*) noexcept = 0; virtual int32_t __stdcall remove_DisplayModesChanged(winrt::event_token) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall GetForCurrentView(void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_ResolutionWidthInRawPixels(uint32_t*) noexcept = 0; virtual int32_t __stdcall get_ResolutionHeightInRawPixels(uint32_t*) noexcept = 0; virtual int32_t __stdcall get_RefreshRate(double*) noexcept = 0; virtual int32_t __stdcall get_StereoEnabled(bool*) noexcept = 0; virtual int32_t __stdcall get_BitsPerPixel(uint16_t*) noexcept = 0; virtual int32_t __stdcall IsEqual(void*, bool*) noexcept = 0; virtual int32_t __stdcall get_ColorSpace(int32_t*) noexcept = 0; virtual int32_t __stdcall get_PixelEncoding(int32_t*) noexcept = 0; virtual int32_t __stdcall get_IsSdrLuminanceSupported(bool*) noexcept = 0; virtual int32_t __stdcall get_IsSmpte2084Supported(bool*) noexcept = 0; virtual int32_t __stdcall get_Is2086MetadataSupported(bool*) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_IsDolbyVisionLowLatencySupported(bool*) noexcept = 0; }; }; template struct consume_Windows_Graphics_Display_Core_IHdmiDisplayInformation { auto GetSupportedDisplayModes() const; auto GetCurrentDisplayMode() const; auto SetDefaultDisplayModeAsync() const; auto RequestSetCurrentDisplayModeAsync(winrt::Windows::Graphics::Display::Core::HdmiDisplayMode const& mode) const; auto RequestSetCurrentDisplayModeAsync(winrt::Windows::Graphics::Display::Core::HdmiDisplayMode const& mode, winrt::Windows::Graphics::Display::Core::HdmiDisplayHdrOption const& hdrOption) const; auto RequestSetCurrentDisplayModeAsync(winrt::Windows::Graphics::Display::Core::HdmiDisplayMode const& mode, winrt::Windows::Graphics::Display::Core::HdmiDisplayHdrOption const& hdrOption, winrt::Windows::Graphics::Display::Core::HdmiDisplayHdr2086Metadata const& hdrMetadata) const; auto DisplayModesChanged(winrt::Windows::Foundation::TypedEventHandler const& value) const; using DisplayModesChanged_revoker = impl::event_revoker::remove_DisplayModesChanged>; [[nodiscard]] auto DisplayModesChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler const& value) const; auto DisplayModesChanged(winrt::event_token const& token) const noexcept; }; template <> struct consume { template using type = consume_Windows_Graphics_Display_Core_IHdmiDisplayInformation; }; template struct consume_Windows_Graphics_Display_Core_IHdmiDisplayInformationStatics { auto GetForCurrentView() const; }; template <> struct consume { template using type = consume_Windows_Graphics_Display_Core_IHdmiDisplayInformationStatics; }; template struct consume_Windows_Graphics_Display_Core_IHdmiDisplayMode { [[nodiscard]] auto ResolutionWidthInRawPixels() const; [[nodiscard]] auto ResolutionHeightInRawPixels() const; [[nodiscard]] auto RefreshRate() const; [[nodiscard]] auto StereoEnabled() const; [[nodiscard]] auto BitsPerPixel() const; auto IsEqual(winrt::Windows::Graphics::Display::Core::HdmiDisplayMode const& mode) const; [[nodiscard]] auto ColorSpace() const; [[nodiscard]] auto PixelEncoding() const; [[nodiscard]] auto IsSdrLuminanceSupported() const; [[nodiscard]] auto IsSmpte2084Supported() const; [[nodiscard]] auto Is2086MetadataSupported() const; }; template <> struct consume { template using type = consume_Windows_Graphics_Display_Core_IHdmiDisplayMode; }; template struct consume_Windows_Graphics_Display_Core_IHdmiDisplayMode2 { [[nodiscard]] auto IsDolbyVisionLowLatencySupported() const; }; template <> struct consume { template using type = consume_Windows_Graphics_Display_Core_IHdmiDisplayMode2; }; struct struct_Windows_Graphics_Display_Core_HdmiDisplayHdr2086Metadata { uint16_t RedPrimaryX; uint16_t RedPrimaryY; uint16_t GreenPrimaryX; uint16_t GreenPrimaryY; uint16_t BluePrimaryX; uint16_t BluePrimaryY; uint16_t WhitePointX; uint16_t WhitePointY; uint16_t MaxMasteringLuminance; uint16_t MinMasteringLuminance; uint16_t MaxContentLightLevel; uint16_t MaxFrameAverageLightLevel; }; template <> struct abi { using type = struct_Windows_Graphics_Display_Core_HdmiDisplayHdr2086Metadata; }; } #endif