//
// Copyright (c) Microsoft Corporation. All rights reserved.
// 
//
// File generated by WinMDIDL version 8.00.0018
//

import "inspectable.idl";
import "AsyncInfo.idl";
import "EventToken.idl";
import "windowscontracts.idl";
import "Windows.Foundation.idl";

// Forward Declare
namespace Windows
{
    namespace Foundation
    {
        apicontract UniversalApiContract;
    }
}
namespace Windows
{
    namespace Data
    {
        namespace Text
        {
            typedef enum AlternateNormalizationFormat AlternateNormalizationFormat;

            typedef enum UnicodeGeneralCategory UnicodeGeneralCategory;

            typedef enum UnicodeNumericType UnicodeNumericType;

            typedef struct TextSegment TextSegment;

            delegate SelectableWordSegmentsTokenizingHandler;

            delegate WordSegmentsTokenizingHandler;

            interface IAlternateWordForm;

            interface ISelectableWordSegment;

            interface ISelectableWordsSegmenter;

            interface ISelectableWordsSegmenterFactory;

            interface ISemanticTextQuery;

            interface ISemanticTextQueryFactory;

            interface ITextConversionGenerator;

            interface ITextConversionGeneratorFactory;

            interface ITextPhoneme;

            interface ITextPredictionGenerator;

            interface ITextPredictionGeneratorFactory;

            interface ITextReverseConversionGenerator;

            interface ITextReverseConversionGenerator2;

            interface ITextReverseConversionGeneratorFactory;

            interface IUnicodeCharactersStatics;

            interface IWordSegment;

            interface IWordsSegmenter;

            interface IWordsSegmenterFactory;

            runtimeclass AlternateWordForm;

            runtimeclass SelectableWordSegment;

            runtimeclass SelectableWordsSegmenter;

            runtimeclass SemanticTextQuery;

            runtimeclass TextConversionGenerator;

            runtimeclass TextPhoneme;

            runtimeclass TextPredictionGenerator;

            runtimeclass TextReverseConversionGenerator;

            runtimeclass UnicodeCharacters;

            runtimeclass WordSegment;

            runtimeclass WordsSegmenter;
        }
    }
}

// Generic instantiations
namespace Windows
{
    namespace Data
    {
        namespace Text
        {
            declare
            {
                interface Windows.Foundation.Collections.IIterable<Windows.Data.Text.AlternateWordForm*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Data.Text.SelectableWordSegment*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Data.Text.TextPhoneme*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Data.Text.TextSegment>;

                interface Windows.Foundation.Collections.IIterable<Windows.Data.Text.WordSegment*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Foundation.Collections.IKeyValuePair<HSTRING, Windows.Foundation.Collections.IVectorView<Windows.Data.Text.TextSegment>*>*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Data.Text.AlternateWordForm*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Data.Text.SelectableWordSegment*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Data.Text.TextPhoneme*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Data.Text.TextSegment>;

                interface Windows.Foundation.Collections.IIterator<Windows.Data.Text.WordSegment*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Foundation.Collections.IKeyValuePair<HSTRING, Windows.Foundation.Collections.IVectorView<Windows.Data.Text.TextSegment>*>*>;

                interface Windows.Foundation.Collections.IKeyValuePair<HSTRING, Windows.Foundation.Collections.IVectorView<Windows.Data.Text.TextSegment>*>;

                interface Windows.Foundation.Collections.IMapView<HSTRING, Windows.Foundation.Collections.IVectorView<Windows.Data.Text.TextSegment>*>;

                interface Windows.Foundation.Collections.IMap<HSTRING, Windows.Foundation.Collections.IVectorView<Windows.Data.Text.TextSegment>*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Data.Text.AlternateWordForm*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Data.Text.SelectableWordSegment*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Data.Text.TextPhoneme*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Data.Text.TextSegment>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Data.Text.WordSegment*>;

                interface Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.Data.Text.TextPhoneme*>*>;
            }
        }
    }
}

// Type definition
namespace Windows
{
    namespace Data
    {
        namespace Text
        {
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum AlternateNormalizationFormat
            {
                NotNormalized = 0,
                Number        = 1,
                Currency      = 3,
                Date          = 4,
                Time          = 5
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum UnicodeGeneralCategory
            {
                UppercaseLetter         = 0,
                LowercaseLetter         = 1,
                TitlecaseLetter         = 2,
                ModifierLetter          = 3,
                OtherLetter             = 4,
                NonspacingMark          = 5,
                SpacingCombiningMark    = 6,
                EnclosingMark           = 7,
                DecimalDigitNumber      = 8,
                LetterNumber            = 9,
                OtherNumber             = 10,
                SpaceSeparator          = 11,
                LineSeparator           = 12,
                ParagraphSeparator      = 13,
                Control                 = 14,
                Format                  = 15,
                Surrogate               = 16,
                PrivateUse              = 17,
                ConnectorPunctuation    = 18,
                DashPunctuation         = 19,
                OpenPunctuation         = 20,
                ClosePunctuation        = 21,
                InitialQuotePunctuation = 22,
                FinalQuotePunctuation   = 23,
                OtherPunctuation        = 24,
                MathSymbol              = 25,
                CurrencySymbol          = 26,
                ModifierSymbol          = 27,
                OtherSymbol             = 28,
                NotAssigned             = 29
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum UnicodeNumericType
            {
                None    = 0,
                Decimal = 1,
                Digit   = 2,
                Numeric = 3
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            struct TextSegment
            {
                UINT32 StartPosition;
                UINT32 Length;
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [uuid(3A3DFC9C-AEDE-4DC7-9E6C-41C044BD3592)]
            delegate
                HRESULT SelectableWordSegmentsTokenizingHandler([in] Windows.Foundation.Collections.IIterable<Windows.Data.Text.SelectableWordSegment*>* precedingWords, [in] Windows.Foundation.Collections.IIterable<Windows.Data.Text.SelectableWordSegment*>* words);

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [uuid(A5DD6357-BF2A-4C4F-A31F-29E71C6F8B35)]
            delegate
                HRESULT WordSegmentsTokenizingHandler([in] Windows.Foundation.Collections.IIterable<Windows.Data.Text.WordSegment*>* precedingWords, [in] Windows.Foundation.Collections.IIterable<Windows.Data.Text.WordSegment*>* words);

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Data.Text.AlternateWordForm)]
            [uuid(47396C1E-51B9-4207-9146-248E636A1D1D)]
            interface IAlternateWordForm : IInspectable
            {
                [propget] HRESULT SourceTextSegment([out] [retval] Windows.Data.Text.TextSegment* value);
                [propget] HRESULT AlternateText([out] [retval] HSTRING* value);
                [propget] HRESULT NormalizationFormat([out] [retval] Windows.Data.Text.AlternateNormalizationFormat* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Data.Text.SelectableWordSegment)]
            [uuid(916A4CB7-8AA7-4C78-B374-5DEDB752E60B)]
            interface ISelectableWordSegment : IInspectable
            {
                [propget] HRESULT Text([out] [retval] HSTRING* value);
                [propget] HRESULT SourceTextSegment([out] [retval] Windows.Data.Text.TextSegment* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Data.Text.SelectableWordsSegmenter)]
            [uuid(F6DC31E7-4B13-45C5-8897-7D71269E085D)]
            interface ISelectableWordsSegmenter : IInspectable
            {
                [propget] HRESULT ResolvedLanguage([out] [retval] HSTRING* value);
                HRESULT GetTokenAt([in] HSTRING text, [in] UINT32 startIndex, [out] [retval] Windows.Data.Text.SelectableWordSegment** result);
                HRESULT GetTokens([in] HSTRING text, [out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Data.Text.SelectableWordSegment*>** result);
                HRESULT Tokenize([in] HSTRING text, [in] UINT32 startIndex, [in] Windows.Data.Text.SelectableWordSegmentsTokenizingHandler* handler);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Data.Text.SelectableWordsSegmenter)]
            [uuid(8C7A7648-6057-4339-BC70-F210010A4150)]
            interface ISelectableWordsSegmenterFactory : IInspectable
            {
                HRESULT CreateWithLanguage([in] HSTRING language, [out] [retval] Windows.Data.Text.SelectableWordsSegmenter** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Data.Text.SemanticTextQuery)]
            [uuid(6A1CAB51-1FB2-4909-80B8-35731A2B3E7F)]
            interface ISemanticTextQuery : IInspectable
            {
                HRESULT Find([in] HSTRING content, [out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Data.Text.TextSegment>** result);
                HRESULT FindInProperty([in] HSTRING propertyContent, [in] HSTRING propertyName, [out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Data.Text.TextSegment>** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Data.Text.SemanticTextQuery)]
            [uuid(238C0503-F995-4587-8777-A2B7D80ACFEF)]
            interface ISemanticTextQueryFactory : IInspectable
            {
                HRESULT Create([in] HSTRING aqsFilter, [out] [retval] Windows.Data.Text.SemanticTextQuery** result);
                HRESULT CreateWithLanguage([in] HSTRING aqsFilter, [in] HSTRING filterLanguage, [out] [retval] Windows.Data.Text.SemanticTextQuery** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Data.Text.TextConversionGenerator)]
            [uuid(03606A5E-2AA9-4AB6-AF8B-A562B63A8992)]
            interface ITextConversionGenerator : IInspectable
            {
                [propget] HRESULT ResolvedLanguage([out] [retval] HSTRING* value);
                [propget] HRESULT LanguageAvailableButNotInstalled([out] [retval] boolean* value);
                [overload("GetCandidatesAsync")] HRESULT GetCandidatesAsync([in] HSTRING input, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<HSTRING>*>** result);
                [overload("GetCandidatesAsync")] HRESULT GetCandidatesWithMaxCountAsync([in] HSTRING input, [in] UINT32 maxCandidates, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<HSTRING>*>** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Data.Text.TextConversionGenerator)]
            [uuid(FCAA3781-3083-49AB-BE15-56DFBBB74D6F)]
            interface ITextConversionGeneratorFactory : IInspectable
            {
                HRESULT Create([in] HSTRING languageTag, [out] [retval] Windows.Data.Text.TextConversionGenerator** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.Data.Text.TextPhoneme)]
            [uuid(9362A40A-9B7A-4569-94CF-D84F2F38CF9B)]
            interface ITextPhoneme : IInspectable
            {
                [propget] HRESULT DisplayText([out] [retval] HSTRING* value);
                [propget] HRESULT ReadingText([out] [retval] HSTRING* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Data.Text.TextPredictionGenerator)]
            [uuid(5EACAB07-ABF1-4CB6-9D9E-326F2B468756)]
            interface ITextPredictionGenerator : IInspectable
            {
                [propget] HRESULT ResolvedLanguage([out] [retval] HSTRING* value);
                [propget] HRESULT LanguageAvailableButNotInstalled([out] [retval] boolean* value);
                [overload("GetCandidatesAsync")] HRESULT GetCandidatesAsync([in] HSTRING input, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<HSTRING>*>** result);
                [overload("GetCandidatesAsync")] HRESULT GetCandidatesWithMaxCountAsync([in] HSTRING input, [in] UINT32 maxCandidates, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<HSTRING>*>** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Data.Text.TextPredictionGenerator)]
            [uuid(7257B416-8BA2-4751-9D30-9D85435653A2)]
            interface ITextPredictionGeneratorFactory : IInspectable
            {
                HRESULT Create([in] HSTRING languageTag, [out] [retval] Windows.Data.Text.TextPredictionGenerator** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Data.Text.TextReverseConversionGenerator)]
            [uuid(51E7F514-9C51-4D86-AE1B-B498FBAD8313)]
            interface ITextReverseConversionGenerator : IInspectable
            {
                [propget] HRESULT ResolvedLanguage([out] [retval] HSTRING* value);
                [propget] HRESULT LanguageAvailableButNotInstalled([out] [retval] boolean* value);
                HRESULT ConvertBackAsync([in] HSTRING input, [out] [retval] Windows.Foundation.IAsyncOperation<HSTRING>** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.Data.Text.TextReverseConversionGenerator)]
            [uuid(1AAFD2EC-85D6-46FD-828A-3A4830FA6E18)]
            interface ITextReverseConversionGenerator2 : IInspectable
            {
                HRESULT GetPhonemesAsync([in] HSTRING input, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.Data.Text.TextPhoneme*>*>** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Data.Text.TextReverseConversionGenerator)]
            [uuid(63BED326-1FDA-41F6-89D5-23DDEA3C729A)]
            interface ITextReverseConversionGeneratorFactory : IInspectable
            {
                HRESULT Create([in] HSTRING languageTag, [out] [retval] Windows.Data.Text.TextReverseConversionGenerator** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Data.Text.UnicodeCharacters)]
            [uuid(97909E87-9291-4F91-B6C8-B6E359D7A7FB)]
            interface IUnicodeCharactersStatics : IInspectable
            {
                HRESULT GetCodepointFromSurrogatePair([in] UINT32 highSurrogate, [in] UINT32 lowSurrogate, [out] [retval] UINT32* codepoint);
                HRESULT GetSurrogatePairFromCodepoint([in] UINT32 codepoint, [out] WCHAR* highSurrogate, [out] WCHAR* lowSurrogate);
                HRESULT IsHighSurrogate([in] UINT32 codepoint, [out] [retval] boolean* value);
                HRESULT IsLowSurrogate([in] UINT32 codepoint, [out] [retval] boolean* value);
                HRESULT IsSupplementary([in] UINT32 codepoint, [out] [retval] boolean* value);
                HRESULT IsNoncharacter([in] UINT32 codepoint, [out] [retval] boolean* value);
                HRESULT IsWhitespace([in] UINT32 codepoint, [out] [retval] boolean* value);
                HRESULT IsAlphabetic([in] UINT32 codepoint, [out] [retval] boolean* value);
                HRESULT IsCased([in] UINT32 codepoint, [out] [retval] boolean* value);
                HRESULT IsUppercase([in] UINT32 codepoint, [out] [retval] boolean* value);
                HRESULT IsLowercase([in] UINT32 codepoint, [out] [retval] boolean* value);
                HRESULT IsIdStart([in] UINT32 codepoint, [out] [retval] boolean* value);
                HRESULT IsIdContinue([in] UINT32 codepoint, [out] [retval] boolean* value);
                HRESULT IsGraphemeBase([in] UINT32 codepoint, [out] [retval] boolean* value);
                HRESULT IsGraphemeExtend([in] UINT32 codepoint, [out] [retval] boolean* value);
                HRESULT GetNumericType([in] UINT32 codepoint, [out] [retval] Windows.Data.Text.UnicodeNumericType* value);
                HRESULT GetGeneralCategory([in] UINT32 codepoint, [out] [retval] Windows.Data.Text.UnicodeGeneralCategory* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Data.Text.WordSegment)]
            [uuid(D2D4BA6D-987C-4CC0-B6BD-D49A11B38F9A)]
            interface IWordSegment : IInspectable
            {
                [propget] HRESULT Text([out] [retval] HSTRING* value);
                [propget] HRESULT SourceTextSegment([out] [retval] Windows.Data.Text.TextSegment* value);
                [propget] HRESULT AlternateForms([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Data.Text.AlternateWordForm*>** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Data.Text.WordsSegmenter)]
            [uuid(86B4D4D1-B2FE-4E34-A81D-66640300454F)]
            interface IWordsSegmenter : IInspectable
            {
                [propget] HRESULT ResolvedLanguage([out] [retval] HSTRING* value);
                HRESULT GetTokenAt([in] HSTRING text, [in] UINT32 startIndex, [out] [retval] Windows.Data.Text.WordSegment** result);
                HRESULT GetTokens([in] HSTRING text, [out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Data.Text.WordSegment*>** result);
                HRESULT Tokenize([in] HSTRING text, [in] UINT32 startIndex, [in] Windows.Data.Text.WordSegmentsTokenizingHandler* handler);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Data.Text.WordsSegmenter)]
            [uuid(E6977274-FC35-455C-8BFB-6D7F4653CA97)]
            interface IWordsSegmenterFactory : IInspectable
            {
                HRESULT CreateWithLanguage([in] HSTRING language, [out] [retval] Windows.Data.Text.WordsSegmenter** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass AlternateWordForm
            {
                [contract(Windows.Foundation.UniversalApiContract, 1.0)] [default] interface Windows.Data.Text.IAlternateWordForm;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass SelectableWordSegment
            {
                [contract(Windows.Foundation.UniversalApiContract, 1.0)] [default] interface Windows.Data.Text.ISelectableWordSegment;
            }

            [activatable(Windows.Data.Text.ISelectableWordsSegmenterFactory, Windows.Foundation.UniversalApiContract, 1.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass SelectableWordsSegmenter
            {
                [contract(Windows.Foundation.UniversalApiContract, 1.0)] [default] interface Windows.Data.Text.ISelectableWordsSegmenter;
            }

            [activatable(Windows.Data.Text.ISemanticTextQueryFactory, Windows.Foundation.UniversalApiContract, 1.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass SemanticTextQuery
            {
                [default] interface Windows.Data.Text.ISemanticTextQuery;
            }

            [activatable(Windows.Data.Text.ITextConversionGeneratorFactory, Windows.Foundation.UniversalApiContract, 1.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass TextConversionGenerator
            {
                [default] interface Windows.Data.Text.ITextConversionGenerator;
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass TextPhoneme
            {
                [default] interface Windows.Data.Text.ITextPhoneme;
            }

            [activatable(Windows.Data.Text.ITextPredictionGeneratorFactory, Windows.Foundation.UniversalApiContract, 1.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass TextPredictionGenerator
            {
                [default] interface Windows.Data.Text.ITextPredictionGenerator;
            }

            [activatable(Windows.Data.Text.ITextReverseConversionGeneratorFactory, Windows.Foundation.UniversalApiContract, 1.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass TextReverseConversionGenerator
            {
                [default] interface Windows.Data.Text.ITextReverseConversionGenerator;
                [contract(Windows.Foundation.UniversalApiContract, 3.0)] interface Windows.Data.Text.ITextReverseConversionGenerator2;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [static(Windows.Data.Text.IUnicodeCharactersStatics, Windows.Foundation.UniversalApiContract, 1.0)]
            [threading(both)]
            runtimeclass UnicodeCharacters
            {
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass WordSegment
            {
                [contract(Windows.Foundation.UniversalApiContract, 1.0)] [default] interface Windows.Data.Text.IWordSegment;
            }

            [activatable(Windows.Data.Text.IWordsSegmenterFactory, Windows.Foundation.UniversalApiContract, 1.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass WordsSegmenter
            {
                [contract(Windows.Foundation.UniversalApiContract, 1.0)] [default] interface Windows.Data.Text.IWordsSegmenter;
            }
        }
    }
}
