// C++/WinRT v2.0.250303.1 // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. #pragma once #ifndef WINRT_Windows_UI_Composition_Core_0_H #define WINRT_Windows_UI_Composition_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::UI::Composition { struct Compositor; } WINRT_EXPORT namespace winrt::Windows::UI::Composition::Core { struct ICompositorController; struct CompositorController; } namespace winrt::impl { template <> struct category{ using type = interface_category; }; template <> struct category{ using type = class_category; }; template <> inline constexpr auto& name_v = L"Windows.UI.Composition.Core.CompositorController"; template <> inline constexpr auto& name_v = L"Windows.UI.Composition.Core.ICompositorController"; template <> inline constexpr guid guid_v{ 0x2D75F35A,0x70A7,0x4395,{ 0xBA,0x2D,0xCE,0xF0,0xB1,0x83,0x99,0xF9 } }; // 2D75F35A-70A7-4395-BA2D-CEF0B18399F9 template <> struct default_interface{ using type = winrt::Windows::UI::Composition::Core::ICompositorController; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_Compositor(void**) noexcept = 0; virtual int32_t __stdcall Commit() noexcept = 0; virtual int32_t __stdcall EnsurePreviousCommitCompletedAsync(void**) noexcept = 0; virtual int32_t __stdcall add_CommitNeeded(void*, winrt::event_token*) noexcept = 0; virtual int32_t __stdcall remove_CommitNeeded(winrt::event_token) noexcept = 0; }; }; template struct consume_Windows_UI_Composition_Core_ICompositorController { [[nodiscard]] auto Compositor() const; auto Commit() const; auto EnsurePreviousCommitCompletedAsync() const; auto CommitNeeded(winrt::Windows::Foundation::TypedEventHandler const& handler) const; using CommitNeeded_revoker = impl::event_revoker::remove_CommitNeeded>; [[nodiscard]] auto CommitNeeded(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler const& handler) const; auto CommitNeeded(winrt::event_token const& token) const noexcept; }; template <> struct consume { template using type = consume_Windows_UI_Composition_Core_ICompositorController; }; } #endif