// WARNING: Please don't edit this file. It was generated by Python/WinRT v1.0.0-beta.9

#pragma once

#include "pybase.h"

#if __has_include("py.Windows.Devices.Display.h")
#include "py.Windows.Devices.Display.h"
#endif

#if __has_include("py.Windows.Foundation.h")
#include "py.Windows.Foundation.h"
#endif

#if __has_include("py.Windows.Foundation.Collections.h")
#include "py.Windows.Foundation.Collections.h"
#endif

#if __has_include("py.Windows.Foundation.Numerics.h")
#include "py.Windows.Foundation.Numerics.h"
#endif

#if __has_include("py.Windows.Graphics.h")
#include "py.Windows.Graphics.h"
#endif

#if __has_include("py.Windows.Graphics.DirectX.h")
#include "py.Windows.Graphics.DirectX.h"
#endif

#if __has_include("py.Windows.Graphics.DirectX.Direct3D11.h")
#include "py.Windows.Graphics.DirectX.Direct3D11.h"
#endif

#if __has_include("py.Windows.Storage.Streams.h")
#include "py.Windows.Storage.Streams.h"
#endif

#include <winrt/Windows.Devices.Display.h>
#include <winrt/Windows.Foundation.h>
#include <winrt/Windows.Foundation.Collections.h>
#include <winrt/Windows.Foundation.Numerics.h>
#include <winrt/Windows.Graphics.h>
#include <winrt/Windows.Graphics.DirectX.h>
#include <winrt/Windows.Graphics.DirectX.Direct3D11.h>
#include <winrt/Windows.Storage.Streams.h>

#include <winrt/Windows.Devices.Display.Core.h>

namespace py::proj::Windows::Devices::Display::Core
{}

namespace py::impl::Windows::Devices::Display::Core
{}

namespace py::wrapper::Windows::Devices::Display::Core
{
    using DisplayAdapter = py::winrt_wrapper<winrt::Windows::Devices::Display::Core::DisplayAdapter>;
    using DisplayDevice = py::winrt_wrapper<winrt::Windows::Devices::Display::Core::DisplayDevice>;
    using DisplayFence = py::winrt_wrapper<winrt::Windows::Devices::Display::Core::DisplayFence>;
    using DisplayManager = py::winrt_wrapper<winrt::Windows::Devices::Display::Core::DisplayManager>;
    using DisplayManagerChangedEventArgs = py::winrt_wrapper<winrt::Windows::Devices::Display::Core::DisplayManagerChangedEventArgs>;
    using DisplayManagerDisabledEventArgs = py::winrt_wrapper<winrt::Windows::Devices::Display::Core::DisplayManagerDisabledEventArgs>;
    using DisplayManagerEnabledEventArgs = py::winrt_wrapper<winrt::Windows::Devices::Display::Core::DisplayManagerEnabledEventArgs>;
    using DisplayManagerPathsFailedOrInvalidatedEventArgs = py::winrt_wrapper<winrt::Windows::Devices::Display::Core::DisplayManagerPathsFailedOrInvalidatedEventArgs>;
    using DisplayManagerResultWithState = py::winrt_wrapper<winrt::Windows::Devices::Display::Core::DisplayManagerResultWithState>;
    using DisplayModeInfo = py::winrt_wrapper<winrt::Windows::Devices::Display::Core::DisplayModeInfo>;
    using DisplayPath = py::winrt_wrapper<winrt::Windows::Devices::Display::Core::DisplayPath>;
    using DisplayPrimaryDescription = py::winrt_wrapper<winrt::Windows::Devices::Display::Core::DisplayPrimaryDescription>;
    using DisplayScanout = py::winrt_wrapper<winrt::Windows::Devices::Display::Core::DisplayScanout>;
    using DisplaySource = py::winrt_wrapper<winrt::Windows::Devices::Display::Core::DisplaySource>;
    using DisplayState = py::winrt_wrapper<winrt::Windows::Devices::Display::Core::DisplayState>;
    using DisplayStateOperationResult = py::winrt_wrapper<winrt::Windows::Devices::Display::Core::DisplayStateOperationResult>;
    using DisplaySurface = py::winrt_wrapper<winrt::Windows::Devices::Display::Core::DisplaySurface>;
    using DisplayTarget = py::winrt_wrapper<winrt::Windows::Devices::Display::Core::DisplayTarget>;
    using DisplayTask = py::winrt_wrapper<winrt::Windows::Devices::Display::Core::DisplayTask>;
    using DisplayTaskPool = py::winrt_wrapper<winrt::Windows::Devices::Display::Core::DisplayTaskPool>;
    using DisplayTaskResult = py::winrt_wrapper<winrt::Windows::Devices::Display::Core::DisplayTaskResult>;
    using DisplayView = py::winrt_wrapper<winrt::Windows::Devices::Display::Core::DisplayView>;
    using DisplayWireFormat = py::winrt_wrapper<winrt::Windows::Devices::Display::Core::DisplayWireFormat>;
    using DisplayPresentationRate = py::winrt_struct_wrapper<winrt::Windows::Devices::Display::Core::DisplayPresentationRate>;
}

namespace py
{
    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Devices::Display::Core::DisplayBitsPerChannel> = "I";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Devices::Display::Core::DisplayDeviceCapability> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Devices::Display::Core::DisplayManagerOptions> = "I";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Devices::Display::Core::DisplayManagerResult> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Devices::Display::Core::DisplayModeQueryOptions> = "I";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Devices::Display::Core::DisplayPathScaling> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Devices::Display::Core::DisplayPathStatus> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Devices::Display::Core::DisplayPresentStatus> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Devices::Display::Core::DisplayRotation> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Devices::Display::Core::DisplayScanoutOptions> = "I";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Devices::Display::Core::DisplaySourceStatus> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Devices::Display::Core::DisplayStateApplyOptions> = "I";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Devices::Display::Core::DisplayStateFunctionalizeOptions> = "I";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Devices::Display::Core::DisplayStateOperationStatus> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Devices::Display::Core::DisplayTargetPersistence> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Devices::Display::Core::DisplayTaskSignalKind> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Devices::Display::Core::DisplayWireFormatColorSpace> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Devices::Display::Core::DisplayWireFormatEotf> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Devices::Display::Core::DisplayWireFormatHdrMetadata> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Devices::Display::Core::DisplayWireFormatPixelEncoding> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Devices::Display::Core::DisplayPresentationRate> = "T{T{I:numerator:I:denominator:}:vertical_sync_rate:i:vertical_syncs_per_presentation:}";


    template<>
    struct py_type<winrt::Windows::Devices::Display::Core::DisplayBitsPerChannel>
    {
        static PyObject* get_python_type() noexcept;
    };

    template<>
    struct py_type<winrt::Windows::Devices::Display::Core::DisplayDeviceCapability>
    {
        static PyObject* get_python_type() noexcept;
    };

    template<>
    struct py_type<winrt::Windows::Devices::Display::Core::DisplayManagerOptions>
    {
        static PyObject* get_python_type() noexcept;
    };

    template<>
    struct py_type<winrt::Windows::Devices::Display::Core::DisplayManagerResult>
    {
        static PyObject* get_python_type() noexcept;
    };

    template<>
    struct py_type<winrt::Windows::Devices::Display::Core::DisplayModeQueryOptions>
    {
        static PyObject* get_python_type() noexcept;
    };

    template<>
    struct py_type<winrt::Windows::Devices::Display::Core::DisplayPathScaling>
    {
        static PyObject* get_python_type() noexcept;
    };

    template<>
    struct py_type<winrt::Windows::Devices::Display::Core::DisplayPathStatus>
    {
        static PyObject* get_python_type() noexcept;
    };

    template<>
    struct py_type<winrt::Windows::Devices::Display::Core::DisplayPresentStatus>
    {
        static PyObject* get_python_type() noexcept;
    };

    template<>
    struct py_type<winrt::Windows::Devices::Display::Core::DisplayRotation>
    {
        static PyObject* get_python_type() noexcept;
    };

    template<>
    struct py_type<winrt::Windows::Devices::Display::Core::DisplayScanoutOptions>
    {
        static PyObject* get_python_type() noexcept;
    };

    template<>
    struct py_type<winrt::Windows::Devices::Display::Core::DisplaySourceStatus>
    {
        static PyObject* get_python_type() noexcept;
    };

    template<>
    struct py_type<winrt::Windows::Devices::Display::Core::DisplayStateApplyOptions>
    {
        static PyObject* get_python_type() noexcept;
    };

    template<>
    struct py_type<winrt::Windows::Devices::Display::Core::DisplayStateFunctionalizeOptions>
    {
        static PyObject* get_python_type() noexcept;
    };

    template<>
    struct py_type<winrt::Windows::Devices::Display::Core::DisplayStateOperationStatus>
    {
        static PyObject* get_python_type() noexcept;
    };

    template<>
    struct py_type<winrt::Windows::Devices::Display::Core::DisplayTargetPersistence>
    {
        static PyObject* get_python_type() noexcept;
    };

    template<>
    struct py_type<winrt::Windows::Devices::Display::Core::DisplayTaskSignalKind>
    {
        static PyObject* get_python_type() noexcept;
    };

    template<>
    struct py_type<winrt::Windows::Devices::Display::Core::DisplayWireFormatColorSpace>
    {
        static PyObject* get_python_type() noexcept;
    };

    template<>
    struct py_type<winrt::Windows::Devices::Display::Core::DisplayWireFormatEotf>
    {
        static PyObject* get_python_type() noexcept;
    };

    template<>
    struct py_type<winrt::Windows::Devices::Display::Core::DisplayWireFormatHdrMetadata>
    {
        static PyObject* get_python_type() noexcept;
    };

    template<>
    struct py_type<winrt::Windows::Devices::Display::Core::DisplayWireFormatPixelEncoding>
    {
        static PyObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Devices::Display::Core::DisplayAdapter>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Devices::Display::Core::DisplayDevice>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Devices::Display::Core::DisplayFence>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Devices::Display::Core::DisplayManager>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Devices::Display::Core::DisplayManagerChangedEventArgs>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Devices::Display::Core::DisplayManagerDisabledEventArgs>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Devices::Display::Core::DisplayManagerEnabledEventArgs>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Devices::Display::Core::DisplayManagerPathsFailedOrInvalidatedEventArgs>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Devices::Display::Core::DisplayManagerResultWithState>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Devices::Display::Core::DisplayModeInfo>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Devices::Display::Core::DisplayPath>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Devices::Display::Core::DisplayPrimaryDescription>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Devices::Display::Core::DisplayScanout>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Devices::Display::Core::DisplaySource>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Devices::Display::Core::DisplayState>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Devices::Display::Core::DisplayStateOperationResult>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Devices::Display::Core::DisplaySurface>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Devices::Display::Core::DisplayTarget>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Devices::Display::Core::DisplayTask>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Devices::Display::Core::DisplayTaskPool>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Devices::Display::Core::DisplayTaskResult>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Devices::Display::Core::DisplayView>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Devices::Display::Core::DisplayWireFormat>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Devices::Display::Core::DisplayPresentationRate>
    {
        static PyTypeObject* get_python_type() noexcept;
    };
    template<>
    struct converter<winrt::Windows::Devices::Display::Core::DisplayPresentationRate>
    {
        static PyObject* convert(winrt::Windows::Devices::Display::Core::DisplayPresentationRate instance) noexcept;
        static winrt::Windows::Devices::Display::Core::DisplayPresentationRate convert_to(PyObject* obj);
    };

}
