//
// Copyright (c) Microsoft Corporation. All rights reserved.
// 
//
// File generated by WinMDIDL version 8.00.0008
//

import "inspectable.idl";
import "AsyncInfo.idl";
import "EventToken.idl";
import "Windows.Foundation.idl";
import "Windows.Storage.Streams.idl";
// Additional imports to ensure that all required headers are included
cpp_quote("#if defined(__cplusplus)")
cpp_quote("}")
cpp_quote("#endif // defined(__cplusplus)")
cpp_quote("#include <Windows.Foundation.h>")
cpp_quote("#if !defined(__windows2Estorage2Estreams_h__)")
cpp_quote("#include <Windows.Storage.Streams.h>")
cpp_quote("#endif // !defined(__windows2Estorage2Estreams_h__)")
cpp_quote("#if defined(__cplusplus)")
cpp_quote("extern \"C\" {")
cpp_quote("#endif // defined(__cplusplus)")

// Forward Declare
namespace Windows
{
    namespace Storage
    {
        namespace Streams
        {
            interface IRandomAccessStream;
        }
    }
}
namespace Windows
{
    namespace Graphics
    {
        namespace Display
        {
            typedef enum DisplayOrientations DisplayOrientations;

            typedef enum ResolutionScale ResolutionScale;

            delegate DisplayPropertiesEventHandler;

            interface IDisplayPropertiesStatics;

            runtimeclass DisplayProperties;
        }
    }
}

// Generic instantiations

// Type definition
namespace Windows
{
    namespace Graphics
    {
        namespace Display
        {
            [version(0x06020000)]
            [flags]
            enum DisplayOrientations
            {
                None             = 0x0,
                Landscape        = 0x1,
                Portrait         = 0x2,
                LandscapeFlipped = 0x4,
                PortraitFlipped  = 0x8
            };

            [version(0x06020000)]
            enum ResolutionScale
            {
                Invalid         = 0,
                Scale100Percent = 100,
                Scale140Percent = 140,
                Scale180Percent = 180
            };

            [uuid(DBDD8B01-F1A1-46D1-9EE3-543BCC995980)]
            [version(0x06020000)]
            delegate
                HRESULT DisplayPropertiesEventHandler([in] IInspectable* sender);

            [uuid(6937ED8D-30EA-4DED-8271-4553FF02F68A)]
            [exclusiveto(Windows.Graphics.Display.DisplayProperties)]
            [version(0x06020000)]
            interface IDisplayPropertiesStatics : IInspectable
            {
                [propget] HRESULT CurrentOrientation([out] [retval] Windows.Graphics.Display.DisplayOrientations* value);
                [propget] HRESULT NativeOrientation([out] [retval] Windows.Graphics.Display.DisplayOrientations* value);
                [propget] HRESULT AutoRotationPreferences([out] [retval] Windows.Graphics.Display.DisplayOrientations* value);
                [propput] HRESULT AutoRotationPreferences([in] Windows.Graphics.Display.DisplayOrientations value);
                [eventadd] HRESULT OrientationChanged([in] Windows.Graphics.Display.DisplayPropertiesEventHandler* 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);
                [eventadd] HRESULT LogicalDpiChanged([in] Windows.Graphics.Display.DisplayPropertiesEventHandler* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT LogicalDpiChanged([in] EventRegistrationToken token);
                [propget] HRESULT StereoEnabled([out] [retval] boolean* value);
                [eventadd] HRESULT StereoEnabledChanged([in] Windows.Graphics.Display.DisplayPropertiesEventHandler* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT StereoEnabledChanged([in] EventRegistrationToken token);
                HRESULT GetColorProfileAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Storage.Streams.IRandomAccessStream*>** asyncInfo);
                [eventadd] HRESULT ColorProfileChanged([in] Windows.Graphics.Display.DisplayPropertiesEventHandler* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT ColorProfileChanged([in] EventRegistrationToken token);
                [eventadd] HRESULT DisplayContentsInvalidated([in] Windows.Graphics.Display.DisplayPropertiesEventHandler* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT DisplayContentsInvalidated([in] EventRegistrationToken token);
            }

            [version(0x06020000)]
            [static(Windows.Graphics.Display.IDisplayPropertiesStatics, 0x06020000)]
            [marshaling_behavior(agile)]
            runtimeclass DisplayProperties
            {
            }
        }
    }
}
