// C++/WinRT v2.0.250303.1 // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. #pragma once #ifndef WINRT_Windows_Foundation_Collections_2_H #define WINRT_Windows_Foundation_Collections_2_H #include "winrt/impl/Windows.Foundation.Collections.1.h" WINRT_EXPORT namespace winrt::Windows::Foundation::Collections { template struct MapChangedEventHandler : winrt::Windows::Foundation::IUnknown { static_assert(impl::has_category_v, "K must be WinRT type."); static_assert(impl::has_category_v, "V must be WinRT type."); MapChangedEventHandler(std::nullptr_t = nullptr) noexcept {} MapChangedEventHandler(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Windows::Foundation::IUnknown(ptr, take_ownership_from_abi) {} template MapChangedEventHandler(L lambda); template MapChangedEventHandler(F* function); template MapChangedEventHandler(O* object, M method); template MapChangedEventHandler(com_ptr&& object, M method); template MapChangedEventHandler(weak_ref&& object, LM&& lambda_or_method); template MapChangedEventHandler(std::shared_ptr&& object, M method); template MapChangedEventHandler(std::weak_ptr&& object, LM&& lambda_or_method); auto operator()(winrt::Windows::Foundation::Collections::IObservableMap const& sender, winrt::Windows::Foundation::Collections::IMapChangedEventArgs const& event) const; }; template struct VectorChangedEventHandler : winrt::Windows::Foundation::IUnknown { static_assert(impl::has_category_v, "T must be WinRT type."); VectorChangedEventHandler(std::nullptr_t = nullptr) noexcept {} VectorChangedEventHandler(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Windows::Foundation::IUnknown(ptr, take_ownership_from_abi) {} template VectorChangedEventHandler(L lambda); template VectorChangedEventHandler(F* function); template VectorChangedEventHandler(O* object, M method); template VectorChangedEventHandler(com_ptr&& object, M method); template VectorChangedEventHandler(weak_ref&& object, LM&& lambda_or_method); template VectorChangedEventHandler(std::shared_ptr&& object, M method); template VectorChangedEventHandler(std::weak_ptr&& object, LM&& lambda_or_method); auto operator()(winrt::Windows::Foundation::Collections::IObservableVector const& sender, winrt::Windows::Foundation::Collections::IVectorChangedEventArgs const& event) const; }; struct WINRT_IMPL_EMPTY_BASES PropertySet : winrt::Windows::Foundation::Collections::IPropertySet { PropertySet(std::nullptr_t) noexcept {} PropertySet(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Windows::Foundation::Collections::IPropertySet(ptr, take_ownership_from_abi) {} PropertySet(); }; struct WINRT_IMPL_EMPTY_BASES StringMap : winrt::Windows::Foundation::Collections::IMap, impl::require> { StringMap(std::nullptr_t) noexcept {} StringMap(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Windows::Foundation::Collections::IMap(ptr, take_ownership_from_abi) {} StringMap(); }; struct WINRT_IMPL_EMPTY_BASES ValueSet : winrt::Windows::Foundation::Collections::IPropertySet { ValueSet(std::nullptr_t) noexcept {} ValueSet(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Windows::Foundation::Collections::IPropertySet(ptr, take_ownership_from_abi) {} ValueSet(); }; } #endif