// C++/WinRT v2.0.250303.1

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

#pragma once
#ifndef WINRT_Windows_UI_Input_Preview_Text_2_H
#define WINRT_Windows_UI_Input_Preview_Text_2_H
#include "winrt/impl/Windows.UI.2.h"
#include "winrt/impl/Windows.UI.Text.2.h"
#include "winrt/impl/Windows.UI.Input.Preview.Text.1.h"
WINRT_EXPORT namespace winrt::Windows::UI::Input::Preview::Text
{
    struct TextBoxId
    {
        uint32_t Value {};
    };
    inline bool operator==(TextBoxId const& left, TextBoxId const& right) noexcept
    {
        return left.Value == right.Value;
    }
    inline bool operator!=(TextBoxId const& left, TextBoxId const& right) noexcept
    {
        return !(left == right);
    }
    struct TextInputServiceSubscription
    {
        winrt::Windows::UI::Input::Preview::Text::TextBoxFeatures requiredEnabledFeatures {};
        winrt::Windows::UI::Input::Preview::Text::TextBoxFeatures requiredDisabledFeatures {};
    };
    inline bool operator==(TextInputServiceSubscription const& left, TextInputServiceSubscription const& right) noexcept
    {
        return left.requiredEnabledFeatures == right.requiredEnabledFeatures && left.requiredDisabledFeatures == right.requiredDisabledFeatures;
    }
    inline bool operator!=(TextInputServiceSubscription const& left, TextInputServiceSubscription const& right) noexcept
    {
        return !(left == right);
    }
    struct TextStyle
    {
        winrt::Windows::UI::Input::Preview::Text::TextStyleAttributes mask {};
        winrt::Windows::UI::Color textColor {};
        winrt::Windows::UI::Color backgroundColor {};
        winrt::Windows::UI::Color underlineColor {};
        winrt::Windows::UI::Text::UnderlineType underlineType {};
    };
    inline bool operator==(TextStyle const& left, TextStyle const& right) noexcept
    {
        return left.mask == right.mask && left.textColor == right.textColor && left.backgroundColor == right.backgroundColor && left.underlineColor == right.underlineColor && left.underlineType == right.underlineType;
    }
    inline bool operator!=(TextStyle const& left, TextStyle const& right) noexcept
    {
        return !(left == right);
    }
    struct WINRT_IMPL_EMPTY_BASES ConversionModeChangedEventArgs : winrt::Windows::UI::Input::Preview::Text::IConversionModeChangedEventArgs
    {
        ConversionModeChangedEventArgs(std::nullptr_t) noexcept {}
        ConversionModeChangedEventArgs(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Windows::UI::Input::Preview::Text::IConversionModeChangedEventArgs(ptr, take_ownership_from_abi) {}
    };
    struct WINRT_IMPL_EMPTY_BASES FocusEnteredEventArgs : winrt::Windows::UI::Input::Preview::Text::IFocusEnteredEventArgs
    {
        FocusEnteredEventArgs(std::nullptr_t) noexcept {}
        FocusEnteredEventArgs(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Windows::UI::Input::Preview::Text::IFocusEnteredEventArgs(ptr, take_ownership_from_abi) {}
    };
    struct WINRT_IMPL_EMPTY_BASES InputDelegationModeChangedEventArgs : winrt::Windows::UI::Input::Preview::Text::IInputDelegationModeChangedEventArgs
    {
        InputDelegationModeChangedEventArgs(std::nullptr_t) noexcept {}
        InputDelegationModeChangedEventArgs(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Windows::UI::Input::Preview::Text::IInputDelegationModeChangedEventArgs(ptr, take_ownership_from_abi) {}
    };
    struct WINRT_IMPL_EMPTY_BASES KeyEventReceivedEventArgs : winrt::Windows::UI::Input::Preview::Text::IKeyEventReceivedEventArgs
    {
        KeyEventReceivedEventArgs(std::nullptr_t) noexcept {}
        KeyEventReceivedEventArgs(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Windows::UI::Input::Preview::Text::IKeyEventReceivedEventArgs(ptr, take_ownership_from_abi) {}
    };
    struct WINRT_IMPL_EMPTY_BASES KeyboardInputProcessor : winrt::Windows::UI::Input::Preview::Text::IKeyboardInputProcessor
    {
        KeyboardInputProcessor(std::nullptr_t) noexcept {}
        KeyboardInputProcessor(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Windows::UI::Input::Preview::Text::IKeyboardInputProcessor(ptr, take_ownership_from_abi) {}
    };
    struct WINRT_IMPL_EMPTY_BASES ReconversionRequestedEventArgs : winrt::Windows::UI::Input::Preview::Text::IReconversionRequestedEventArgs
    {
        ReconversionRequestedEventArgs(std::nullptr_t) noexcept {}
        ReconversionRequestedEventArgs(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Windows::UI::Input::Preview::Text::IReconversionRequestedEventArgs(ptr, take_ownership_from_abi) {}
    };
    struct WINRT_IMPL_EMPTY_BASES TextBoxContentChangedEventArgs : winrt::Windows::UI::Input::Preview::Text::ITextBoxContentChangedEventArgs
    {
        TextBoxContentChangedEventArgs(std::nullptr_t) noexcept {}
        TextBoxContentChangedEventArgs(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Windows::UI::Input::Preview::Text::ITextBoxContentChangedEventArgs(ptr, take_ownership_from_abi) {}
    };
    struct WINRT_IMPL_EMPTY_BASES TextBoxInfo : winrt::Windows::UI::Input::Preview::Text::ITextBoxInfo
    {
        TextBoxInfo(std::nullptr_t) noexcept {}
        TextBoxInfo(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Windows::UI::Input::Preview::Text::ITextBoxInfo(ptr, take_ownership_from_abi) {}
    };
    struct WINRT_IMPL_EMPTY_BASES TextBoxInfoChangedEventArgs : winrt::Windows::UI::Input::Preview::Text::ITextBoxInfoChangedEventArgs
    {
        TextBoxInfoChangedEventArgs(std::nullptr_t) noexcept {}
        TextBoxInfoChangedEventArgs(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Windows::UI::Input::Preview::Text::ITextBoxInfoChangedEventArgs(ptr, take_ownership_from_abi) {}
    };
    struct WINRT_IMPL_EMPTY_BASES TextComposition : winrt::Windows::UI::Input::Preview::Text::ITextComposition
    {
        TextComposition(std::nullptr_t) noexcept {}
        TextComposition(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Windows::UI::Input::Preview::Text::ITextComposition(ptr, take_ownership_from_abi) {}
    };
    struct WINRT_IMPL_EMPTY_BASES TextCompositionSegment : winrt::Windows::UI::Input::Preview::Text::ITextCompositionSegment
    {
        TextCompositionSegment(std::nullptr_t) noexcept {}
        TextCompositionSegment(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Windows::UI::Input::Preview::Text::ITextCompositionSegment(ptr, take_ownership_from_abi) {}
    };
    struct WINRT_IMPL_EMPTY_BASES TextEditSession : winrt::Windows::UI::Input::Preview::Text::ITextEditSession
    {
        TextEditSession(std::nullptr_t) noexcept {}
        TextEditSession(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Windows::UI::Input::Preview::Text::ITextEditSession(ptr, take_ownership_from_abi) {}
    };
    struct WINRT_IMPL_EMPTY_BASES TextInputProvider : winrt::Windows::UI::Input::Preview::Text::ITextInputProvider
    {
        TextInputProvider(std::nullptr_t) noexcept {}
        TextInputProvider(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Windows::UI::Input::Preview::Text::ITextInputProvider(ptr, take_ownership_from_abi) {}
    };
    struct WINRT_IMPL_EMPTY_BASES TextInputService : winrt::Windows::UI::Input::Preview::Text::ITextInputService
    {
        TextInputService(std::nullptr_t) noexcept {}
        TextInputService(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Windows::UI::Input::Preview::Text::ITextInputService(ptr, take_ownership_from_abi) {}
        static auto GetForCurrentThread();
    };
}
#endif
