// C++/WinRT v2.0.250303.1 // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. #pragma once #ifndef WINRT_Windows_UI_Xaml_Interop_0_H #define WINRT_Windows_UI_Xaml_Interop_0_H WINRT_EXPORT namespace winrt::Windows::Foundation { struct EventRegistrationToken; } WINRT_EXPORT namespace winrt::Windows::UI::Xaml::Interop { enum class NotifyCollectionChangedAction : int32_t { Add = 0, Remove = 1, Replace = 2, Move = 3, Reset = 4, }; enum class TypeKind : int32_t { Primitive = 0, Metadata = 1, Custom = 2, }; struct IBindableIterable; struct IBindableIterator; struct IBindableObservableVector; struct IBindableVector; struct IBindableVectorView; struct INotifyCollectionChanged; struct INotifyCollectionChangedEventArgs; struct INotifyCollectionChangedEventArgsFactory; struct NotifyCollectionChangedEventArgs; struct TypeName; struct BindableVectorChangedEventHandler; struct NotifyCollectionChangedEventHandler; } namespace winrt::impl { template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = enum_category; }; template <> struct category{ using type = enum_category; }; template <> struct category{ using type = struct_category; }; template <> struct category{ using type = delegate_category; }; template <> struct category{ using type = delegate_category; }; template <> inline constexpr auto& name_v = L"Windows.UI.Xaml.Interop.NotifyCollectionChangedEventArgs"; template <> inline constexpr auto& name_v = L"Windows.UI.Xaml.Interop.NotifyCollectionChangedAction"; template <> inline constexpr auto& name_v = L"Windows.UI.Xaml.Interop.TypeKind"; template <> inline constexpr auto& name_v = L"Windows.UI.Xaml.Interop.TypeName"; template <> inline constexpr auto& name_v = L"Windows.UI.Xaml.Interop.IBindableIterable"; template <> inline constexpr auto& name_v = L"Windows.UI.Xaml.Interop.IBindableIterator"; template <> inline constexpr auto& name_v = L"Windows.UI.Xaml.Interop.IBindableObservableVector"; template <> inline constexpr auto& name_v = L"Windows.UI.Xaml.Interop.IBindableVector"; template <> inline constexpr auto& name_v = L"Windows.UI.Xaml.Interop.IBindableVectorView"; template <> inline constexpr auto& name_v = L"Windows.UI.Xaml.Interop.INotifyCollectionChanged"; template <> inline constexpr auto& name_v = L"Windows.UI.Xaml.Interop.INotifyCollectionChangedEventArgs"; template <> inline constexpr auto& name_v = L"Windows.UI.Xaml.Interop.INotifyCollectionChangedEventArgsFactory"; template <> inline constexpr auto& name_v = L"Windows.UI.Xaml.Interop.BindableVectorChangedEventHandler"; template <> inline constexpr auto& name_v = L"Windows.UI.Xaml.Interop.NotifyCollectionChangedEventHandler"; template <> inline constexpr guid guid_v{ 0x036D2C08,0xDF29,0x41AF,{ 0x8A,0xA2,0xD7,0x74,0xBE,0x62,0xBA,0x6F } }; // 036D2C08-DF29-41AF-8AA2-D774BE62BA6F template <> inline constexpr guid guid_v{ 0x6A1D6C07,0x076D,0x49F2,{ 0x83,0x14,0xF5,0x2C,0x9C,0x9A,0x83,0x31 } }; // 6A1D6C07-076D-49F2-8314-F52C9C9A8331 template <> inline constexpr guid guid_v{ 0xFE1EB536,0x7E7F,0x4F90,{ 0xAC,0x9A,0x47,0x49,0x84,0xAA,0xE5,0x12 } }; // FE1EB536-7E7F-4F90-AC9A-474984AAE512 template <> inline constexpr guid guid_v{ 0x393DE7DE,0x6FD0,0x4C0D,{ 0xBB,0x71,0x47,0x24,0x4A,0x11,0x3E,0x93 } }; // 393DE7DE-6FD0-4C0D-BB71-47244A113E93 template <> inline constexpr guid guid_v{ 0x346DD6E7,0x976E,0x4BC3,{ 0x81,0x5D,0xEC,0xE2,0x43,0xBC,0x0F,0x33 } }; // 346DD6E7-976E-4BC3-815D-ECE243BC0F33 template <> inline constexpr guid guid_v{ 0x28B167D5,0x1A31,0x465B,{ 0x9B,0x25,0xD5,0xC3,0xAE,0x68,0x6C,0x40 } }; // 28B167D5-1A31-465B-9B25-D5C3AE686C40 template <> inline constexpr guid guid_v{ 0x4CF68D33,0xE3F2,0x4964,{ 0xB8,0x5E,0x94,0x5B,0x4F,0x7E,0x2F,0x21 } }; // 4CF68D33-E3F2-4964-B85E-945B4F7E2F21 template <> inline constexpr guid guid_v{ 0xB30C3E3A,0xDF8D,0x44A5,{ 0x9A,0x38,0x7A,0xC0,0xD0,0x8C,0xE6,0x3D } }; // B30C3E3A-DF8D-44A5-9A38-7AC0D08CE63D template <> inline constexpr guid guid_v{ 0x624CD4E1,0xD007,0x43B1,{ 0x9C,0x03,0xAF,0x4D,0x3E,0x62,0x58,0xC4 } }; // 624CD4E1-D007-43B1-9C03-AF4D3E6258C4 template <> inline constexpr guid guid_v{ 0xCA10B37C,0xF382,0x4591,{ 0x85,0x57,0x5E,0x24,0x96,0x52,0x79,0xB0 } }; // CA10B37C-F382-4591-8557-5E24965279B0 template <> struct default_interface{ using type = winrt::Windows::UI::Xaml::Interop::INotifyCollectionChangedEventArgs; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall First(void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_Current(void**) noexcept = 0; virtual int32_t __stdcall get_HasCurrent(bool*) noexcept = 0; virtual int32_t __stdcall MoveNext(bool*) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall add_VectorChanged(void*, winrt::event_token*) noexcept = 0; virtual int32_t __stdcall remove_VectorChanged(winrt::event_token) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall GetAt(uint32_t, void**) noexcept = 0; virtual int32_t __stdcall get_Size(uint32_t*) noexcept = 0; virtual int32_t __stdcall GetView(void**) noexcept = 0; virtual int32_t __stdcall IndexOf(void*, uint32_t*, bool*) noexcept = 0; virtual int32_t __stdcall SetAt(uint32_t, void*) noexcept = 0; virtual int32_t __stdcall InsertAt(uint32_t, void*) noexcept = 0; virtual int32_t __stdcall RemoveAt(uint32_t) noexcept = 0; virtual int32_t __stdcall Append(void*) noexcept = 0; virtual int32_t __stdcall RemoveAtEnd() noexcept = 0; virtual int32_t __stdcall Clear() noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall GetAt(uint32_t, void**) noexcept = 0; virtual int32_t __stdcall get_Size(uint32_t*) noexcept = 0; virtual int32_t __stdcall IndexOf(void*, uint32_t*, bool*) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall add_CollectionChanged(void*, winrt::event_token*) noexcept = 0; virtual int32_t __stdcall remove_CollectionChanged(winrt::event_token) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_Action(int32_t*) noexcept = 0; virtual int32_t __stdcall get_NewItems(void**) noexcept = 0; virtual int32_t __stdcall get_OldItems(void**) noexcept = 0; virtual int32_t __stdcall get_NewStartingIndex(int32_t*) noexcept = 0; virtual int32_t __stdcall get_OldStartingIndex(int32_t*) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall CreateInstanceWithAllParameters(int32_t, void*, void*, int32_t, int32_t, void*, void**, void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : unknown_abi { virtual int32_t __stdcall Invoke(void*, void*) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : unknown_abi { virtual int32_t __stdcall Invoke(void*, void*) noexcept = 0; }; }; template struct consume_Windows_UI_Xaml_Interop_IBindableIterable { auto First() const; auto begin() const; auto end() const; }; template <> struct consume { template using type = consume_Windows_UI_Xaml_Interop_IBindableIterable; }; template struct consume_Windows_UI_Xaml_Interop_IBindableIterator { [[nodiscard]] auto Current() const; [[nodiscard]] auto HasCurrent() const; auto MoveNext() const; auto& operator++() { if (!MoveNext()) { static_cast(*this) = nullptr; } return static_cast(*this); } auto operator*() const { return Current(); } void operator++(int) { ++(*this); } }; template <> struct consume { template using type = consume_Windows_UI_Xaml_Interop_IBindableIterator; }; template struct consume_Windows_UI_Xaml_Interop_IBindableObservableVector { auto VectorChanged(winrt::Windows::UI::Xaml::Interop::BindableVectorChangedEventHandler const& handler) const; using VectorChanged_revoker = impl::event_revoker::remove_VectorChanged>; [[nodiscard]] auto VectorChanged(auto_revoke_t, winrt::Windows::UI::Xaml::Interop::BindableVectorChangedEventHandler const& handler) const; auto VectorChanged(winrt::event_token const& token) const noexcept; }; template <> struct consume { template using type = consume_Windows_UI_Xaml_Interop_IBindableObservableVector; }; template struct consume_Windows_UI_Xaml_Interop_IBindableVector { auto GetAt(uint32_t index) const; [[nodiscard]] auto Size() const; auto GetView() const; auto IndexOf(winrt::Windows::Foundation::IInspectable const& value, uint32_t& index) const; auto SetAt(uint32_t index, winrt::Windows::Foundation::IInspectable const& value) const; auto InsertAt(uint32_t index, winrt::Windows::Foundation::IInspectable const& value) const; auto RemoveAt(uint32_t index) const; auto Append(winrt::Windows::Foundation::IInspectable const& value) const; auto RemoveAtEnd() const; auto Clear() const; }; template <> struct consume { template using type = consume_Windows_UI_Xaml_Interop_IBindableVector; }; template struct consume_Windows_UI_Xaml_Interop_IBindableVectorView { auto GetAt(uint32_t index) const; [[nodiscard]] auto Size() const; auto IndexOf(winrt::Windows::Foundation::IInspectable const& value, uint32_t& index) const; }; template <> struct consume { template using type = consume_Windows_UI_Xaml_Interop_IBindableVectorView; }; template struct consume_Windows_UI_Xaml_Interop_INotifyCollectionChanged { auto CollectionChanged(winrt::Windows::UI::Xaml::Interop::NotifyCollectionChangedEventHandler const& handler) const; using CollectionChanged_revoker = impl::event_revoker::remove_CollectionChanged>; [[nodiscard]] auto CollectionChanged(auto_revoke_t, winrt::Windows::UI::Xaml::Interop::NotifyCollectionChangedEventHandler const& handler) const; auto CollectionChanged(winrt::event_token const& token) const noexcept; }; template <> struct consume { template using type = consume_Windows_UI_Xaml_Interop_INotifyCollectionChanged; }; template struct consume_Windows_UI_Xaml_Interop_INotifyCollectionChangedEventArgs { [[nodiscard]] auto Action() const; [[nodiscard]] auto NewItems() const; [[nodiscard]] auto OldItems() const; [[nodiscard]] auto NewStartingIndex() const; [[nodiscard]] auto OldStartingIndex() const; }; template <> struct consume { template using type = consume_Windows_UI_Xaml_Interop_INotifyCollectionChangedEventArgs; }; template struct consume_Windows_UI_Xaml_Interop_INotifyCollectionChangedEventArgsFactory { auto CreateInstanceWithAllParameters(winrt::Windows::UI::Xaml::Interop::NotifyCollectionChangedAction const& action, winrt::Windows::UI::Xaml::Interop::IBindableVector const& newItems, winrt::Windows::UI::Xaml::Interop::IBindableVector const& oldItems, int32_t newIndex, int32_t oldIndex, winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const; }; template <> struct consume { template using type = consume_Windows_UI_Xaml_Interop_INotifyCollectionChangedEventArgsFactory; }; struct struct_Windows_UI_Xaml_Interop_TypeName { void* Name; int32_t Kind; }; template <> struct abi { using type = struct_Windows_UI_Xaml_Interop_TypeName; }; } #endif