// WARNING: Please don't edit this file. It was generated by C++/WinRT v2.0.250303.1

#pragma once
#ifndef WINRT_Microsoft_UI_Windowing_2_H
#define WINRT_Microsoft_UI_Windowing_2_H
#include "winrt/impl/Microsoft.UI.1.h"
#include "winrt/impl/Microsoft.UI.Dispatching.1.h"
#include "winrt/impl/Windows.Graphics.1.h"
#include "winrt/impl/Microsoft.UI.Windowing.1.h"
WINRT_EXPORT namespace winrt::Microsoft::UI::Windowing
{
    struct WINRT_IMPL_EMPTY_BASES AppWindow : winrt::Microsoft::UI::Windowing::IAppWindow,
        impl::require<AppWindow, winrt::Microsoft::UI::Windowing::IAppWindow2, winrt::Microsoft::UI::Windowing::IAppWindow3>
    {
        AppWindow(std::nullptr_t) noexcept {}
        AppWindow(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Microsoft::UI::Windowing::IAppWindow(ptr, take_ownership_from_abi) {}
        static auto Create();
        static auto Create(winrt::Microsoft::UI::Windowing::AppWindowPresenter const& appWindowPresenter);
        static auto Create(winrt::Microsoft::UI::Windowing::AppWindowPresenter const& appWindowPresenter, winrt::Microsoft::UI::WindowId const& ownerWindowId);
        static auto GetFromWindowId(winrt::Microsoft::UI::WindowId const& windowId);
        static auto Create(winrt::Microsoft::UI::Windowing::AppWindowPresenter const& appWindowPresenter, winrt::Microsoft::UI::WindowId const& ownerWindowId, winrt::Microsoft::UI::Dispatching::DispatcherQueue const& DispatcherQueue);
    };
    struct WINRT_IMPL_EMPTY_BASES AppWindowChangedEventArgs : winrt::Microsoft::UI::Windowing::IAppWindowChangedEventArgs,
        impl::require<AppWindowChangedEventArgs, winrt::Microsoft::UI::Windowing::IAppWindowChangedEventArgs2>
    {
        AppWindowChangedEventArgs(std::nullptr_t) noexcept {}
        AppWindowChangedEventArgs(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Microsoft::UI::Windowing::IAppWindowChangedEventArgs(ptr, take_ownership_from_abi) {}
    };
    struct WINRT_IMPL_EMPTY_BASES AppWindowClosingEventArgs : winrt::Microsoft::UI::Windowing::IAppWindowClosingEventArgs
    {
        AppWindowClosingEventArgs(std::nullptr_t) noexcept {}
        AppWindowClosingEventArgs(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Microsoft::UI::Windowing::IAppWindowClosingEventArgs(ptr, take_ownership_from_abi) {}
    };
    struct WINRT_IMPL_EMPTY_BASES AppWindowPresenter : winrt::Microsoft::UI::Windowing::IAppWindowPresenter
    {
        AppWindowPresenter(std::nullptr_t) noexcept {}
        AppWindowPresenter(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Microsoft::UI::Windowing::IAppWindowPresenter(ptr, take_ownership_from_abi) {}
    };
    struct WINRT_IMPL_EMPTY_BASES AppWindowTitleBar : winrt::Microsoft::UI::Windowing::IAppWindowTitleBar,
        impl::require<AppWindowTitleBar, winrt::Microsoft::UI::Windowing::IAppWindowTitleBar2>
    {
        AppWindowTitleBar(std::nullptr_t) noexcept {}
        AppWindowTitleBar(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Microsoft::UI::Windowing::IAppWindowTitleBar(ptr, take_ownership_from_abi) {}
        static auto IsCustomizationSupported();
    };
    struct WINRT_IMPL_EMPTY_BASES CompactOverlayPresenter : winrt::Microsoft::UI::Windowing::ICompactOverlayPresenter,
        impl::base<CompactOverlayPresenter, winrt::Microsoft::UI::Windowing::AppWindowPresenter>,
        impl::require<CompactOverlayPresenter, winrt::Microsoft::UI::Windowing::IAppWindowPresenter>
    {
        CompactOverlayPresenter(std::nullptr_t) noexcept {}
        CompactOverlayPresenter(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Microsoft::UI::Windowing::ICompactOverlayPresenter(ptr, take_ownership_from_abi) {}
        static auto Create();
    };
    struct WINRT_IMPL_EMPTY_BASES DisplayArea : winrt::Microsoft::UI::Windowing::IDisplayArea
    {
        DisplayArea(std::nullptr_t) noexcept {}
        DisplayArea(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Microsoft::UI::Windowing::IDisplayArea(ptr, take_ownership_from_abi) {}
        [[nodiscard]] static auto Primary();
        static auto CreateWatcher();
        static auto FindAll();
        static auto GetFromWindowId(winrt::Microsoft::UI::WindowId const& windowId, winrt::Microsoft::UI::Windowing::DisplayAreaFallback const& displayAreaFallback);
        static auto GetFromPoint(winrt::Windows::Graphics::PointInt32 const& point, winrt::Microsoft::UI::Windowing::DisplayAreaFallback const& displayAreaFallback);
        static auto GetFromRect(winrt::Windows::Graphics::RectInt32 const& rect, winrt::Microsoft::UI::Windowing::DisplayAreaFallback const& displayAreaFallback);
        static auto GetFromDisplayId(winrt::Microsoft::UI::DisplayId const& displayId);
    };
    struct WINRT_IMPL_EMPTY_BASES DisplayAreaWatcher : winrt::Microsoft::UI::Windowing::IDisplayAreaWatcher
    {
        DisplayAreaWatcher(std::nullptr_t) noexcept {}
        DisplayAreaWatcher(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Microsoft::UI::Windowing::IDisplayAreaWatcher(ptr, take_ownership_from_abi) {}
    };
    struct WINRT_IMPL_EMPTY_BASES FullScreenPresenter : winrt::Microsoft::UI::Windowing::IFullScreenPresenter,
        impl::base<FullScreenPresenter, winrt::Microsoft::UI::Windowing::AppWindowPresenter>,
        impl::require<FullScreenPresenter, winrt::Microsoft::UI::Windowing::IAppWindowPresenter>
    {
        FullScreenPresenter(std::nullptr_t) noexcept {}
        FullScreenPresenter(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Microsoft::UI::Windowing::IFullScreenPresenter(ptr, take_ownership_from_abi) {}
        static auto Create();
    };
    struct WINRT_IMPL_EMPTY_BASES OverlappedPresenter : winrt::Microsoft::UI::Windowing::IOverlappedPresenter,
        impl::base<OverlappedPresenter, winrt::Microsoft::UI::Windowing::AppWindowPresenter>,
        impl::require<OverlappedPresenter, winrt::Microsoft::UI::Windowing::IOverlappedPresenter2, winrt::Microsoft::UI::Windowing::IAppWindowPresenter>
    {
        OverlappedPresenter(std::nullptr_t) noexcept {}
        OverlappedPresenter(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Microsoft::UI::Windowing::IOverlappedPresenter(ptr, take_ownership_from_abi) {}
        using winrt::Microsoft::UI::Windowing::IOverlappedPresenter::Minimize;
        using impl::consume_t<OverlappedPresenter, winrt::Microsoft::UI::Windowing::IOverlappedPresenter2>::Minimize;
        using winrt::Microsoft::UI::Windowing::IOverlappedPresenter::Restore;
        using impl::consume_t<OverlappedPresenter, winrt::Microsoft::UI::Windowing::IOverlappedPresenter2>::Restore;
        static auto Create();
        static auto CreateForContextMenu();
        static auto CreateForDialog();
        static auto CreateForToolWindow();
        [[nodiscard]] static auto RequestedStartupState();
    };
}
#endif
