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

#pragma once
#ifndef WINRT_Microsoft_UI_Xaml_Data_0_H
#define WINRT_Microsoft_UI_Xaml_Data_0_H
WINRT_EXPORT namespace winrt::Microsoft::UI::Xaml
{
    struct DependencyObject;
    struct DependencyProperty;
    struct PropertyPath;
}
WINRT_EXPORT namespace winrt::Windows::Foundation
{
    template <typename T> struct WINRT_IMPL_EMPTY_BASES EventHandler;
    struct EventRegistrationToken;
}
WINRT_EXPORT namespace winrt::Windows::Foundation::Collections
{
    template <typename T> struct WINRT_IMPL_EMPTY_BASES IVectorView;
}
WINRT_EXPORT namespace winrt::Windows::UI::Xaml::Interop
{
    struct TypeName;
}
WINRT_EXPORT namespace winrt::Microsoft::UI::Xaml::Data
{
    enum class BindingMode : int32_t
    {
        OneWay = 1,
        OneTime = 2,
        TwoWay = 3,
    };
    enum class RelativeSourceMode : int32_t
    {
        None = 0,
        TemplatedParent = 1,
        Self = 2,
    };
    enum class UpdateSourceTrigger : int32_t
    {
        Default = 0,
        PropertyChanged = 1,
        Explicit = 2,
        LostFocus = 3,
    };
    struct IBinding;
    struct IBindingBase;
    struct IBindingBaseFactory;
    struct IBindingExpression;
    struct IBindingExpressionBase;
    struct IBindingExpressionBaseFactory;
    struct IBindingExpressionFactory;
    struct IBindingFactory;
    struct IBindingOperations;
    struct IBindingOperationsStatics;
    struct ICollectionView;
    struct ICollectionViewFactory;
    struct ICollectionViewGroup;
    struct ICollectionViewSource;
    struct ICollectionViewSourceStatics;
    struct ICurrentChangingEventArgs;
    struct ICurrentChangingEventArgsFactory;
    struct ICustomProperty;
    struct ICustomPropertyProvider;
    struct IDataErrorsChangedEventArgs;
    struct IDataErrorsChangedEventArgsFactory;
    struct IItemIndexRange;
    struct IItemIndexRangeFactory;
    struct IItemsRangeInfo;
    struct INotifyDataErrorInfo;
    struct INotifyPropertyChanged;
    struct IPropertyChangedEventArgs;
    struct IPropertyChangedEventArgsFactory;
    struct IRelativeSource;
    struct IRelativeSourceFactory;
    struct ISelectionInfo;
    struct ISupportIncrementalLoading;
    struct IValueConverter;
    struct Binding;
    struct BindingBase;
    struct BindingExpression;
    struct BindingExpressionBase;
    struct BindingOperations;
    struct CollectionViewSource;
    struct CurrentChangingEventArgs;
    struct DataErrorsChangedEventArgs;
    struct ItemIndexRange;
    struct PropertyChangedEventArgs;
    struct RelativeSource;
    struct LoadMoreItemsResult;
    struct CurrentChangingEventHandler;
    struct PropertyChangedEventHandler;
}
namespace winrt::impl
{
    template <> struct category<winrt::Microsoft::UI::Xaml::Data::IBinding>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Data::IBindingBase>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Data::IBindingBaseFactory>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Data::IBindingExpression>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Data::IBindingExpressionBase>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Data::IBindingExpressionBaseFactory>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Data::IBindingExpressionFactory>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Data::IBindingFactory>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Data::IBindingOperations>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Data::IBindingOperationsStatics>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Data::ICollectionView>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Data::ICollectionViewFactory>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Data::ICollectionViewGroup>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Data::ICollectionViewSource>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Data::ICollectionViewSourceStatics>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Data::ICurrentChangingEventArgs>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Data::ICurrentChangingEventArgsFactory>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Data::ICustomProperty>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Data::ICustomPropertyProvider>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Data::IDataErrorsChangedEventArgs>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Data::IDataErrorsChangedEventArgsFactory>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Data::IItemIndexRange>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Data::IItemIndexRangeFactory>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Data::IItemsRangeInfo>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Data::INotifyDataErrorInfo>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Data::INotifyPropertyChanged>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Data::IPropertyChangedEventArgs>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Data::IPropertyChangedEventArgsFactory>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Data::IRelativeSource>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Data::IRelativeSourceFactory>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Data::ISelectionInfo>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Data::ISupportIncrementalLoading>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Data::IValueConverter>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Data::Binding>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Data::BindingBase>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Data::BindingExpression>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Data::BindingExpressionBase>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Data::BindingOperations>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Data::CollectionViewSource>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Data::CurrentChangingEventArgs>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Data::DataErrorsChangedEventArgs>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Data::ItemIndexRange>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Data::PropertyChangedEventArgs>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Data::RelativeSource>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Data::BindingMode>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Data::RelativeSourceMode>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Data::UpdateSourceTrigger>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Data::LoadMoreItemsResult>{ using type = struct_category<uint32_t>; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Data::CurrentChangingEventHandler>{ using type = delegate_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Data::PropertyChangedEventHandler>{ using type = delegate_category; };
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Data::Binding> = L"Microsoft.UI.Xaml.Data.Binding";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Data::BindingBase> = L"Microsoft.UI.Xaml.Data.BindingBase";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Data::BindingExpression> = L"Microsoft.UI.Xaml.Data.BindingExpression";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Data::BindingExpressionBase> = L"Microsoft.UI.Xaml.Data.BindingExpressionBase";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Data::BindingOperations> = L"Microsoft.UI.Xaml.Data.BindingOperations";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Data::CollectionViewSource> = L"Microsoft.UI.Xaml.Data.CollectionViewSource";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Data::CurrentChangingEventArgs> = L"Microsoft.UI.Xaml.Data.CurrentChangingEventArgs";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Data::DataErrorsChangedEventArgs> = L"Microsoft.UI.Xaml.Data.DataErrorsChangedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Data::ItemIndexRange> = L"Microsoft.UI.Xaml.Data.ItemIndexRange";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Data::PropertyChangedEventArgs> = L"Microsoft.UI.Xaml.Data.PropertyChangedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Data::RelativeSource> = L"Microsoft.UI.Xaml.Data.RelativeSource";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Data::BindingMode> = L"Microsoft.UI.Xaml.Data.BindingMode";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Data::RelativeSourceMode> = L"Microsoft.UI.Xaml.Data.RelativeSourceMode";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Data::UpdateSourceTrigger> = L"Microsoft.UI.Xaml.Data.UpdateSourceTrigger";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Data::LoadMoreItemsResult> = L"Microsoft.UI.Xaml.Data.LoadMoreItemsResult";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Data::IBinding> = L"Microsoft.UI.Xaml.Data.IBinding";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Data::IBindingBase> = L"Microsoft.UI.Xaml.Data.IBindingBase";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Data::IBindingBaseFactory> = L"Microsoft.UI.Xaml.Data.IBindingBaseFactory";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Data::IBindingExpression> = L"Microsoft.UI.Xaml.Data.IBindingExpression";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Data::IBindingExpressionBase> = L"Microsoft.UI.Xaml.Data.IBindingExpressionBase";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Data::IBindingExpressionBaseFactory> = L"Microsoft.UI.Xaml.Data.IBindingExpressionBaseFactory";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Data::IBindingExpressionFactory> = L"Microsoft.UI.Xaml.Data.IBindingExpressionFactory";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Data::IBindingFactory> = L"Microsoft.UI.Xaml.Data.IBindingFactory";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Data::IBindingOperations> = L"Microsoft.UI.Xaml.Data.IBindingOperations";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Data::IBindingOperationsStatics> = L"Microsoft.UI.Xaml.Data.IBindingOperationsStatics";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Data::ICollectionView> = L"Microsoft.UI.Xaml.Data.ICollectionView";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Data::ICollectionViewFactory> = L"Microsoft.UI.Xaml.Data.ICollectionViewFactory";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Data::ICollectionViewGroup> = L"Microsoft.UI.Xaml.Data.ICollectionViewGroup";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Data::ICollectionViewSource> = L"Microsoft.UI.Xaml.Data.ICollectionViewSource";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Data::ICollectionViewSourceStatics> = L"Microsoft.UI.Xaml.Data.ICollectionViewSourceStatics";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Data::ICurrentChangingEventArgs> = L"Microsoft.UI.Xaml.Data.ICurrentChangingEventArgs";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Data::ICurrentChangingEventArgsFactory> = L"Microsoft.UI.Xaml.Data.ICurrentChangingEventArgsFactory";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Data::ICustomProperty> = L"Microsoft.UI.Xaml.Data.ICustomProperty";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Data::ICustomPropertyProvider> = L"Microsoft.UI.Xaml.Data.ICustomPropertyProvider";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Data::IDataErrorsChangedEventArgs> = L"Microsoft.UI.Xaml.Data.IDataErrorsChangedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Data::IDataErrorsChangedEventArgsFactory> = L"Microsoft.UI.Xaml.Data.IDataErrorsChangedEventArgsFactory";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Data::IItemIndexRange> = L"Microsoft.UI.Xaml.Data.IItemIndexRange";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Data::IItemIndexRangeFactory> = L"Microsoft.UI.Xaml.Data.IItemIndexRangeFactory";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Data::IItemsRangeInfo> = L"Microsoft.UI.Xaml.Data.IItemsRangeInfo";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Data::INotifyDataErrorInfo> = L"Microsoft.UI.Xaml.Data.INotifyDataErrorInfo";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Data::INotifyPropertyChanged> = L"Microsoft.UI.Xaml.Data.INotifyPropertyChanged";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Data::IPropertyChangedEventArgs> = L"Microsoft.UI.Xaml.Data.IPropertyChangedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Data::IPropertyChangedEventArgsFactory> = L"Microsoft.UI.Xaml.Data.IPropertyChangedEventArgsFactory";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Data::IRelativeSource> = L"Microsoft.UI.Xaml.Data.IRelativeSource";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Data::IRelativeSourceFactory> = L"Microsoft.UI.Xaml.Data.IRelativeSourceFactory";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Data::ISelectionInfo> = L"Microsoft.UI.Xaml.Data.ISelectionInfo";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Data::ISupportIncrementalLoading> = L"Microsoft.UI.Xaml.Data.ISupportIncrementalLoading";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Data::IValueConverter> = L"Microsoft.UI.Xaml.Data.IValueConverter";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Data::CurrentChangingEventHandler> = L"Microsoft.UI.Xaml.Data.CurrentChangingEventHandler";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Data::PropertyChangedEventHandler> = L"Microsoft.UI.Xaml.Data.PropertyChangedEventHandler";
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Data::IBinding>{ 0x501EA0E8,0xEDD4,0x59DE,{ 0x88,0x45,0x76,0xAF,0x2E,0xAB,0xBE,0x00 } }; // 501EA0E8-EDD4-59DE-8845-76AF2EABBE00
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Data::IBindingBase>{ 0x91DDD141,0x5944,0x50EF,{ 0xB8,0x5E,0x21,0x8E,0x46,0x3F,0x7A,0x73 } }; // 91DDD141-5944-50EF-B85E-218E463F7A73
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Data::IBindingBaseFactory>{ 0xC8A866C5,0xF6F3,0x5F7A,{ 0x95,0x92,0xD3,0x85,0xAF,0x48,0xBD,0x8F } }; // C8A866C5-F6F3-5F7A-9592-D385AF48BD8F
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Data::IBindingExpression>{ 0x4C023916,0x37BC,0x5B07,{ 0xBC,0x9D,0x15,0xC5,0x47,0xBD,0x9B,0x26 } }; // 4C023916-37BC-5B07-BC9D-15C547BD9B26
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Data::IBindingExpressionBase>{ 0x8825E5A9,0xD9A3,0x5E87,{ 0xBC,0xD8,0xC6,0x31,0x33,0xD2,0x90,0x29 } }; // 8825E5A9-D9A3-5E87-BCD8-C63133D29029
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Data::IBindingExpressionBaseFactory>{ 0x41D643B9,0x2629,0x5451,{ 0xA7,0x16,0x59,0x6C,0x08,0x48,0xB5,0xDC } }; // 41D643B9-2629-5451-A716-596C0848B5DC
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Data::IBindingExpressionFactory>{ 0x086CAE14,0x81A1,0x588B,{ 0xB6,0x19,0x05,0xEE,0x84,0xC0,0xF0,0x89 } }; // 086CAE14-81A1-588B-B619-05EE84C0F089
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Data::IBindingFactory>{ 0xCB2DE749,0xB115,0x5F67,{ 0xB6,0x4A,0x79,0x7D,0x54,0x88,0x5D,0x5C } }; // CB2DE749-B115-5F67-B64A-797D54885D5C
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Data::IBindingOperations>{ 0x9A319B95,0xAABE,0x5075,{ 0xB2,0x27,0x8E,0xB0,0x7E,0x44,0x3D,0x8B } }; // 9A319B95-AABE-5075-B227-8EB07E443D8B
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Data::IBindingOperationsStatics>{ 0x1E1BDBD3,0xFCA5,0x5C85,{ 0xB8,0x7D,0xB5,0x04,0xCD,0x8F,0xA8,0xAC } }; // 1E1BDBD3-FCA5-5C85-B87D-B504CD8FA8AC
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Data::ICollectionView>{ 0xF8BB90D8,0xE008,0x5D65,{ 0x8C,0x97,0x7B,0xB7,0x90,0xA4,0x23,0x0C } }; // F8BB90D8-E008-5D65-8C97-7BB790A4230C
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Data::ICollectionViewFactory>{ 0xD971F795,0x5728,0x5BEF,{ 0x96,0x02,0x43,0xF2,0xC4,0x25,0x0E,0x56 } }; // D971F795-5728-5BEF-9602-43F2C4250E56
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Data::ICollectionViewGroup>{ 0x96A08DA8,0xBE38,0x5AE0,{ 0x90,0x3D,0x6F,0xB6,0x11,0x1E,0x61,0xF5 } }; // 96A08DA8-BE38-5AE0-903D-6FB6111E61F5
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Data::ICollectionViewSource>{ 0xA45E3B3A,0xF31E,0x5BBB,{ 0x8A,0x7C,0x70,0xCF,0x5C,0x64,0xBC,0x3F } }; // A45E3B3A-F31E-5BBB-8A7C-70CF5C64BC3F
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Data::ICollectionViewSourceStatics>{ 0xE282F10F,0xD4B1,0x5769,{ 0x8A,0x11,0x30,0xF7,0x39,0xE6,0x11,0x3B } }; // E282F10F-D4B1-5769-8A11-30F739E6113B
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Data::ICurrentChangingEventArgs>{ 0x63E42ED6,0xE14A,0x51EA,{ 0x9C,0xB1,0x72,0xF9,0xC9,0x07,0xDC,0x80 } }; // 63E42ED6-E14A-51EA-9CB1-72F9C907DC80
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Data::ICurrentChangingEventArgsFactory>{ 0x3670F48A,0xAC2C,0x5352,{ 0x8A,0x4B,0x6B,0x97,0x7A,0x08,0xE5,0xF8 } }; // 3670F48A-AC2C-5352-8A4B-6B977A08E5F8
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Data::ICustomProperty>{ 0x30DA92C0,0x23E8,0x42A0,{ 0xAE,0x7C,0x73,0x4A,0x0E,0x5D,0x27,0x82 } }; // 30DA92C0-23E8-42A0-AE7C-734A0E5D2782
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Data::ICustomPropertyProvider>{ 0x7C925755,0x3E48,0x42B4,{ 0x86,0x77,0x76,0x37,0x22,0x67,0x03,0x3F } }; // 7C925755-3E48-42B4-8677-76372267033F
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Data::IDataErrorsChangedEventArgs>{ 0xD026DD64,0x5F26,0x5F15,{ 0xA8,0x6A,0x0D,0xEC,0x8A,0x43,0x17,0x96 } }; // D026DD64-5F26-5F15-A86A-0DEC8A431796
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Data::IDataErrorsChangedEventArgsFactory>{ 0x62D0BD1E,0xB85F,0x5FCC,{ 0x84,0x2A,0x7C,0xB0,0xDD,0xA3,0x7F,0xE5 } }; // 62D0BD1E-B85F-5FCC-842A-7CB0DDA37FE5
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Data::IItemIndexRange>{ 0xEBA09846,0x2554,0x5B86,{ 0xAC,0x17,0x61,0x4F,0x05,0x10,0x5F,0xA2 } }; // EBA09846-2554-5B86-AC17-614F05105FA2
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Data::IItemIndexRangeFactory>{ 0x9FC73213,0xEDA0,0x5238,{ 0xAA,0x2C,0x40,0x1C,0x99,0x21,0xF0,0xF9 } }; // 9FC73213-EDA0-5238-AA2C-401C9921F0F9
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Data::IItemsRangeInfo>{ 0xB8376D08,0x85FB,0x563B,{ 0x82,0x73,0x39,0xEF,0x2D,0x13,0x82,0x56 } }; // B8376D08-85FB-563B-8273-39EF2D138256
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Data::INotifyDataErrorInfo>{ 0x0EE6C2CC,0x273E,0x567D,{ 0xBC,0x0A,0x1D,0xD8,0x7E,0xE5,0x1E,0xBA } }; // 0EE6C2CC-273E-567D-BC0A-1DD87EE51EBA
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Data::INotifyPropertyChanged>{ 0x90B17601,0xB065,0x586E,{ 0x83,0xD9,0x9A,0xDC,0x3A,0x69,0x52,0x84 } }; // 90B17601-B065-586E-83D9-9ADC3A695284
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Data::IPropertyChangedEventArgs>{ 0x63D0C952,0x396B,0x54F4,{ 0xAF,0x8C,0xBA,0x87,0x24,0xA4,0x27,0xBF } }; // 63D0C952-396B-54F4-AF8C-BA8724A427BF
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Data::IPropertyChangedEventArgsFactory>{ 0x7C0C27A8,0x0B41,0x5070,{ 0xB1,0x60,0xFC,0x9A,0xE9,0x60,0xA3,0x6C } }; // 7C0C27A8-0B41-5070-B160-FC9AE960A36C
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Data::IRelativeSource>{ 0x7FFC8126,0x5DD8,0x58BB,{ 0xB6,0x86,0xC7,0x1E,0xDD,0xEA,0x07,0xB2 } }; // 7FFC8126-5DD8-58BB-B686-C71EDDEA07B2
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Data::IRelativeSourceFactory>{ 0x8518522C,0x85E3,0x5AE1,{ 0xB9,0xE9,0x28,0xEA,0x43,0xC2,0x05,0x1E } }; // 8518522C-85E3-5AE1-B9E9-28EA43C2051E
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Data::ISelectionInfo>{ 0x1B84C26B,0x9532,0x5803,{ 0x93,0x5B,0xA0,0x3B,0xF7,0xE8,0x75,0xDC } }; // 1B84C26B-9532-5803-935B-A03BF7E875DC
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Data::ISupportIncrementalLoading>{ 0xD8F9B586,0xA64A,0x5FF8,{ 0x86,0x8E,0x20,0x4E,0x14,0x4F,0x2C,0xF4 } }; // D8F9B586-A64A-5FF8-868E-204E144F2CF4
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Data::IValueConverter>{ 0xAFDD2BFF,0x10F5,0x5173,{ 0xB7,0xC0,0x35,0x90,0xBD,0x96,0xCB,0x35 } }; // AFDD2BFF-10F5-5173-B7C0-3590BD96CB35
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Data::CurrentChangingEventHandler>{ 0x3D2A98DD,0x95B3,0x5FD5,{ 0x93,0xB4,0xA1,0xA2,0x59,0x9F,0x22,0x5C } }; // 3D2A98DD-95B3-5FD5-93B4-A1A2599F225C
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Data::PropertyChangedEventHandler>{ 0xE3DE52F6,0x1E32,0x5DA6,{ 0xBB,0x2D,0xB5,0xB6,0x09,0x6C,0x96,0x2D } }; // E3DE52F6-1E32-5DA6-BB2D-B5B6096C962D
    template <> struct default_interface<winrt::Microsoft::UI::Xaml::Data::Binding>{ using type = winrt::Microsoft::UI::Xaml::Data::IBinding; };
    template <> struct default_interface<winrt::Microsoft::UI::Xaml::Data::BindingBase>{ using type = winrt::Microsoft::UI::Xaml::Data::IBindingBase; };
    template <> struct default_interface<winrt::Microsoft::UI::Xaml::Data::BindingExpression>{ using type = winrt::Microsoft::UI::Xaml::Data::IBindingExpression; };
    template <> struct default_interface<winrt::Microsoft::UI::Xaml::Data::BindingExpressionBase>{ using type = winrt::Microsoft::UI::Xaml::Data::IBindingExpressionBase; };
    template <> struct default_interface<winrt::Microsoft::UI::Xaml::Data::BindingOperations>{ using type = winrt::Microsoft::UI::Xaml::Data::IBindingOperations; };
    template <> struct default_interface<winrt::Microsoft::UI::Xaml::Data::CollectionViewSource>{ using type = winrt::Microsoft::UI::Xaml::Data::ICollectionViewSource; };
    template <> struct default_interface<winrt::Microsoft::UI::Xaml::Data::CurrentChangingEventArgs>{ using type = winrt::Microsoft::UI::Xaml::Data::ICurrentChangingEventArgs; };
    template <> struct default_interface<winrt::Microsoft::UI::Xaml::Data::DataErrorsChangedEventArgs>{ using type = winrt::Microsoft::UI::Xaml::Data::IDataErrorsChangedEventArgs; };
    template <> struct default_interface<winrt::Microsoft::UI::Xaml::Data::ItemIndexRange>{ using type = winrt::Microsoft::UI::Xaml::Data::IItemIndexRange; };
    template <> struct default_interface<winrt::Microsoft::UI::Xaml::Data::PropertyChangedEventArgs>{ using type = winrt::Microsoft::UI::Xaml::Data::IPropertyChangedEventArgs; };
    template <> struct default_interface<winrt::Microsoft::UI::Xaml::Data::RelativeSource>{ using type = winrt::Microsoft::UI::Xaml::Data::IRelativeSource; };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Data::IBinding>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Path(void**) noexcept = 0;
            virtual int32_t __stdcall put_Path(void*) noexcept = 0;
            virtual int32_t __stdcall get_Mode(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_Mode(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_Source(void**) noexcept = 0;
            virtual int32_t __stdcall put_Source(void*) noexcept = 0;
            virtual int32_t __stdcall get_RelativeSource(void**) noexcept = 0;
            virtual int32_t __stdcall put_RelativeSource(void*) noexcept = 0;
            virtual int32_t __stdcall get_ElementName(void**) noexcept = 0;
            virtual int32_t __stdcall put_ElementName(void*) noexcept = 0;
            virtual int32_t __stdcall get_Converter(void**) noexcept = 0;
            virtual int32_t __stdcall put_Converter(void*) noexcept = 0;
            virtual int32_t __stdcall get_ConverterParameter(void**) noexcept = 0;
            virtual int32_t __stdcall put_ConverterParameter(void*) noexcept = 0;
            virtual int32_t __stdcall get_ConverterLanguage(void**) noexcept = 0;
            virtual int32_t __stdcall put_ConverterLanguage(void*) noexcept = 0;
            virtual int32_t __stdcall get_FallbackValue(void**) noexcept = 0;
            virtual int32_t __stdcall put_FallbackValue(void*) noexcept = 0;
            virtual int32_t __stdcall get_TargetNullValue(void**) noexcept = 0;
            virtual int32_t __stdcall put_TargetNullValue(void*) noexcept = 0;
            virtual int32_t __stdcall get_UpdateSourceTrigger(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_UpdateSourceTrigger(int32_t) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Data::IBindingBase>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Data::IBindingBaseFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall CreateInstance(void*, void**, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Data::IBindingExpression>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_DataItem(void**) noexcept = 0;
            virtual int32_t __stdcall get_ParentBinding(void**) noexcept = 0;
            virtual int32_t __stdcall UpdateSource() noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Data::IBindingExpressionBase>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Data::IBindingExpressionBaseFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Data::IBindingExpressionFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Data::IBindingFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall CreateInstance(void*, void**, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Data::IBindingOperations>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Data::IBindingOperationsStatics>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall SetBinding(void*, void*, void*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Data::ICollectionView>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_CurrentItem(void**) noexcept = 0;
            virtual int32_t __stdcall get_CurrentPosition(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_IsCurrentAfterLast(bool*) noexcept = 0;
            virtual int32_t __stdcall get_IsCurrentBeforeFirst(bool*) noexcept = 0;
            virtual int32_t __stdcall get_CollectionGroups(void**) noexcept = 0;
            virtual int32_t __stdcall get_HasMoreItems(bool*) noexcept = 0;
            virtual int32_t __stdcall add_CurrentChanged(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_CurrentChanged(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall add_CurrentChanging(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_CurrentChanging(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall MoveCurrentTo(void*, bool*) noexcept = 0;
            virtual int32_t __stdcall MoveCurrentToPosition(int32_t, bool*) noexcept = 0;
            virtual int32_t __stdcall MoveCurrentToFirst(bool*) noexcept = 0;
            virtual int32_t __stdcall MoveCurrentToLast(bool*) noexcept = 0;
            virtual int32_t __stdcall MoveCurrentToNext(bool*) noexcept = 0;
            virtual int32_t __stdcall MoveCurrentToPrevious(bool*) noexcept = 0;
            virtual int32_t __stdcall LoadMoreItemsAsync(uint32_t, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Data::ICollectionViewFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall CreateView(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Data::ICollectionViewGroup>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Group(void**) noexcept = 0;
            virtual int32_t __stdcall get_GroupItems(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Data::ICollectionViewSource>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Source(void**) noexcept = 0;
            virtual int32_t __stdcall put_Source(void*) noexcept = 0;
            virtual int32_t __stdcall get_View(void**) noexcept = 0;
            virtual int32_t __stdcall get_IsSourceGrouped(bool*) noexcept = 0;
            virtual int32_t __stdcall put_IsSourceGrouped(bool) noexcept = 0;
            virtual int32_t __stdcall get_ItemsPath(void**) noexcept = 0;
            virtual int32_t __stdcall put_ItemsPath(void*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Data::ICollectionViewSourceStatics>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_SourceProperty(void**) noexcept = 0;
            virtual int32_t __stdcall get_ViewProperty(void**) noexcept = 0;
            virtual int32_t __stdcall get_IsSourceGroupedProperty(void**) noexcept = 0;
            virtual int32_t __stdcall get_ItemsPathProperty(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Data::ICurrentChangingEventArgs>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Cancel(bool*) noexcept = 0;
            virtual int32_t __stdcall put_Cancel(bool) noexcept = 0;
            virtual int32_t __stdcall get_IsCancelable(bool*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Data::ICurrentChangingEventArgsFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall CreateInstance(void*, void**, void**) noexcept = 0;
            virtual int32_t __stdcall CreateWithCancelableParameter(bool, void*, void**, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Data::ICustomProperty>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Type(struct struct_Windows_UI_Xaml_Interop_TypeName*) noexcept = 0;
            virtual int32_t __stdcall get_Name(void**) noexcept = 0;
            virtual int32_t __stdcall GetValue(void*, void**) noexcept = 0;
            virtual int32_t __stdcall SetValue(void*, void*) noexcept = 0;
            virtual int32_t __stdcall GetIndexedValue(void*, void*, void**) noexcept = 0;
            virtual int32_t __stdcall SetIndexedValue(void*, void*, void*) noexcept = 0;
            virtual int32_t __stdcall get_CanWrite(bool*) noexcept = 0;
            virtual int32_t __stdcall get_CanRead(bool*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Data::ICustomPropertyProvider>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall GetCustomProperty(void*, void**) noexcept = 0;
            virtual int32_t __stdcall GetIndexedProperty(void*, struct struct_Windows_UI_Xaml_Interop_TypeName, void**) noexcept = 0;
            virtual int32_t __stdcall GetStringRepresentation(void**) noexcept = 0;
            virtual int32_t __stdcall get_Type(struct struct_Windows_UI_Xaml_Interop_TypeName*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Data::IDataErrorsChangedEventArgs>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_PropertyName(void**) noexcept = 0;
            virtual int32_t __stdcall put_PropertyName(void*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Data::IDataErrorsChangedEventArgsFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall CreateInstance(void*, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Data::IItemIndexRange>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_FirstIndex(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_Length(uint32_t*) noexcept = 0;
            virtual int32_t __stdcall get_LastIndex(int32_t*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Data::IItemIndexRangeFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall CreateInstance(int32_t, uint32_t, void*, void**, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Data::IItemsRangeInfo>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall RangesChanged(void*, void*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Data::INotifyDataErrorInfo>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_HasErrors(bool*) noexcept = 0;
            virtual int32_t __stdcall add_ErrorsChanged(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_ErrorsChanged(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall GetErrors(void*, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Data::INotifyPropertyChanged>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall add_PropertyChanged(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_PropertyChanged(winrt::event_token) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Data::IPropertyChangedEventArgs>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_PropertyName(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Data::IPropertyChangedEventArgsFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall CreateInstance(void*, void*, void**, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Data::IRelativeSource>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Mode(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_Mode(int32_t) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Data::IRelativeSourceFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall CreateInstance(void*, void**, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Data::ISelectionInfo>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall SelectRange(void*) noexcept = 0;
            virtual int32_t __stdcall DeselectRange(void*) noexcept = 0;
            virtual int32_t __stdcall IsSelected(int32_t, bool*) noexcept = 0;
            virtual int32_t __stdcall GetSelectedRanges(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Data::ISupportIncrementalLoading>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall LoadMoreItemsAsync(uint32_t, void**) noexcept = 0;
            virtual int32_t __stdcall get_HasMoreItems(bool*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Data::IValueConverter>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall Convert(void*, struct struct_Windows_UI_Xaml_Interop_TypeName, void*, void*, void**) noexcept = 0;
            virtual int32_t __stdcall ConvertBack(void*, struct struct_Windows_UI_Xaml_Interop_TypeName, void*, void*, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Data::CurrentChangingEventHandler>
    {
        struct WINRT_IMPL_NOVTABLE type : unknown_abi
        {
            virtual int32_t __stdcall Invoke(void*, void*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Data::PropertyChangedEventHandler>
    {
        struct WINRT_IMPL_NOVTABLE type : unknown_abi
        {
            virtual int32_t __stdcall Invoke(void*, void*) noexcept = 0;
        };
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Data_IBinding
    {
        [[nodiscard]] auto Path() const;
        auto Path(winrt::Microsoft::UI::Xaml::PropertyPath const& value) const;
        [[nodiscard]] auto Mode() const;
        auto Mode(winrt::Microsoft::UI::Xaml::Data::BindingMode const& value) const;
        [[nodiscard]] auto Source() const;
        auto Source(winrt::Windows::Foundation::IInspectable const& value) const;
        [[nodiscard]] auto RelativeSource() const;
        auto RelativeSource(winrt::Microsoft::UI::Xaml::Data::RelativeSource const& value) const;
        [[nodiscard]] auto ElementName() const;
        auto ElementName(param::hstring const& value) const;
        [[nodiscard]] auto Converter() const;
        auto Converter(winrt::Microsoft::UI::Xaml::Data::IValueConverter const& value) const;
        [[nodiscard]] auto ConverterParameter() const;
        auto ConverterParameter(winrt::Windows::Foundation::IInspectable const& value) const;
        [[nodiscard]] auto ConverterLanguage() const;
        auto ConverterLanguage(param::hstring const& value) const;
        [[nodiscard]] auto FallbackValue() const;
        auto FallbackValue(winrt::Windows::Foundation::IInspectable const& value) const;
        [[nodiscard]] auto TargetNullValue() const;
        auto TargetNullValue(winrt::Windows::Foundation::IInspectable const& value) const;
        [[nodiscard]] auto UpdateSourceTrigger() const;
        auto UpdateSourceTrigger(winrt::Microsoft::UI::Xaml::Data::UpdateSourceTrigger const& value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Data::IBinding>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Data_IBinding<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Data_IBindingBase
    {
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Data::IBindingBase>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Data_IBindingBase<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Data_IBindingBaseFactory
    {
        auto CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Data::IBindingBaseFactory>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Data_IBindingBaseFactory<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Data_IBindingExpression
    {
        [[nodiscard]] auto DataItem() const;
        [[nodiscard]] auto ParentBinding() const;
        auto UpdateSource() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Data::IBindingExpression>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Data_IBindingExpression<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Data_IBindingExpressionBase
    {
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Data::IBindingExpressionBase>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Data_IBindingExpressionBase<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Data_IBindingExpressionBaseFactory
    {
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Data::IBindingExpressionBaseFactory>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Data_IBindingExpressionBaseFactory<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Data_IBindingExpressionFactory
    {
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Data::IBindingExpressionFactory>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Data_IBindingExpressionFactory<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Data_IBindingFactory
    {
        auto CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Data::IBindingFactory>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Data_IBindingFactory<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Data_IBindingOperations
    {
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Data::IBindingOperations>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Data_IBindingOperations<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Data_IBindingOperationsStatics
    {
        auto SetBinding(winrt::Microsoft::UI::Xaml::DependencyObject const& target, winrt::Microsoft::UI::Xaml::DependencyProperty const& dp, winrt::Microsoft::UI::Xaml::Data::BindingBase const& binding) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Data::IBindingOperationsStatics>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Data_IBindingOperationsStatics<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Data_ICollectionView
    {
        [[nodiscard]] auto CurrentItem() const;
        [[nodiscard]] auto CurrentPosition() const;
        [[nodiscard]] auto IsCurrentAfterLast() const;
        [[nodiscard]] auto IsCurrentBeforeFirst() const;
        [[nodiscard]] auto CollectionGroups() const;
        [[nodiscard]] auto HasMoreItems() const;
        auto CurrentChanged(winrt::Windows::Foundation::EventHandler<winrt::Windows::Foundation::IInspectable> const& handler) const;
        using CurrentChanged_revoker = impl::event_revoker<winrt::Microsoft::UI::Xaml::Data::ICollectionView, &impl::abi_t<winrt::Microsoft::UI::Xaml::Data::ICollectionView>::remove_CurrentChanged>;
        [[nodiscard]] auto CurrentChanged(auto_revoke_t, winrt::Windows::Foundation::EventHandler<winrt::Windows::Foundation::IInspectable> const& handler) const;
        auto CurrentChanged(winrt::event_token const& token) const noexcept;
        auto CurrentChanging(winrt::Microsoft::UI::Xaml::Data::CurrentChangingEventHandler const& handler) const;
        using CurrentChanging_revoker = impl::event_revoker<winrt::Microsoft::UI::Xaml::Data::ICollectionView, &impl::abi_t<winrt::Microsoft::UI::Xaml::Data::ICollectionView>::remove_CurrentChanging>;
        [[nodiscard]] auto CurrentChanging(auto_revoke_t, winrt::Microsoft::UI::Xaml::Data::CurrentChangingEventHandler const& handler) const;
        auto CurrentChanging(winrt::event_token const& token) const noexcept;
        auto MoveCurrentTo(winrt::Windows::Foundation::IInspectable const& item) const;
        auto MoveCurrentToPosition(int32_t index) const;
        auto MoveCurrentToFirst() const;
        auto MoveCurrentToLast() const;
        auto MoveCurrentToNext() const;
        auto MoveCurrentToPrevious() const;
        auto LoadMoreItemsAsync(uint32_t count) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Data::ICollectionView>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Data_ICollectionView<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Data_ICollectionViewFactory
    {
        auto CreateView() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Data::ICollectionViewFactory>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Data_ICollectionViewFactory<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Data_ICollectionViewGroup
    {
        [[nodiscard]] auto Group() const;
        [[nodiscard]] auto GroupItems() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Data::ICollectionViewGroup>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Data_ICollectionViewGroup<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Data_ICollectionViewSource
    {
        [[nodiscard]] auto Source() const;
        auto Source(winrt::Windows::Foundation::IInspectable const& value) const;
        [[nodiscard]] auto View() const;
        [[nodiscard]] auto IsSourceGrouped() const;
        auto IsSourceGrouped(bool value) const;
        [[nodiscard]] auto ItemsPath() const;
        auto ItemsPath(winrt::Microsoft::UI::Xaml::PropertyPath const& value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Data::ICollectionViewSource>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Data_ICollectionViewSource<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Data_ICollectionViewSourceStatics
    {
        [[nodiscard]] auto SourceProperty() const;
        [[nodiscard]] auto ViewProperty() const;
        [[nodiscard]] auto IsSourceGroupedProperty() const;
        [[nodiscard]] auto ItemsPathProperty() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Data::ICollectionViewSourceStatics>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Data_ICollectionViewSourceStatics<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Data_ICurrentChangingEventArgs
    {
        [[nodiscard]] auto Cancel() const;
        auto Cancel(bool value) const;
        [[nodiscard]] auto IsCancelable() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Data::ICurrentChangingEventArgs>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Data_ICurrentChangingEventArgs<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Data_ICurrentChangingEventArgsFactory
    {
        auto CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const;
        auto CreateWithCancelableParameter(bool isCancelable, winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Data::ICurrentChangingEventArgsFactory>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Data_ICurrentChangingEventArgsFactory<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Data_ICustomProperty
    {
        [[nodiscard]] auto Type() const;
        [[nodiscard]] auto Name() const;
        auto GetValue(winrt::Windows::Foundation::IInspectable const& target) const;
        auto SetValue(winrt::Windows::Foundation::IInspectable const& target, winrt::Windows::Foundation::IInspectable const& value) const;
        auto GetIndexedValue(winrt::Windows::Foundation::IInspectable const& target, winrt::Windows::Foundation::IInspectable const& index) const;
        auto SetIndexedValue(winrt::Windows::Foundation::IInspectable const& target, winrt::Windows::Foundation::IInspectable const& value, winrt::Windows::Foundation::IInspectable const& index) const;
        [[nodiscard]] auto CanWrite() const;
        [[nodiscard]] auto CanRead() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Data::ICustomProperty>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Data_ICustomProperty<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Data_ICustomPropertyProvider
    {
        auto GetCustomProperty(param::hstring const& name) const;
        auto GetIndexedProperty(param::hstring const& name, winrt::Windows::UI::Xaml::Interop::TypeName const& type) const;
        auto GetStringRepresentation() const;
        [[nodiscard]] auto Type() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Data::ICustomPropertyProvider>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Data_ICustomPropertyProvider<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Data_IDataErrorsChangedEventArgs
    {
        [[nodiscard]] auto PropertyName() const;
        auto PropertyName(param::hstring const& value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Data::IDataErrorsChangedEventArgs>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Data_IDataErrorsChangedEventArgs<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Data_IDataErrorsChangedEventArgsFactory
    {
        auto CreateInstance(param::hstring const& name) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Data::IDataErrorsChangedEventArgsFactory>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Data_IDataErrorsChangedEventArgsFactory<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Data_IItemIndexRange
    {
        [[nodiscard]] auto FirstIndex() const;
        [[nodiscard]] auto Length() const;
        [[nodiscard]] auto LastIndex() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Data::IItemIndexRange>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Data_IItemIndexRange<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Data_IItemIndexRangeFactory
    {
        auto CreateInstance(int32_t firstIndex, uint32_t length, winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Data::IItemIndexRangeFactory>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Data_IItemIndexRangeFactory<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Data_IItemsRangeInfo
    {
        auto RangesChanged(winrt::Microsoft::UI::Xaml::Data::ItemIndexRange const& visibleRange, param::vector_view<winrt::Microsoft::UI::Xaml::Data::ItemIndexRange> const& trackedItems) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Data::IItemsRangeInfo>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Data_IItemsRangeInfo<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Data_INotifyDataErrorInfo
    {
        [[nodiscard]] auto HasErrors() const;
        auto ErrorsChanged(winrt::Windows::Foundation::EventHandler<winrt::Microsoft::UI::Xaml::Data::DataErrorsChangedEventArgs> const& handler) const;
        using ErrorsChanged_revoker = impl::event_revoker<winrt::Microsoft::UI::Xaml::Data::INotifyDataErrorInfo, &impl::abi_t<winrt::Microsoft::UI::Xaml::Data::INotifyDataErrorInfo>::remove_ErrorsChanged>;
        [[nodiscard]] auto ErrorsChanged(auto_revoke_t, winrt::Windows::Foundation::EventHandler<winrt::Microsoft::UI::Xaml::Data::DataErrorsChangedEventArgs> const& handler) const;
        auto ErrorsChanged(winrt::event_token const& token) const noexcept;
        auto GetErrors(param::hstring const& propertyName) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Data::INotifyDataErrorInfo>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Data_INotifyDataErrorInfo<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Data_INotifyPropertyChanged
    {
        auto PropertyChanged(winrt::Microsoft::UI::Xaml::Data::PropertyChangedEventHandler const& handler) const;
        using PropertyChanged_revoker = impl::event_revoker<winrt::Microsoft::UI::Xaml::Data::INotifyPropertyChanged, &impl::abi_t<winrt::Microsoft::UI::Xaml::Data::INotifyPropertyChanged>::remove_PropertyChanged>;
        [[nodiscard]] auto PropertyChanged(auto_revoke_t, winrt::Microsoft::UI::Xaml::Data::PropertyChangedEventHandler const& handler) const;
        auto PropertyChanged(winrt::event_token const& token) const noexcept;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Data::INotifyPropertyChanged>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Data_INotifyPropertyChanged<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Data_IPropertyChangedEventArgs
    {
        [[nodiscard]] auto PropertyName() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Data::IPropertyChangedEventArgs>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Data_IPropertyChangedEventArgs<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Data_IPropertyChangedEventArgsFactory
    {
        auto CreateInstance(param::hstring const& name, winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Data::IPropertyChangedEventArgsFactory>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Data_IPropertyChangedEventArgsFactory<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Data_IRelativeSource
    {
        [[nodiscard]] auto Mode() const;
        auto Mode(winrt::Microsoft::UI::Xaml::Data::RelativeSourceMode const& value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Data::IRelativeSource>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Data_IRelativeSource<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Data_IRelativeSourceFactory
    {
        auto CreateInstance(winrt::Windows::Foundation::IInspectable const& baseInterface, winrt::Windows::Foundation::IInspectable& innerInterface) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Data::IRelativeSourceFactory>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Data_IRelativeSourceFactory<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Data_ISelectionInfo
    {
        auto SelectRange(winrt::Microsoft::UI::Xaml::Data::ItemIndexRange const& itemIndexRange) const;
        auto DeselectRange(winrt::Microsoft::UI::Xaml::Data::ItemIndexRange const& itemIndexRange) const;
        auto IsSelected(int32_t index) const;
        auto GetSelectedRanges() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Data::ISelectionInfo>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Data_ISelectionInfo<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Data_ISupportIncrementalLoading
    {
        auto LoadMoreItemsAsync(uint32_t count) const;
        [[nodiscard]] auto HasMoreItems() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Data::ISupportIncrementalLoading>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Data_ISupportIncrementalLoading<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Data_IValueConverter
    {
        auto Convert(winrt::Windows::Foundation::IInspectable const& value, winrt::Windows::UI::Xaml::Interop::TypeName const& targetType, winrt::Windows::Foundation::IInspectable const& parameter, param::hstring const& language) const;
        auto ConvertBack(winrt::Windows::Foundation::IInspectable const& value, winrt::Windows::UI::Xaml::Interop::TypeName const& targetType, winrt::Windows::Foundation::IInspectable const& parameter, param::hstring const& language) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Data::IValueConverter>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Data_IValueConverter<D>;
    };
    struct struct_Microsoft_UI_Xaml_Data_LoadMoreItemsResult
    {
        uint32_t Count;
    };
    template <> struct abi<Microsoft::UI::Xaml::Data::LoadMoreItemsResult>
    {
        using type = struct_Microsoft_UI_Xaml_Data_LoadMoreItemsResult;
    };
}
#endif
