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

#pragma once
#ifndef WINRT_Microsoft_UI_Xaml_Automation_Provider_0_H
#define WINRT_Microsoft_UI_Xaml_Automation_Provider_0_H
WINRT_EXPORT namespace winrt::Microsoft::UI::Xaml::Automation
{
    enum class AnnotationType : int32_t;
    struct AutomationProperty;
    enum class DockPosition : int32_t;
    enum class ExpandCollapseState : int32_t;
    enum class RowOrColumnMajor : int32_t;
    enum class ScrollAmount : int32_t;
    enum class SupportedTextSelection : int32_t;
    enum class SynchronizedInputType : int32_t;
    enum class ToggleState : int32_t;
    enum class WindowInteractionState : int32_t;
    enum class WindowVisualState : int32_t;
    enum class ZoomUnit : int32_t;
}
WINRT_EXPORT namespace winrt::Microsoft::UI::Xaml::Automation::Peers
{
    enum class AutomationNavigationDirection : int32_t;
}
WINRT_EXPORT namespace winrt::Microsoft::UI::Xaml::Automation::Text
{
    enum class TextPatternRangeEndpoint : int32_t;
    enum class TextUnit : int32_t;
}
WINRT_EXPORT namespace winrt::Windows::Foundation
{
    struct Point;
}
WINRT_EXPORT namespace winrt::Windows::UI
{
    struct Color;
}
WINRT_EXPORT namespace winrt::Microsoft::UI::Xaml::Automation::Provider
{
    struct IAnnotationProvider;
    struct ICustomNavigationProvider;
    struct IDockProvider;
    struct IDragProvider;
    struct IDropTargetProvider;
    struct IExpandCollapseProvider;
    struct IGridItemProvider;
    struct IGridProvider;
    struct IIRawElementProviderSimple;
    struct IInvokeProvider;
    struct IItemContainerProvider;
    struct IMultipleViewProvider;
    struct IObjectModelProvider;
    struct IRangeValueProvider;
    struct IScrollItemProvider;
    struct IScrollProvider;
    struct ISelectionItemProvider;
    struct ISelectionProvider;
    struct ISpreadsheetItemProvider;
    struct ISpreadsheetProvider;
    struct IStylesProvider;
    struct ISynchronizedInputProvider;
    struct ITableItemProvider;
    struct ITableProvider;
    struct ITextChildProvider;
    struct ITextEditProvider;
    struct ITextProvider;
    struct ITextProvider2;
    struct ITextRangeProvider;
    struct ITextRangeProvider2;
    struct IToggleProvider;
    struct ITransformProvider;
    struct ITransformProvider2;
    struct IValueProvider;
    struct IVirtualizedItemProvider;
    struct IWindowProvider;
    struct IRawElementProviderSimple;
}
namespace winrt::impl
{
    template <> struct category<winrt::Microsoft::UI::Xaml::Automation::Provider::IAnnotationProvider>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Automation::Provider::ICustomNavigationProvider>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Automation::Provider::IDockProvider>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Automation::Provider::IDragProvider>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Automation::Provider::IDropTargetProvider>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Automation::Provider::IExpandCollapseProvider>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Automation::Provider::IGridItemProvider>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Automation::Provider::IGridProvider>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Automation::Provider::IIRawElementProviderSimple>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Automation::Provider::IInvokeProvider>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Automation::Provider::IItemContainerProvider>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Automation::Provider::IMultipleViewProvider>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Automation::Provider::IObjectModelProvider>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Automation::Provider::IRangeValueProvider>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Automation::Provider::IScrollItemProvider>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Automation::Provider::IScrollProvider>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Automation::Provider::ISelectionItemProvider>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Automation::Provider::ISelectionProvider>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Automation::Provider::ISpreadsheetItemProvider>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Automation::Provider::ISpreadsheetProvider>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Automation::Provider::IStylesProvider>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Automation::Provider::ISynchronizedInputProvider>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Automation::Provider::ITableItemProvider>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Automation::Provider::ITableProvider>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Automation::Provider::ITextChildProvider>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Automation::Provider::ITextEditProvider>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Automation::Provider::ITextProvider>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Automation::Provider::ITextProvider2>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Automation::Provider::ITextRangeProvider>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Automation::Provider::ITextRangeProvider2>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Automation::Provider::IToggleProvider>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Automation::Provider::ITransformProvider>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Automation::Provider::ITransformProvider2>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Automation::Provider::IValueProvider>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Automation::Provider::IVirtualizedItemProvider>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Automation::Provider::IWindowProvider>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::UI::Xaml::Automation::Provider::IRawElementProviderSimple>{ using type = class_category; };
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Automation::Provider::IRawElementProviderSimple> = L"Microsoft.UI.Xaml.Automation.Provider.IRawElementProviderSimple";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Automation::Provider::IAnnotationProvider> = L"Microsoft.UI.Xaml.Automation.Provider.IAnnotationProvider";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Automation::Provider::ICustomNavigationProvider> = L"Microsoft.UI.Xaml.Automation.Provider.ICustomNavigationProvider";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Automation::Provider::IDockProvider> = L"Microsoft.UI.Xaml.Automation.Provider.IDockProvider";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Automation::Provider::IDragProvider> = L"Microsoft.UI.Xaml.Automation.Provider.IDragProvider";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Automation::Provider::IDropTargetProvider> = L"Microsoft.UI.Xaml.Automation.Provider.IDropTargetProvider";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Automation::Provider::IExpandCollapseProvider> = L"Microsoft.UI.Xaml.Automation.Provider.IExpandCollapseProvider";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Automation::Provider::IGridItemProvider> = L"Microsoft.UI.Xaml.Automation.Provider.IGridItemProvider";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Automation::Provider::IGridProvider> = L"Microsoft.UI.Xaml.Automation.Provider.IGridProvider";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Automation::Provider::IIRawElementProviderSimple> = L"Microsoft.UI.Xaml.Automation.Provider.IIRawElementProviderSimple";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Automation::Provider::IInvokeProvider> = L"Microsoft.UI.Xaml.Automation.Provider.IInvokeProvider";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Automation::Provider::IItemContainerProvider> = L"Microsoft.UI.Xaml.Automation.Provider.IItemContainerProvider";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Automation::Provider::IMultipleViewProvider> = L"Microsoft.UI.Xaml.Automation.Provider.IMultipleViewProvider";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Automation::Provider::IObjectModelProvider> = L"Microsoft.UI.Xaml.Automation.Provider.IObjectModelProvider";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Automation::Provider::IRangeValueProvider> = L"Microsoft.UI.Xaml.Automation.Provider.IRangeValueProvider";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Automation::Provider::IScrollItemProvider> = L"Microsoft.UI.Xaml.Automation.Provider.IScrollItemProvider";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Automation::Provider::IScrollProvider> = L"Microsoft.UI.Xaml.Automation.Provider.IScrollProvider";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Automation::Provider::ISelectionItemProvider> = L"Microsoft.UI.Xaml.Automation.Provider.ISelectionItemProvider";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Automation::Provider::ISelectionProvider> = L"Microsoft.UI.Xaml.Automation.Provider.ISelectionProvider";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Automation::Provider::ISpreadsheetItemProvider> = L"Microsoft.UI.Xaml.Automation.Provider.ISpreadsheetItemProvider";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Automation::Provider::ISpreadsheetProvider> = L"Microsoft.UI.Xaml.Automation.Provider.ISpreadsheetProvider";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Automation::Provider::IStylesProvider> = L"Microsoft.UI.Xaml.Automation.Provider.IStylesProvider";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Automation::Provider::ISynchronizedInputProvider> = L"Microsoft.UI.Xaml.Automation.Provider.ISynchronizedInputProvider";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Automation::Provider::ITableItemProvider> = L"Microsoft.UI.Xaml.Automation.Provider.ITableItemProvider";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Automation::Provider::ITableProvider> = L"Microsoft.UI.Xaml.Automation.Provider.ITableProvider";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Automation::Provider::ITextChildProvider> = L"Microsoft.UI.Xaml.Automation.Provider.ITextChildProvider";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Automation::Provider::ITextEditProvider> = L"Microsoft.UI.Xaml.Automation.Provider.ITextEditProvider";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Automation::Provider::ITextProvider> = L"Microsoft.UI.Xaml.Automation.Provider.ITextProvider";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Automation::Provider::ITextProvider2> = L"Microsoft.UI.Xaml.Automation.Provider.ITextProvider2";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Automation::Provider::ITextRangeProvider> = L"Microsoft.UI.Xaml.Automation.Provider.ITextRangeProvider";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Automation::Provider::ITextRangeProvider2> = L"Microsoft.UI.Xaml.Automation.Provider.ITextRangeProvider2";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Automation::Provider::IToggleProvider> = L"Microsoft.UI.Xaml.Automation.Provider.IToggleProvider";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Automation::Provider::ITransformProvider> = L"Microsoft.UI.Xaml.Automation.Provider.ITransformProvider";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Automation::Provider::ITransformProvider2> = L"Microsoft.UI.Xaml.Automation.Provider.ITransformProvider2";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Automation::Provider::IValueProvider> = L"Microsoft.UI.Xaml.Automation.Provider.IValueProvider";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Automation::Provider::IVirtualizedItemProvider> = L"Microsoft.UI.Xaml.Automation.Provider.IVirtualizedItemProvider";
    template <> inline constexpr auto& name_v<winrt::Microsoft::UI::Xaml::Automation::Provider::IWindowProvider> = L"Microsoft.UI.Xaml.Automation.Provider.IWindowProvider";
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Automation::Provider::IAnnotationProvider>{ 0x546AB18E,0x986D,0x5DEB,{ 0x8F,0x2A,0x2D,0x93,0x03,0xA4,0x30,0x06 } }; // 546AB18E-986D-5DEB-8F2A-2D9303A43006
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Automation::Provider::ICustomNavigationProvider>{ 0xCAD51322,0xFAA9,0x5A2B,{ 0x90,0xF0,0xB7,0x62,0xC4,0x61,0x78,0xB3 } }; // CAD51322-FAA9-5A2B-90F0-B762C46178B3
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Automation::Provider::IDockProvider>{ 0x9882B971,0x70EA,0x5C6D,{ 0xA8,0x18,0x7A,0x7A,0xB6,0x8C,0x6F,0x3B } }; // 9882B971-70EA-5C6D-A818-7A7AB68C6F3B
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Automation::Provider::IDragProvider>{ 0xC60BB643,0xA356,0x5132,{ 0xA2,0x58,0xFF,0xBA,0x6C,0x74,0x80,0xF2 } }; // C60BB643-A356-5132-A258-FFBA6C7480F2
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Automation::Provider::IDropTargetProvider>{ 0x9B2A9F3D,0xBBB1,0x510D,{ 0x99,0xE8,0x0E,0x0A,0xE1,0x4A,0x6E,0x3B } }; // 9B2A9F3D-BBB1-510D-99E8-0E0AE14A6E3B
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Automation::Provider::IExpandCollapseProvider>{ 0x6CEF349C,0xB181,0x5D0B,{ 0xB2,0x97,0xC3,0xB0,0x16,0x61,0x20,0xC3 } }; // 6CEF349C-B181-5D0B-B297-C3B0166120C3
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Automation::Provider::IGridItemProvider>{ 0xD2557A0E,0x6909,0x5170,{ 0xA6,0x80,0x60,0x72,0x8D,0xF3,0x39,0xB4 } }; // D2557A0E-6909-5170-A680-60728DF339B4
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Automation::Provider::IGridProvider>{ 0x50992D5E,0xD225,0x56E9,{ 0xA2,0x5A,0x78,0xC3,0x72,0xE8,0x19,0x55 } }; // 50992D5E-D225-56E9-A25A-78C372E81955
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Automation::Provider::IIRawElementProviderSimple>{ 0xF90BC239,0xADE2,0x55C9,{ 0xA8,0x38,0xA3,0xB0,0x57,0x97,0x63,0xC5 } }; // F90BC239-ADE2-55C9-A838-A3B0579763C5
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Automation::Provider::IInvokeProvider>{ 0x02481105,0x3378,0x544D,{ 0xB4,0xE1,0xA1,0xB3,0x68,0xAF,0xBC,0x02 } }; // 02481105-3378-544D-B4E1-A1B368AFBC02
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Automation::Provider::IItemContainerProvider>{ 0xAD297363,0x694E,0x5885,{ 0x99,0x7D,0xA2,0xD6,0xDF,0xF4,0x15,0xA7 } }; // AD297363-694E-5885-997D-A2D6DFF415A7
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Automation::Provider::IMultipleViewProvider>{ 0x60BE5484,0x3D8F,0x51FD,{ 0xBE,0xAB,0x42,0x34,0x22,0xEE,0x1E,0x03 } }; // 60BE5484-3D8F-51FD-BEAB-423422EE1E03
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Automation::Provider::IObjectModelProvider>{ 0x92953ED0,0x4BD8,0x5624,{ 0x8E,0x3D,0x78,0xD4,0x5F,0xDE,0x9C,0xF2 } }; // 92953ED0-4BD8-5624-8E3D-78D45FDE9CF2
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Automation::Provider::IRangeValueProvider>{ 0x729AE414,0x1E8F,0x5020,{ 0x82,0xBB,0xBB,0x57,0x4D,0x14,0x5F,0xD8 } }; // 729AE414-1E8F-5020-82BB-BB574D145FD8
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Automation::Provider::IScrollItemProvider>{ 0x8A6FB8EB,0xE5F1,0x58EB,{ 0x8E,0x72,0x8B,0x95,0xF2,0x36,0xFC,0x47 } }; // 8A6FB8EB-E5F1-58EB-8E72-8B95F236FC47
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Automation::Provider::IScrollProvider>{ 0x7E2E5AF3,0xFF50,0x5365,{ 0xBC,0xFE,0xEF,0x42,0x4B,0x2F,0xD5,0x90 } }; // 7E2E5AF3-FF50-5365-BCFE-EF424B2FD590
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Automation::Provider::ISelectionItemProvider>{ 0xC9DFDD81,0xD4AC,0x5D31,{ 0xBE,0x7F,0x24,0xFA,0xB1,0x60,0x60,0xE4 } }; // C9DFDD81-D4AC-5D31-BE7F-24FAB16060E4
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Automation::Provider::ISelectionProvider>{ 0x80D56D4E,0x0052,0x541F,{ 0x94,0x11,0x9D,0x17,0x78,0xB3,0xBF,0xCA } }; // 80D56D4E-0052-541F-9411-9D1778B3BFCA
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Automation::Provider::ISpreadsheetItemProvider>{ 0x51C1CE89,0xB21F,0x592C,{ 0x87,0x68,0x0A,0xCC,0xDE,0xFD,0x57,0x38 } }; // 51C1CE89-B21F-592C-8768-0ACCDEFD5738
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Automation::Provider::ISpreadsheetProvider>{ 0x1FF41BAC,0xD9E3,0x5E48,{ 0xB5,0xF8,0x9E,0xAB,0x0F,0xB2,0xD9,0xD8 } }; // 1FF41BAC-D9E3-5E48-B5F8-9EAB0FB2D9D8
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Automation::Provider::IStylesProvider>{ 0xD8895839,0x0048,0x54DE,{ 0x9C,0x1F,0x15,0x2D,0xE6,0x66,0x5E,0x80 } }; // D8895839-0048-54DE-9C1F-152DE6665E80
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Automation::Provider::ISynchronizedInputProvider>{ 0xC5615613,0x936D,0x5289,{ 0xA1,0x90,0xE8,0x20,0x57,0xE0,0xFF,0x5A } }; // C5615613-936D-5289-A190-E82057E0FF5A
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Automation::Provider::ITableItemProvider>{ 0x6CE6F038,0x54D4,0x5553,{ 0xA4,0xAD,0x03,0xCB,0xCF,0x35,0x81,0x97 } }; // 6CE6F038-54D4-5553-A4AD-03CBCF358197
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Automation::Provider::ITableProvider>{ 0x9ABA6724,0xB22D,0x5DB8,{ 0x8A,0xBB,0x81,0xF9,0x11,0xF1,0x8A,0xF2 } }; // 9ABA6724-B22D-5DB8-8ABB-81F911F18AF2
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Automation::Provider::ITextChildProvider>{ 0x7C72E55F,0xF75D,0x5522,{ 0xAE,0xB5,0xC1,0xF8,0x2C,0x32,0x93,0x3B } }; // 7C72E55F-F75D-5522-AEB5-C1F82C32933B
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Automation::Provider::ITextEditProvider>{ 0x7F09BBE8,0xBEA7,0x5DD3,{ 0xBA,0x6B,0x28,0xDB,0xB4,0x02,0xFA,0xD4 } }; // 7F09BBE8-BEA7-5DD3-BA6B-28DBB402FAD4
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Automation::Provider::ITextProvider>{ 0x37E7DCE6,0xFE7A,0x56A7,{ 0xA4,0x7A,0x94,0x62,0x87,0x2C,0x67,0xEF } }; // 37E7DCE6-FE7A-56A7-A47A-9462872C67EF
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Automation::Provider::ITextProvider2>{ 0x6844F012,0xC7E6,0x5763,{ 0xBA,0x04,0x5B,0x6D,0xB9,0x10,0xCD,0x34 } }; // 6844F012-C7E6-5763-BA04-5B6DB910CD34
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Automation::Provider::ITextRangeProvider>{ 0x84210361,0x6CE2,0x5084,{ 0xBF,0x3B,0x28,0xAF,0xA6,0xE9,0x85,0x1F } }; // 84210361-6CE2-5084-BF3B-28AFA6E9851F
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Automation::Provider::ITextRangeProvider2>{ 0x34D4A80E,0x36BB,0x5362,{ 0xA5,0x3B,0x49,0x04,0x28,0xA8,0xB3,0x67 } }; // 34D4A80E-36BB-5362-A53B-490428A8B367
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Automation::Provider::IToggleProvider>{ 0x021080C2,0x30A9,0x52EF,{ 0xBC,0x32,0x2B,0x79,0x84,0x7B,0x6B,0xA7 } }; // 021080C2-30A9-52EF-BC32-2B79847B6BA7
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Automation::Provider::ITransformProvider>{ 0x6FD76988,0x8F52,0x5EF2,{ 0xA8,0x26,0x9C,0x8C,0x49,0x51,0xC9,0x11 } }; // 6FD76988-8F52-5EF2-A826-9C8C4951C911
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Automation::Provider::ITransformProvider2>{ 0x7D91D02D,0x8401,0x5CF8,{ 0xBB,0xC4,0x47,0x39,0x1A,0x52,0x42,0x15 } }; // 7D91D02D-8401-5CF8-BBC4-47391A524215
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Automation::Provider::IValueProvider>{ 0x984F11CF,0x4611,0x588E,{ 0xB5,0x2E,0xB9,0x6A,0x12,0x32,0x2C,0x71 } }; // 984F11CF-4611-588E-B52E-B96A12322C71
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Automation::Provider::IVirtualizedItemProvider>{ 0x098F858A,0x2E63,0x5985,{ 0xAB,0x87,0xF8,0xEB,0xDB,0x1C,0x57,0x40 } }; // 098F858A-2E63-5985-AB87-F8EBDB1C5740
    template <> inline constexpr guid guid_v<winrt::Microsoft::UI::Xaml::Automation::Provider::IWindowProvider>{ 0x83F1DF99,0x9DDF,0x575E,{ 0xA6,0x51,0x2E,0xE6,0x57,0xFD,0x16,0xE0 } }; // 83F1DF99-9DDF-575E-A651-2EE657FD16E0
    template <> struct default_interface<winrt::Microsoft::UI::Xaml::Automation::Provider::IRawElementProviderSimple>{ using type = winrt::Microsoft::UI::Xaml::Automation::Provider::IIRawElementProviderSimple; };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Automation::Provider::IAnnotationProvider>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_AnnotationTypeId(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_AnnotationTypeName(void**) noexcept = 0;
            virtual int32_t __stdcall get_Author(void**) noexcept = 0;
            virtual int32_t __stdcall get_DateTime(void**) noexcept = 0;
            virtual int32_t __stdcall get_Target(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Automation::Provider::ICustomNavigationProvider>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall NavigateCustom(int32_t, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Automation::Provider::IDockProvider>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_DockPosition(int32_t*) noexcept = 0;
            virtual int32_t __stdcall SetDockPosition(int32_t) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Automation::Provider::IDragProvider>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_IsGrabbed(bool*) noexcept = 0;
            virtual int32_t __stdcall get_DropEffect(void**) noexcept = 0;
            virtual int32_t __stdcall get_DropEffects(uint32_t* __valueSize, void***) noexcept = 0;
            virtual int32_t __stdcall GetGrabbedItems(uint32_t* __resultSize, void***) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Automation::Provider::IDropTargetProvider>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_DropEffect(void**) noexcept = 0;
            virtual int32_t __stdcall get_DropEffects(uint32_t* __valueSize, void***) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Automation::Provider::IExpandCollapseProvider>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_ExpandCollapseState(int32_t*) noexcept = 0;
            virtual int32_t __stdcall Collapse() noexcept = 0;
            virtual int32_t __stdcall Expand() noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Automation::Provider::IGridItemProvider>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Column(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_ColumnSpan(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_ContainingGrid(void**) noexcept = 0;
            virtual int32_t __stdcall get_Row(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_RowSpan(int32_t*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Automation::Provider::IGridProvider>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_ColumnCount(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_RowCount(int32_t*) noexcept = 0;
            virtual int32_t __stdcall GetItem(int32_t, int32_t, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Automation::Provider::IIRawElementProviderSimple>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Automation::Provider::IInvokeProvider>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall Invoke() noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Automation::Provider::IItemContainerProvider>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall FindItemByProperty(void*, void*, void*, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Automation::Provider::IMultipleViewProvider>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_CurrentView(int32_t*) noexcept = 0;
            virtual int32_t __stdcall GetSupportedViews(uint32_t* __resultSize, int32_t**) noexcept = 0;
            virtual int32_t __stdcall GetViewName(int32_t, void**) noexcept = 0;
            virtual int32_t __stdcall SetCurrentView(int32_t) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Automation::Provider::IObjectModelProvider>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall GetUnderlyingObjectModel(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Automation::Provider::IRangeValueProvider>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_IsReadOnly(bool*) noexcept = 0;
            virtual int32_t __stdcall get_LargeChange(double*) noexcept = 0;
            virtual int32_t __stdcall get_Maximum(double*) noexcept = 0;
            virtual int32_t __stdcall get_Minimum(double*) noexcept = 0;
            virtual int32_t __stdcall get_SmallChange(double*) noexcept = 0;
            virtual int32_t __stdcall get_Value(double*) noexcept = 0;
            virtual int32_t __stdcall SetValue(double) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Automation::Provider::IScrollItemProvider>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall ScrollIntoView() noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Automation::Provider::IScrollProvider>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_HorizontallyScrollable(bool*) noexcept = 0;
            virtual int32_t __stdcall get_HorizontalScrollPercent(double*) noexcept = 0;
            virtual int32_t __stdcall get_HorizontalViewSize(double*) noexcept = 0;
            virtual int32_t __stdcall get_VerticallyScrollable(bool*) noexcept = 0;
            virtual int32_t __stdcall get_VerticalScrollPercent(double*) noexcept = 0;
            virtual int32_t __stdcall get_VerticalViewSize(double*) noexcept = 0;
            virtual int32_t __stdcall Scroll(int32_t, int32_t) noexcept = 0;
            virtual int32_t __stdcall SetScrollPercent(double, double) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Automation::Provider::ISelectionItemProvider>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_IsSelected(bool*) noexcept = 0;
            virtual int32_t __stdcall get_SelectionContainer(void**) noexcept = 0;
            virtual int32_t __stdcall AddToSelection() noexcept = 0;
            virtual int32_t __stdcall RemoveFromSelection() noexcept = 0;
            virtual int32_t __stdcall Select() noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Automation::Provider::ISelectionProvider>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_CanSelectMultiple(bool*) noexcept = 0;
            virtual int32_t __stdcall get_IsSelectionRequired(bool*) noexcept = 0;
            virtual int32_t __stdcall GetSelection(uint32_t* __resultSize, void***) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Automation::Provider::ISpreadsheetItemProvider>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Formula(void**) noexcept = 0;
            virtual int32_t __stdcall GetAnnotationObjects(uint32_t* __resultSize, void***) noexcept = 0;
            virtual int32_t __stdcall GetAnnotationTypes(uint32_t* __resultSize, int32_t**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Automation::Provider::ISpreadsheetProvider>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall GetItemByName(void*, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Automation::Provider::IStylesProvider>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_ExtendedProperties(void**) noexcept = 0;
            virtual int32_t __stdcall get_FillColor(struct struct_Windows_UI_Color*) noexcept = 0;
            virtual int32_t __stdcall get_FillPatternColor(struct struct_Windows_UI_Color*) noexcept = 0;
            virtual int32_t __stdcall get_FillPatternStyle(void**) noexcept = 0;
            virtual int32_t __stdcall get_Shape(void**) noexcept = 0;
            virtual int32_t __stdcall get_StyleId(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_StyleName(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Automation::Provider::ISynchronizedInputProvider>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall Cancel() noexcept = 0;
            virtual int32_t __stdcall StartListening(int32_t) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Automation::Provider::ITableItemProvider>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall GetColumnHeaderItems(uint32_t* __resultSize, void***) noexcept = 0;
            virtual int32_t __stdcall GetRowHeaderItems(uint32_t* __resultSize, void***) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Automation::Provider::ITableProvider>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_RowOrColumnMajor(int32_t*) noexcept = 0;
            virtual int32_t __stdcall GetColumnHeaders(uint32_t* __resultSize, void***) noexcept = 0;
            virtual int32_t __stdcall GetRowHeaders(uint32_t* __resultSize, void***) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Automation::Provider::ITextChildProvider>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_TextContainer(void**) noexcept = 0;
            virtual int32_t __stdcall get_TextRange(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Automation::Provider::ITextEditProvider>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall GetActiveComposition(void**) noexcept = 0;
            virtual int32_t __stdcall GetConversionTarget(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Automation::Provider::ITextProvider>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_DocumentRange(void**) noexcept = 0;
            virtual int32_t __stdcall get_SupportedTextSelection(int32_t*) noexcept = 0;
            virtual int32_t __stdcall GetSelection(uint32_t* __resultSize, void***) noexcept = 0;
            virtual int32_t __stdcall GetVisibleRanges(uint32_t* __resultSize, void***) noexcept = 0;
            virtual int32_t __stdcall RangeFromChild(void*, void**) noexcept = 0;
            virtual int32_t __stdcall RangeFromPoint(winrt::Windows::Foundation::Point, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Automation::Provider::ITextProvider2>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall RangeFromAnnotation(void*, void**) noexcept = 0;
            virtual int32_t __stdcall GetCaretRange(bool*, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Automation::Provider::ITextRangeProvider>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall Clone(void**) noexcept = 0;
            virtual int32_t __stdcall Compare(void*, bool*) noexcept = 0;
            virtual int32_t __stdcall CompareEndpoints(int32_t, void*, int32_t, int32_t*) noexcept = 0;
            virtual int32_t __stdcall ExpandToEnclosingUnit(int32_t) noexcept = 0;
            virtual int32_t __stdcall FindAttribute(int32_t, void*, bool, void**) noexcept = 0;
            virtual int32_t __stdcall FindText(void*, bool, bool, void**) noexcept = 0;
            virtual int32_t __stdcall GetAttributeValue(int32_t, void**) noexcept = 0;
            virtual int32_t __stdcall GetBoundingRectangles(uint32_t*, double**) noexcept = 0;
            virtual int32_t __stdcall GetEnclosingElement(void**) noexcept = 0;
            virtual int32_t __stdcall GetText(int32_t, void**) noexcept = 0;
            virtual int32_t __stdcall Move(int32_t, int32_t, int32_t*) noexcept = 0;
            virtual int32_t __stdcall MoveEndpointByUnit(int32_t, int32_t, int32_t, int32_t*) noexcept = 0;
            virtual int32_t __stdcall MoveEndpointByRange(int32_t, void*, int32_t) noexcept = 0;
            virtual int32_t __stdcall Select() noexcept = 0;
            virtual int32_t __stdcall AddToSelection() noexcept = 0;
            virtual int32_t __stdcall RemoveFromSelection() noexcept = 0;
            virtual int32_t __stdcall ScrollIntoView(bool) noexcept = 0;
            virtual int32_t __stdcall GetChildren(uint32_t* __resultSize, void***) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Automation::Provider::ITextRangeProvider2>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall ShowContextMenu() noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Automation::Provider::IToggleProvider>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_ToggleState(int32_t*) noexcept = 0;
            virtual int32_t __stdcall Toggle() noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Automation::Provider::ITransformProvider>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_CanMove(bool*) noexcept = 0;
            virtual int32_t __stdcall get_CanResize(bool*) noexcept = 0;
            virtual int32_t __stdcall get_CanRotate(bool*) noexcept = 0;
            virtual int32_t __stdcall Move(double, double) noexcept = 0;
            virtual int32_t __stdcall Resize(double, double) noexcept = 0;
            virtual int32_t __stdcall Rotate(double) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Automation::Provider::ITransformProvider2>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_CanZoom(bool*) noexcept = 0;
            virtual int32_t __stdcall get_ZoomLevel(double*) noexcept = 0;
            virtual int32_t __stdcall get_MaxZoom(double*) noexcept = 0;
            virtual int32_t __stdcall get_MinZoom(double*) noexcept = 0;
            virtual int32_t __stdcall Zoom(double) noexcept = 0;
            virtual int32_t __stdcall ZoomByUnit(int32_t) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Automation::Provider::IValueProvider>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_IsReadOnly(bool*) noexcept = 0;
            virtual int32_t __stdcall get_Value(void**) noexcept = 0;
            virtual int32_t __stdcall SetValue(void*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Automation::Provider::IVirtualizedItemProvider>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall Realize() noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::UI::Xaml::Automation::Provider::IWindowProvider>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_IsModal(bool*) noexcept = 0;
            virtual int32_t __stdcall get_IsTopmost(bool*) noexcept = 0;
            virtual int32_t __stdcall get_Maximizable(bool*) noexcept = 0;
            virtual int32_t __stdcall get_Minimizable(bool*) noexcept = 0;
            virtual int32_t __stdcall get_InteractionState(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_VisualState(int32_t*) noexcept = 0;
            virtual int32_t __stdcall Close() noexcept = 0;
            virtual int32_t __stdcall SetVisualState(int32_t) noexcept = 0;
            virtual int32_t __stdcall WaitForInputIdle(int32_t, bool*) noexcept = 0;
        };
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Automation_Provider_IAnnotationProvider
    {
        [[nodiscard]] auto AnnotationTypeId() const;
        [[nodiscard]] auto AnnotationTypeName() const;
        [[nodiscard]] auto Author() const;
        [[nodiscard]] auto DateTime() const;
        [[nodiscard]] auto Target() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Automation::Provider::IAnnotationProvider>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Automation_Provider_IAnnotationProvider<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Automation_Provider_ICustomNavigationProvider
    {
        auto NavigateCustom(winrt::Microsoft::UI::Xaml::Automation::Peers::AutomationNavigationDirection const& direction) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Automation::Provider::ICustomNavigationProvider>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Automation_Provider_ICustomNavigationProvider<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Automation_Provider_IDockProvider
    {
        [[nodiscard]] auto DockPosition() const;
        auto SetDockPosition(winrt::Microsoft::UI::Xaml::Automation::DockPosition const& dockPosition) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Automation::Provider::IDockProvider>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Automation_Provider_IDockProvider<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Automation_Provider_IDragProvider
    {
        [[nodiscard]] auto IsGrabbed() const;
        [[nodiscard]] auto DropEffect() const;
        [[nodiscard]] auto DropEffects() const;
        auto GetGrabbedItems() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Automation::Provider::IDragProvider>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Automation_Provider_IDragProvider<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Automation_Provider_IDropTargetProvider
    {
        [[nodiscard]] auto DropEffect() const;
        [[nodiscard]] auto DropEffects() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Automation::Provider::IDropTargetProvider>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Automation_Provider_IDropTargetProvider<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Automation_Provider_IExpandCollapseProvider
    {
        [[nodiscard]] auto ExpandCollapseState() const;
        auto Collapse() const;
        auto Expand() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Automation::Provider::IExpandCollapseProvider>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Automation_Provider_IExpandCollapseProvider<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Automation_Provider_IGridItemProvider
    {
        [[nodiscard]] auto Column() const;
        [[nodiscard]] auto ColumnSpan() const;
        [[nodiscard]] auto ContainingGrid() const;
        [[nodiscard]] auto Row() const;
        [[nodiscard]] auto RowSpan() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Automation::Provider::IGridItemProvider>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Automation_Provider_IGridItemProvider<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Automation_Provider_IGridProvider
    {
        [[nodiscard]] auto ColumnCount() const;
        [[nodiscard]] auto RowCount() const;
        auto GetItem(int32_t row, int32_t column) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Automation::Provider::IGridProvider>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Automation_Provider_IGridProvider<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Automation_Provider_IIRawElementProviderSimple
    {
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Automation::Provider::IIRawElementProviderSimple>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Automation_Provider_IIRawElementProviderSimple<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Automation_Provider_IInvokeProvider
    {
        auto Invoke() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Automation::Provider::IInvokeProvider>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Automation_Provider_IInvokeProvider<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Automation_Provider_IItemContainerProvider
    {
        auto FindItemByProperty(winrt::Microsoft::UI::Xaml::Automation::Provider::IRawElementProviderSimple const& startAfter, winrt::Microsoft::UI::Xaml::Automation::AutomationProperty const& automationProperty, winrt::Windows::Foundation::IInspectable const& value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Automation::Provider::IItemContainerProvider>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Automation_Provider_IItemContainerProvider<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Automation_Provider_IMultipleViewProvider
    {
        [[nodiscard]] auto CurrentView() const;
        auto GetSupportedViews() const;
        auto GetViewName(int32_t viewId) const;
        auto SetCurrentView(int32_t viewId) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Automation::Provider::IMultipleViewProvider>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Automation_Provider_IMultipleViewProvider<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Automation_Provider_IObjectModelProvider
    {
        auto GetUnderlyingObjectModel() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Automation::Provider::IObjectModelProvider>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Automation_Provider_IObjectModelProvider<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Automation_Provider_IRangeValueProvider
    {
        [[nodiscard]] auto IsReadOnly() const;
        [[nodiscard]] auto LargeChange() const;
        [[nodiscard]] auto Maximum() const;
        [[nodiscard]] auto Minimum() const;
        [[nodiscard]] auto SmallChange() const;
        [[nodiscard]] auto Value() const;
        auto SetValue(double value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Automation::Provider::IRangeValueProvider>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Automation_Provider_IRangeValueProvider<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Automation_Provider_IScrollItemProvider
    {
        auto ScrollIntoView() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Automation::Provider::IScrollItemProvider>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Automation_Provider_IScrollItemProvider<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Automation_Provider_IScrollProvider
    {
        [[nodiscard]] auto HorizontallyScrollable() const;
        [[nodiscard]] auto HorizontalScrollPercent() const;
        [[nodiscard]] auto HorizontalViewSize() const;
        [[nodiscard]] auto VerticallyScrollable() const;
        [[nodiscard]] auto VerticalScrollPercent() const;
        [[nodiscard]] auto VerticalViewSize() const;
        auto Scroll(winrt::Microsoft::UI::Xaml::Automation::ScrollAmount const& horizontalAmount, winrt::Microsoft::UI::Xaml::Automation::ScrollAmount const& verticalAmount) const;
        auto SetScrollPercent(double horizontalPercent, double verticalPercent) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Automation::Provider::IScrollProvider>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Automation_Provider_IScrollProvider<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Automation_Provider_ISelectionItemProvider
    {
        [[nodiscard]] auto IsSelected() const;
        [[nodiscard]] auto SelectionContainer() const;
        auto AddToSelection() const;
        auto RemoveFromSelection() const;
        auto Select() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Automation::Provider::ISelectionItemProvider>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Automation_Provider_ISelectionItemProvider<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Automation_Provider_ISelectionProvider
    {
        [[nodiscard]] auto CanSelectMultiple() const;
        [[nodiscard]] auto IsSelectionRequired() const;
        auto GetSelection() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Automation::Provider::ISelectionProvider>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Automation_Provider_ISelectionProvider<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Automation_Provider_ISpreadsheetItemProvider
    {
        [[nodiscard]] auto Formula() const;
        auto GetAnnotationObjects() const;
        auto GetAnnotationTypes() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Automation::Provider::ISpreadsheetItemProvider>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Automation_Provider_ISpreadsheetItemProvider<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Automation_Provider_ISpreadsheetProvider
    {
        auto GetItemByName(param::hstring const& name) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Automation::Provider::ISpreadsheetProvider>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Automation_Provider_ISpreadsheetProvider<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Automation_Provider_IStylesProvider
    {
        [[nodiscard]] auto ExtendedProperties() const;
        [[nodiscard]] auto FillColor() const;
        [[nodiscard]] auto FillPatternColor() const;
        [[nodiscard]] auto FillPatternStyle() const;
        [[nodiscard]] auto Shape() const;
        [[nodiscard]] auto StyleId() const;
        [[nodiscard]] auto StyleName() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Automation::Provider::IStylesProvider>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Automation_Provider_IStylesProvider<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Automation_Provider_ISynchronizedInputProvider
    {
        auto Cancel() const;
        auto StartListening(winrt::Microsoft::UI::Xaml::Automation::SynchronizedInputType const& inputType) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Automation::Provider::ISynchronizedInputProvider>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Automation_Provider_ISynchronizedInputProvider<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Automation_Provider_ITableItemProvider
    {
        auto GetColumnHeaderItems() const;
        auto GetRowHeaderItems() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Automation::Provider::ITableItemProvider>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Automation_Provider_ITableItemProvider<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Automation_Provider_ITableProvider
    {
        [[nodiscard]] auto RowOrColumnMajor() const;
        auto GetColumnHeaders() const;
        auto GetRowHeaders() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Automation::Provider::ITableProvider>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Automation_Provider_ITableProvider<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Automation_Provider_ITextChildProvider
    {
        [[nodiscard]] auto TextContainer() const;
        [[nodiscard]] auto TextRange() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Automation::Provider::ITextChildProvider>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Automation_Provider_ITextChildProvider<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Automation_Provider_ITextEditProvider
    {
        auto GetActiveComposition() const;
        auto GetConversionTarget() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Automation::Provider::ITextEditProvider>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Automation_Provider_ITextEditProvider<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Automation_Provider_ITextProvider
    {
        [[nodiscard]] auto DocumentRange() const;
        [[nodiscard]] auto SupportedTextSelection() const;
        auto GetSelection() const;
        auto GetVisibleRanges() const;
        auto RangeFromChild(winrt::Microsoft::UI::Xaml::Automation::Provider::IRawElementProviderSimple const& childElement) const;
        auto RangeFromPoint(winrt::Windows::Foundation::Point const& screenLocation) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Automation::Provider::ITextProvider>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Automation_Provider_ITextProvider<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Automation_Provider_ITextProvider2
    {
        auto RangeFromAnnotation(winrt::Microsoft::UI::Xaml::Automation::Provider::IRawElementProviderSimple const& annotationElement) const;
        auto GetCaretRange(bool& isActive) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Automation::Provider::ITextProvider2>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Automation_Provider_ITextProvider2<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Automation_Provider_ITextRangeProvider
    {
        auto Clone() const;
        auto Compare(winrt::Microsoft::UI::Xaml::Automation::Provider::ITextRangeProvider const& textRangeProvider) const;
        auto CompareEndpoints(winrt::Microsoft::UI::Xaml::Automation::Text::TextPatternRangeEndpoint const& endpoint, winrt::Microsoft::UI::Xaml::Automation::Provider::ITextRangeProvider const& textRangeProvider, winrt::Microsoft::UI::Xaml::Automation::Text::TextPatternRangeEndpoint const& targetEndpoint) const;
        auto ExpandToEnclosingUnit(winrt::Microsoft::UI::Xaml::Automation::Text::TextUnit const& unit) const;
        auto FindAttribute(int32_t attributeId, winrt::Windows::Foundation::IInspectable const& value, bool backward) const;
        auto FindText(param::hstring const& text, bool backward, bool ignoreCase) const;
        auto GetAttributeValue(int32_t attributeId) const;
        auto GetBoundingRectangles(com_array<double>& returnValue) const;
        auto GetEnclosingElement() const;
        auto GetText(int32_t maxLength) const;
        auto Move(winrt::Microsoft::UI::Xaml::Automation::Text::TextUnit const& unit, int32_t count) const;
        auto MoveEndpointByUnit(winrt::Microsoft::UI::Xaml::Automation::Text::TextPatternRangeEndpoint const& endpoint, winrt::Microsoft::UI::Xaml::Automation::Text::TextUnit const& unit, int32_t count) const;
        auto MoveEndpointByRange(winrt::Microsoft::UI::Xaml::Automation::Text::TextPatternRangeEndpoint const& endpoint, winrt::Microsoft::UI::Xaml::Automation::Provider::ITextRangeProvider const& textRangeProvider, winrt::Microsoft::UI::Xaml::Automation::Text::TextPatternRangeEndpoint const& targetEndpoint) const;
        auto Select() const;
        auto AddToSelection() const;
        auto RemoveFromSelection() const;
        auto ScrollIntoView(bool alignToTop) const;
        auto GetChildren() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Automation::Provider::ITextRangeProvider>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Automation_Provider_ITextRangeProvider<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Automation_Provider_ITextRangeProvider2
    {
        auto ShowContextMenu() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Automation::Provider::ITextRangeProvider2>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Automation_Provider_ITextRangeProvider2<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Automation_Provider_IToggleProvider
    {
        [[nodiscard]] auto ToggleState() const;
        auto Toggle() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Automation::Provider::IToggleProvider>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Automation_Provider_IToggleProvider<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Automation_Provider_ITransformProvider
    {
        [[nodiscard]] auto CanMove() const;
        [[nodiscard]] auto CanResize() const;
        [[nodiscard]] auto CanRotate() const;
        auto Move(double x, double y) const;
        auto Resize(double width, double height) const;
        auto Rotate(double degrees) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Automation::Provider::ITransformProvider>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Automation_Provider_ITransformProvider<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Automation_Provider_ITransformProvider2
    {
        [[nodiscard]] auto CanZoom() const;
        [[nodiscard]] auto ZoomLevel() const;
        [[nodiscard]] auto MaxZoom() const;
        [[nodiscard]] auto MinZoom() const;
        auto Zoom(double zoom) const;
        auto ZoomByUnit(winrt::Microsoft::UI::Xaml::Automation::ZoomUnit const& zoomUnit) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Automation::Provider::ITransformProvider2>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Automation_Provider_ITransformProvider2<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Automation_Provider_IValueProvider
    {
        [[nodiscard]] auto IsReadOnly() const;
        [[nodiscard]] auto Value() const;
        auto SetValue(param::hstring const& value) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Automation::Provider::IValueProvider>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Automation_Provider_IValueProvider<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Automation_Provider_IVirtualizedItemProvider
    {
        auto Realize() const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Automation::Provider::IVirtualizedItemProvider>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Automation_Provider_IVirtualizedItemProvider<D>;
    };
    template <typename D>
    struct consume_Microsoft_UI_Xaml_Automation_Provider_IWindowProvider
    {
        [[nodiscard]] auto IsModal() const;
        [[nodiscard]] auto IsTopmost() const;
        [[nodiscard]] auto Maximizable() const;
        [[nodiscard]] auto Minimizable() const;
        [[nodiscard]] auto InteractionState() const;
        [[nodiscard]] auto VisualState() const;
        auto Close() const;
        auto SetVisualState(winrt::Microsoft::UI::Xaml::Automation::WindowVisualState const& state) const;
        auto WaitForInputIdle(int32_t milliseconds) const;
    };
    template <> struct consume<winrt::Microsoft::UI::Xaml::Automation::Provider::IWindowProvider>
    {
        template <typename D> using type = consume_Microsoft_UI_Xaml_Automation_Provider_IWindowProvider<D>;
    };
}
#endif
