// C++/WinRT v2.0.220110.5 // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. #pragma once #ifndef WINRT_Windows_Foundation_Collections_1_H #define WINRT_Windows_Foundation_Collections_1_H #include "winrt/impl/Windows.Foundation.Collections.0.h" WINRT_EXPORT namespace winrt::Windows::Foundation::Collections { template struct __declspec(empty_bases) IIterable : winrt::Windows::Foundation::IInspectable, impl::consume_t> { static_assert(impl::has_category_v, "T must be WinRT type."); IIterable(std::nullptr_t = nullptr) noexcept {} IIterable(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Windows::Foundation::IInspectable(ptr, take_ownership_from_abi) {} }; template struct __declspec(empty_bases) IIterator : winrt::Windows::Foundation::IInspectable, impl::consume_t> { static_assert(impl::has_category_v, "T must be WinRT type."); IIterator(std::nullptr_t = nullptr) noexcept {} IIterator(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Windows::Foundation::IInspectable(ptr, take_ownership_from_abi) {} using iterator_concept = std::input_iterator_tag; using iterator_category = std::input_iterator_tag; using value_type = T; using difference_type = ptrdiff_t; using pointer = void; using reference = T; }; template struct __declspec(empty_bases) IKeyValuePair : winrt::Windows::Foundation::IInspectable, impl::consume_t> { static_assert(impl::has_category_v, "K must be WinRT type."); static_assert(impl::has_category_v, "V must be WinRT type."); IKeyValuePair(std::nullptr_t = nullptr) noexcept {} IKeyValuePair(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Windows::Foundation::IInspectable(ptr, take_ownership_from_abi) {} }; template struct __declspec(empty_bases) IMapChangedEventArgs : winrt::Windows::Foundation::IInspectable, impl::consume_t> { static_assert(impl::has_category_v, "K must be WinRT type."); IMapChangedEventArgs(std::nullptr_t = nullptr) noexcept {} IMapChangedEventArgs(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Windows::Foundation::IInspectable(ptr, take_ownership_from_abi) {} }; template struct __declspec(empty_bases) IMapView : winrt::Windows::Foundation::IInspectable, impl::consume_t>, impl::require, winrt::Windows::Foundation::Collections::IIterable>> { static_assert(impl::has_category_v, "K must be WinRT type."); static_assert(impl::has_category_v, "V must be WinRT type."); IMapView(std::nullptr_t = nullptr) noexcept {} IMapView(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Windows::Foundation::IInspectable(ptr, take_ownership_from_abi) {} }; template struct __declspec(empty_bases) IMap : winrt::Windows::Foundation::IInspectable, impl::consume_t>, impl::require, winrt::Windows::Foundation::Collections::IIterable>> { static_assert(impl::has_category_v, "K must be WinRT type."); static_assert(impl::has_category_v, "V must be WinRT type."); IMap(std::nullptr_t = nullptr) noexcept {} IMap(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Windows::Foundation::IInspectable(ptr, take_ownership_from_abi) {} }; template struct __declspec(empty_bases) IObservableMap : winrt::Windows::Foundation::IInspectable, impl::consume_t>, impl::require, winrt::Windows::Foundation::Collections::IIterable>, winrt::Windows::Foundation::Collections::IMap> { static_assert(impl::has_category_v, "K must be WinRT type."); static_assert(impl::has_category_v, "V must be WinRT type."); IObservableMap(std::nullptr_t = nullptr) noexcept {} IObservableMap(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Windows::Foundation::IInspectable(ptr, take_ownership_from_abi) {} }; template struct __declspec(empty_bases) IObservableVector : winrt::Windows::Foundation::IInspectable, impl::consume_t>, impl::require, winrt::Windows::Foundation::Collections::IIterable, winrt::Windows::Foundation::Collections::IVector> { static_assert(impl::has_category_v, "T must be WinRT type."); IObservableVector(std::nullptr_t = nullptr) noexcept {} IObservableVector(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Windows::Foundation::IInspectable(ptr, take_ownership_from_abi) {} }; struct __declspec(empty_bases) IPropertySet : winrt::Windows::Foundation::IInspectable, impl::consume_t, impl::require>, winrt::Windows::Foundation::Collections::IMap, winrt::Windows::Foundation::Collections::IObservableMap> { IPropertySet(std::nullptr_t = nullptr) noexcept {} IPropertySet(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Windows::Foundation::IInspectable(ptr, take_ownership_from_abi) {} }; struct __declspec(empty_bases) IVectorChangedEventArgs : winrt::Windows::Foundation::IInspectable, impl::consume_t { IVectorChangedEventArgs(std::nullptr_t = nullptr) noexcept {} IVectorChangedEventArgs(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Windows::Foundation::IInspectable(ptr, take_ownership_from_abi) {} }; template struct __declspec(empty_bases) IVectorView : winrt::Windows::Foundation::IInspectable, impl::consume_t>, impl::require, winrt::Windows::Foundation::Collections::IIterable> { static_assert(impl::has_category_v, "T must be WinRT type."); IVectorView(std::nullptr_t = nullptr) noexcept {} IVectorView(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Windows::Foundation::IInspectable(ptr, take_ownership_from_abi) {} }; template struct __declspec(empty_bases) IVector : winrt::Windows::Foundation::IInspectable, impl::consume_t>, impl::require, winrt::Windows::Foundation::Collections::IIterable> { static_assert(impl::has_category_v, "T must be WinRT type."); IVector(std::nullptr_t = nullptr) noexcept {} IVector(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Windows::Foundation::IInspectable(ptr, take_ownership_from_abi) {} }; } #endif