| /* | |
| * Copyright 2026 Zhiyi Zhang for CodeWeavers | |
| * | |
| * This library is free software; you can redistribute it and/or | |
| * modify it under the terms of the GNU Lesser General Public | |
| * License as published by the Free Software Foundation; either | |
| * version 2.1 of the License, or (at your option) any later version. | |
| * | |
| * This library is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| * Lesser General Public License for more details. | |
| * | |
| * You should have received a copy of the GNU Lesser General Public | |
| * License along with this library; if not, write to the Free Software | |
| * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA | |
| */ | |
| #ifdef __WIDL__ | |
| #pragma winrt ns_prefix | |
| #endif | |
| import "inspectable.idl"; | |
| import "asyncinfo.idl"; | |
| import "eventtoken.idl"; | |
| import "windowscontracts.idl"; | |
| import "windows.foundation.idl"; | |
| import "windows.graphics.idl"; | |
| import "windows.storage.streams.idl"; | |
| namespace Windows.Graphics.Display { | |
| typedef enum AdvancedColorKind AdvancedColorKind; | |
| typedef enum DisplayOrientations DisplayOrientations; | |
| typedef enum HdrMetadataFormat HdrMetadataFormat; | |
| typedef enum ResolutionScale ResolutionScale; | |
| interface IAdvancedColorInfo; | |
| interface IDisplayInformationStatics; | |
| runtimeclass AdvancedColorInfo; | |
| runtimeclass DisplayInformation; | |
| declare { | |
| interface Windows.Foundation.TypedEventHandler<Windows.Graphics.Display.DisplayInformation *, IInspectable *>; | |
| } | |
| [ | |
| contract(Windows.Foundation.UniversalApiContract, 6.0) | |
| ] | |
| enum AdvancedColorKind | |
| { | |
| StandardDynamicRange = 0, | |
| WideColorGamut = 1, | |
| HighDynamicRange = 2 | |
| }; | |
| [ | |
| contract(Windows.Foundation.UniversalApiContract, 1.0), | |
| flags | |
| ] | |
| enum DisplayOrientations | |
| { | |
| None = 0x0, | |
| Landscape = 0x1, | |
| Portrait = 0x2, | |
| LandscapeFlipped = 0x4, | |
| PortraitFlipped = 0x8 | |
| }; | |
| [ | |
| contract(Windows.Foundation.UniversalApiContract, 6.0) | |
| ] | |
| enum HdrMetadataFormat | |
| { | |
| Hdr10 = 0, | |
| Hdr10Plus = 1 | |
| }; | |
| [ | |
| contract(Windows.Foundation.UniversalApiContract, 1.0) | |
| ] | |
| enum ResolutionScale | |
| { | |
| Invalid = 0, | |
| Scale100Percent = 100, | |
| [contract(Windows.Foundation.UniversalApiContract, 1.0)] Scale120Percent = 120, | |
| [contract(Windows.Foundation.UniversalApiContract, 1.0)] Scale125Percent = 125, | |
| Scale140Percent = 140, | |
| [contract(Windows.Foundation.UniversalApiContract, 1.0)] Scale150Percent = 150, | |
| [contract(Windows.Foundation.UniversalApiContract, 1.0)] Scale160Percent = 160, | |
| [contract(Windows.Foundation.UniversalApiContract, 1.0)] Scale175Percent = 175, | |
| Scale180Percent = 180, | |
| [contract(Windows.Foundation.UniversalApiContract, 1.0)] Scale200Percent = 200, | |
| [contract(Windows.Foundation.UniversalApiContract, 1.0)] Scale225Percent = 225, | |
| [contract(Windows.Foundation.UniversalApiContract, 1.0)] Scale250Percent = 250, | |
| [contract(Windows.Foundation.UniversalApiContract, 1.0)] Scale300Percent = 300, | |
| [contract(Windows.Foundation.UniversalApiContract, 1.0)] Scale350Percent = 350, | |
| [contract(Windows.Foundation.UniversalApiContract, 1.0)] Scale400Percent = 400, | |
| [contract(Windows.Foundation.UniversalApiContract, 1.0)] Scale450Percent = 450, | |
| [contract(Windows.Foundation.UniversalApiContract, 1.0)] Scale500Percent = 500 | |
| }; | |
| [ | |
| contract(Windows.Foundation.UniversalApiContract, 6.0), | |
| exclusiveto(Windows.Graphics.Display.AdvancedColorInfo), | |
| uuid(8797dcfb-b229-4081-ae9a-2cc85e34ad6a) | |
| ] | |
| interface IAdvancedColorInfo : IInspectable | |
| { | |
| [propget] HRESULT CurrentAdvancedColorKind([out, retval] Windows.Graphics.Display.AdvancedColorKind *value); | |
| [propget] HRESULT RedPrimary([out, retval] Windows.Foundation.Point *value); | |
| [propget] HRESULT GreenPrimary([out, retval] Windows.Foundation.Point *value); | |
| [propget] HRESULT BluePrimary([out, retval] Windows.Foundation.Point *value); | |
| [propget] HRESULT WhitePoint([out, retval] Windows.Foundation.Point *value); | |
| [propget] HRESULT MaxLuminanceInNits([out, retval] FLOAT *value); | |
| [propget] HRESULT MinLuminanceInNits([out, retval] FLOAT *value); | |
| [propget] HRESULT MaxAverageFullFrameLuminanceInNits([out, retval] FLOAT *value); | |
| [propget] HRESULT SdrWhiteLevelInNits([out, retval] FLOAT *value); | |
| HRESULT IsHdrMetadataFormatCurrentlySupported([in] Windows.Graphics.Display.HdrMetadataFormat format, [out, retval] boolean *result); | |
| HRESULT IsAdvancedColorKindAvailable([in] Windows.Graphics.Display.AdvancedColorKind kind, [out, retval] boolean *result); | |
| } | |
| [ | |
| contract(Windows.Foundation.UniversalApiContract, 1.0), | |
| exclusiveto(Windows.Graphics.Display.DisplayInformation), | |
| uuid(bed112ae-adc3-4dc9-ae65-851f4d7d4799) | |
| ] | |
| interface IDisplayInformation : IInspectable | |
| { | |
| [propget] HRESULT CurrentOrientation([out, retval] Windows.Graphics.Display.DisplayOrientations *value); | |
| [propget] HRESULT NativeOrientation([out, retval] Windows.Graphics.Display.DisplayOrientations *value); | |
| [eventadd] HRESULT OrientationChanged([in] Windows.Foundation.TypedEventHandler<Windows.Graphics.Display.DisplayInformation *, IInspectable *> *handler, [out, retval] EventRegistrationToken *token); | |
| [eventremove] HRESULT OrientationChanged([in] EventRegistrationToken token); | |
| [propget] HRESULT ResolutionScale([out, retval] Windows.Graphics.Display.ResolutionScale *value); | |
| [propget] HRESULT LogicalDpi([out, retval] FLOAT *value); | |
| [propget] HRESULT RawDpiX([out, retval] FLOAT *value); | |
| [propget] HRESULT RawDpiY([out, retval] FLOAT *value); | |
| [eventadd] HRESULT DpiChanged([in] Windows.Foundation.TypedEventHandler<Windows.Graphics.Display.DisplayInformation *, IInspectable *> *handler, [out, retval] EventRegistrationToken *token); | |
| [eventremove] HRESULT DpiChanged([in] EventRegistrationToken token); | |
| [propget] HRESULT StereoEnabled([out, retval] boolean *value); | |
| [eventadd] HRESULT StereoEnabledChanged([in] Windows.Foundation.TypedEventHandler<Windows.Graphics.Display.DisplayInformation *, IInspectable *> *handler, [out, retval] EventRegistrationToken *token); | |
| [eventremove] HRESULT StereoEnabledChanged([in] EventRegistrationToken token); | |
| HRESULT GetColorProfileAsync([out, retval] Windows.Foundation.IAsyncOperation<Windows.Storage.Streams.IRandomAccessStream *> **async_info); | |
| [eventadd] HRESULT ColorProfileChanged([in] Windows.Foundation.TypedEventHandler<Windows.Graphics.Display.DisplayInformation *, IInspectable *> *handler, [out, retval] EventRegistrationToken *token); | |
| [eventremove] HRESULT ColorProfileChanged([in] EventRegistrationToken token); | |
| } | |
| [ | |
| contract(Windows.Foundation.UniversalApiContract, 1.0), | |
| exclusiveto(Windows.Graphics.Display.DisplayInformation), | |
| uuid(4dcd0021-fad1-4b8e-8edf-775887b8bf19) | |
| ] | |
| interface IDisplayInformation2 : IInspectable | |
| requires Windows.Graphics.Display.IDisplayInformation | |
| { | |
| [propget] HRESULT RawPixelsPerViewPixel([out, retval] DOUBLE *value); | |
| } | |
| [ | |
| contract(Windows.Foundation.UniversalApiContract, 2.0), | |
| exclusiveto(Windows.Graphics.Display.DisplayInformation), | |
| uuid(db15011d-0f09-4466-8ff3-11de9a3c929a) | |
| ] | |
| interface IDisplayInformation3 : IInspectable | |
| { | |
| [propget] HRESULT DiagonalSizeInInches([out, retval] Windows.Foundation.IReference<DOUBLE> **value); | |
| } | |
| [ | |
| contract(Windows.Foundation.UniversalApiContract, 3.0), | |
| exclusiveto(Windows.Graphics.Display.DisplayInformation), | |
| uuid(c972ce2f-1242-46be-b536-e1aafe9e7acf) | |
| ] | |
| interface IDisplayInformation4 : IInspectable | |
| { | |
| [propget] HRESULT ScreenWidthInRawPixels([out, retval] UINT32 *value); | |
| [propget] HRESULT ScreenHeightInRawPixels([out, retval] UINT32 *value); | |
| } | |
| [ | |
| contract(Windows.Foundation.UniversalApiContract, 6.0), | |
| exclusiveto(Windows.Graphics.Display.DisplayInformation), | |
| uuid(3a5442dc-2cde-4a8d-80d1-21dc5adcc1aa) | |
| ] | |
| interface IDisplayInformation5 : IInspectable | |
| { | |
| HRESULT GetAdvancedColorInfo([out, retval] Windows.Graphics.Display.AdvancedColorInfo **value); | |
| [eventadd] HRESULT AdvancedColorInfoChanged([in] Windows.Foundation.TypedEventHandler<Windows.Graphics.Display.DisplayInformation *, IInspectable *> *handler, [out, retval] EventRegistrationToken *token); | |
| [eventremove] HRESULT AdvancedColorInfoChanged([in] EventRegistrationToken token); | |
| } | |
| [ | |
| contract(Windows.Foundation.UniversalApiContract, 1.0), | |
| exclusiveto(Windows.Graphics.Display.DisplayInformation), | |
| uuid(c6a02a6c-d452-44dc-ba07-96f3c6adf9d1) | |
| ] | |
| interface IDisplayInformationStatics : IInspectable | |
| { | |
| HRESULT GetForCurrentView([out, retval] Windows.Graphics.Display.DisplayInformation **current); | |
| [propget] HRESULT AutoRotationPreferences([out, retval] Windows.Graphics.Display.DisplayOrientations *value); | |
| [propput] HRESULT AutoRotationPreferences([in] Windows.Graphics.Display.DisplayOrientations value); | |
| [eventadd] HRESULT DisplayContentsInvalidated([in] Windows.Foundation.TypedEventHandler<Windows.Graphics.Display.DisplayInformation *, IInspectable *> *handler, [out, retval] EventRegistrationToken *token); | |
| [eventremove] HRESULT DisplayContentsInvalidated([in] EventRegistrationToken token); | |
| } | |
| [ | |
| contract(Windows.Foundation.UniversalApiContract, 6.0), | |
| marshaling_behavior(agile), | |
| threading(both) | |
| ] | |
| runtimeclass AdvancedColorInfo | |
| { | |
| [default] interface Windows.Graphics.Display.IAdvancedColorInfo; | |
| } | |
| [ | |
| contract(Windows.Foundation.UniversalApiContract, 1.0), | |
| marshaling_behavior(agile), | |
| static(Windows.Graphics.Display.IDisplayInformationStatics, Windows.Foundation.UniversalApiContract, 1.0) | |
| ] | |
| runtimeclass DisplayInformation | |
| { | |
| [default] interface Windows.Graphics.Display.IDisplayInformation; | |
| [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.Graphics.Display.IDisplayInformation2; | |
| [contract(Windows.Foundation.UniversalApiContract, 2.0)] interface Windows.Graphics.Display.IDisplayInformation3; | |
| [contract(Windows.Foundation.UniversalApiContract, 3.0)] interface Windows.Graphics.Display.IDisplayInformation4; | |
| [contract(Windows.Foundation.UniversalApiContract, 6.0)] interface Windows.Graphics.Display.IDisplayInformation5; | |
| } | |
| } |