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

import "inspectable.idl";
import "AsyncInfo.idl";
import "EventToken.idl";
import "windowscontracts.idl";
import "Windows.Foundation.idl";
import "Windows.UI.Input.Inking.idl";

// Forward Declare
namespace Windows
{
    namespace Foundation
    {
        typedef struct Point Point;

        typedef struct Rect Rect;

        apicontract UniversalApiContract;
    }
}
namespace Windows
{
    namespace UI
    {
        namespace Input
        {
            namespace Inking
            {
                runtimeclass InkStroke;
            }
        }
    }
}
namespace Windows
{
    namespace UI
    {
        namespace Input
        {
            namespace Inking
            {
                namespace Analysis
                {
                    typedef enum InkAnalysisDrawingKind InkAnalysisDrawingKind;

                    typedef enum InkAnalysisNodeKind InkAnalysisNodeKind;

                    typedef enum InkAnalysisStatus InkAnalysisStatus;

                    typedef enum InkAnalysisStrokeKind InkAnalysisStrokeKind;

                    interface IInkAnalysisInkBullet;

                    interface IInkAnalysisInkDrawing;

                    interface IInkAnalysisInkWord;

                    interface IInkAnalysisLine;

                    interface IInkAnalysisListItem;

                    interface IInkAnalysisNode;

                    interface IInkAnalysisParagraph;

                    interface IInkAnalysisResult;

                    interface IInkAnalysisRoot;

                    interface IInkAnalysisWritingRegion;

                    interface IInkAnalyzer;

                    interface IInkAnalyzerFactory;

                    runtimeclass InkAnalysisInkBullet;

                    runtimeclass InkAnalysisInkDrawing;

                    runtimeclass InkAnalysisInkWord;

                    runtimeclass InkAnalysisLine;

                    runtimeclass InkAnalysisListItem;

                    runtimeclass InkAnalysisNode;

                    runtimeclass InkAnalysisParagraph;

                    runtimeclass InkAnalysisResult;

                    runtimeclass InkAnalysisRoot;

                    runtimeclass InkAnalysisWritingRegion;

                    runtimeclass InkAnalyzer;
                }
            }
        }
    }
}

// Generic instantiations
namespace Windows
{
    namespace UI
    {
        namespace Input
        {
            namespace Inking
            {
                namespace Analysis
                {
                    declare
                    {
                        interface Windows.Foundation.Collections.IIterable<Windows.UI.Input.Inking.Analysis.IInkAnalysisNode*>;

                        interface Windows.Foundation.Collections.IIterator<Windows.UI.Input.Inking.Analysis.IInkAnalysisNode*>;

                        interface Windows.Foundation.Collections.IVectorView<Windows.UI.Input.Inking.Analysis.IInkAnalysisNode*>;

                        interface Windows.Foundation.IAsyncOperation<Windows.UI.Input.Inking.Analysis.InkAnalysisResult*>;
                    }
                }
            }
        }
    }
}

// Type definition
namespace Windows
{
    namespace UI
    {
        namespace Input
        {
            namespace Inking
            {
                namespace Analysis
                {
                    [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                    enum InkAnalysisDrawingKind
                    {
                        Drawing             = 0,
                        Circle              = 1,
                        Ellipse             = 2,
                        Triangle            = 3,
                        IsoscelesTriangle   = 4,
                        EquilateralTriangle = 5,
                        RightTriangle       = 6,
                        Quadrilateral       = 7,
                        Rectangle           = 8,
                        Square              = 9,
                        Diamond             = 10,
                        Trapezoid           = 11,
                        Parallelogram       = 12,
                        Pentagon            = 13,
                        Hexagon             = 14
                    };

                    [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                    enum InkAnalysisNodeKind
                    {
                        UnclassifiedInk = 0,
                        Root            = 1,
                        WritingRegion   = 2,
                        Paragraph       = 3,
                        Line            = 4,
                        InkWord         = 5,
                        InkBullet       = 6,
                        InkDrawing      = 7,
                        ListItem        = 8
                    };

                    [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                    enum InkAnalysisStatus
                    {
                        Updated   = 0,
                        Unchanged = 1
                    };

                    [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                    enum InkAnalysisStrokeKind
                    {
                        Auto    = 0,
                        Writing = 1,
                        Drawing = 2
                    };

                    [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                    [exclusiveto(Windows.UI.Input.Inking.Analysis.InkAnalysisInkBullet)]
                    [uuid(EE049368-6110-4136-95F9-EE809FC20030)]
                    interface IInkAnalysisInkBullet : IInspectable
                        requires
                            Windows.UI.Input.Inking.Analysis.IInkAnalysisNode
                    {
                        [propget] HRESULT RecognizedText([out] [retval] HSTRING* value);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                    [exclusiveto(Windows.UI.Input.Inking.Analysis.InkAnalysisInkDrawing)]
                    [uuid(6A85ED1F-1FE4-4E15-898C-8E112377E021)]
                    interface IInkAnalysisInkDrawing : IInspectable
                        requires
                            Windows.UI.Input.Inking.Analysis.IInkAnalysisNode
                    {
                        [propget] HRESULT DrawingKind([out] [retval] Windows.UI.Input.Inking.Analysis.InkAnalysisDrawingKind* value);
                        [propget] HRESULT Center([out] [retval] Windows.Foundation.Point* value);
                        [propget] HRESULT Points([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Foundation.Point>** value);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                    [exclusiveto(Windows.UI.Input.Inking.Analysis.InkAnalysisInkWord)]
                    [uuid(4BD228AD-83AF-4034-8F3B-F8687DFFF436)]
                    interface IInkAnalysisInkWord : IInspectable
                        requires
                            Windows.UI.Input.Inking.Analysis.IInkAnalysisNode
                    {
                        [propget] HRESULT RecognizedText([out] [retval] HSTRING* value);
                        [propget] HRESULT TextAlternates([out] [retval] Windows.Foundation.Collections.IVectorView<HSTRING>** value);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                    [exclusiveto(Windows.UI.Input.Inking.Analysis.InkAnalysisLine)]
                    [uuid(A06D048D-2B8D-4754-AD5A-D0871193A956)]
                    interface IInkAnalysisLine : IInspectable
                        requires
                            Windows.UI.Input.Inking.Analysis.IInkAnalysisNode
                    {
                        [propget] HRESULT RecognizedText([out] [retval] HSTRING* value);
                        [propget] HRESULT IndentLevel([out] [retval] INT32* value);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                    [exclusiveto(Windows.UI.Input.Inking.Analysis.InkAnalysisListItem)]
                    [uuid(B4E3C23F-C4C3-4C3A-A1A6-9D85547EE586)]
                    interface IInkAnalysisListItem : IInspectable
                        requires
                            Windows.UI.Input.Inking.Analysis.IInkAnalysisNode
                    {
                        [propget] HRESULT RecognizedText([out] [retval] HSTRING* value);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                    [uuid(30831F05-5F64-4A2C-BA37-4F4887879574)]
                    interface IInkAnalysisNode : IInspectable
                    {
                        [propget] HRESULT Id([out] [retval] UINT32* value);
                        [propget] HRESULT Kind([out] [retval] Windows.UI.Input.Inking.Analysis.InkAnalysisNodeKind* value);
                        [propget] HRESULT BoundingRect([out] [retval] Windows.Foundation.Rect* value);
                        [propget] HRESULT RotatedBoundingRect([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Foundation.Point>** value);
                        [propget] HRESULT Children([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.UI.Input.Inking.Analysis.IInkAnalysisNode*>** value);
                        [propget] HRESULT Parent([out] [retval] Windows.UI.Input.Inking.Analysis.IInkAnalysisNode** value);
                        HRESULT GetStrokeIds([out] [retval] Windows.Foundation.Collections.IVectorView<UINT32>** strokeIds);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                    [exclusiveto(Windows.UI.Input.Inking.Analysis.InkAnalysisParagraph)]
                    [uuid(D9AD045C-0CD1-4DD4-A68B-EB1F12B3D727)]
                    interface IInkAnalysisParagraph : IInspectable
                        requires
                            Windows.UI.Input.Inking.Analysis.IInkAnalysisNode
                    {
                        [propget] HRESULT RecognizedText([out] [retval] HSTRING* value);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                    [exclusiveto(Windows.UI.Input.Inking.Analysis.InkAnalysisResult)]
                    [uuid(8948BA79-A243-4AA3-A294-1F98BD0FF580)]
                    interface IInkAnalysisResult : IInspectable
                    {
                        [propget] HRESULT Status([out] [retval] Windows.UI.Input.Inking.Analysis.InkAnalysisStatus* value);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                    [exclusiveto(Windows.UI.Input.Inking.Analysis.InkAnalysisRoot)]
                    [uuid(3FB6A3C4-2FDE-4061-8502-A90F32545B84)]
                    interface IInkAnalysisRoot : IInspectable
                        requires
                            Windows.UI.Input.Inking.Analysis.IInkAnalysisNode
                    {
                        [propget] HRESULT RecognizedText([out] [retval] HSTRING* value);
                        HRESULT FindNodes([in] Windows.UI.Input.Inking.Analysis.InkAnalysisNodeKind nodeKind, [out] [retval] Windows.Foundation.Collections.IVectorView<Windows.UI.Input.Inking.Analysis.IInkAnalysisNode*>** result);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                    [exclusiveto(Windows.UI.Input.Inking.Analysis.InkAnalysisWritingRegion)]
                    [uuid(DD6D6231-BD16-4663-B5AE-941D3043EF5B)]
                    interface IInkAnalysisWritingRegion : IInspectable
                        requires
                            Windows.UI.Input.Inking.Analysis.IInkAnalysisNode
                    {
                        [propget] HRESULT RecognizedText([out] [retval] HSTRING* value);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                    [exclusiveto(Windows.UI.Input.Inking.Analysis.InkAnalyzer)]
                    [uuid(F12B8F95-0866-4DC5-8C77-F88614DFE38C)]
                    interface IInkAnalyzer : IInspectable
                    {
                        [propget] HRESULT AnalysisRoot([out] [retval] Windows.UI.Input.Inking.Analysis.InkAnalysisRoot** value);
                        [propget] HRESULT IsAnalyzing([out] [retval] boolean* value);
                        HRESULT AddDataForStroke([in] Windows.UI.Input.Inking.InkStroke* stroke);
                        HRESULT AddDataForStrokes([in] Windows.Foundation.Collections.IIterable<Windows.UI.Input.Inking.InkStroke*>* strokes);
                        HRESULT ClearDataForAllStrokes();
                        HRESULT RemoveDataForStroke([in] UINT32 strokeId);
                        HRESULT RemoveDataForStrokes([in] Windows.Foundation.Collections.IIterable<UINT32>* strokeIds);
                        HRESULT ReplaceDataForStroke([in] Windows.UI.Input.Inking.InkStroke* stroke);
                        HRESULT SetStrokeDataKind([in] UINT32 strokeId, [in] Windows.UI.Input.Inking.Analysis.InkAnalysisStrokeKind strokeKind);
                        HRESULT AnalyzeAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.UI.Input.Inking.Analysis.InkAnalysisResult*>** result);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                    [uuid(29138686-1963-49D8-9589-E14384C769E3)]
                    interface IInkAnalyzerFactory : IInspectable
                    {
                        HRESULT CreateAnalyzer([out] [retval] Windows.UI.Input.Inking.Analysis.InkAnalyzer** result);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                    [marshaling_behavior(agile)]
                    [threading(both)]
                    runtimeclass InkAnalysisInkBullet
                    {
                        [default] interface Windows.UI.Input.Inking.Analysis.IInkAnalysisInkBullet;
                        interface Windows.UI.Input.Inking.Analysis.IInkAnalysisNode;
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                    [marshaling_behavior(agile)]
                    [threading(both)]
                    runtimeclass InkAnalysisInkDrawing
                    {
                        [default] interface Windows.UI.Input.Inking.Analysis.IInkAnalysisInkDrawing;
                        interface Windows.UI.Input.Inking.Analysis.IInkAnalysisNode;
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                    [marshaling_behavior(agile)]
                    [threading(both)]
                    runtimeclass InkAnalysisInkWord
                    {
                        [default] interface Windows.UI.Input.Inking.Analysis.IInkAnalysisInkWord;
                        interface Windows.UI.Input.Inking.Analysis.IInkAnalysisNode;
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                    [marshaling_behavior(agile)]
                    [threading(both)]
                    runtimeclass InkAnalysisLine
                    {
                        [default] interface Windows.UI.Input.Inking.Analysis.IInkAnalysisLine;
                        interface Windows.UI.Input.Inking.Analysis.IInkAnalysisNode;
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                    [marshaling_behavior(agile)]
                    [threading(both)]
                    runtimeclass InkAnalysisListItem
                    {
                        [default] interface Windows.UI.Input.Inking.Analysis.IInkAnalysisListItem;
                        interface Windows.UI.Input.Inking.Analysis.IInkAnalysisNode;
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                    [marshaling_behavior(agile)]
                    [threading(both)]
                    runtimeclass InkAnalysisNode
                    {
                        [default] interface Windows.UI.Input.Inking.Analysis.IInkAnalysisNode;
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                    [marshaling_behavior(agile)]
                    [threading(both)]
                    runtimeclass InkAnalysisParagraph
                    {
                        [default] interface Windows.UI.Input.Inking.Analysis.IInkAnalysisParagraph;
                        interface Windows.UI.Input.Inking.Analysis.IInkAnalysisNode;
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                    [marshaling_behavior(agile)]
                    runtimeclass InkAnalysisResult
                    {
                        [default] interface Windows.UI.Input.Inking.Analysis.IInkAnalysisResult;
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                    [marshaling_behavior(agile)]
                    [threading(both)]
                    runtimeclass InkAnalysisRoot
                    {
                        [default] interface Windows.UI.Input.Inking.Analysis.IInkAnalysisRoot;
                        interface Windows.UI.Input.Inking.Analysis.IInkAnalysisNode;
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                    [marshaling_behavior(agile)]
                    [threading(both)]
                    runtimeclass InkAnalysisWritingRegion
                    {
                        [default] interface Windows.UI.Input.Inking.Analysis.IInkAnalysisWritingRegion;
                        interface Windows.UI.Input.Inking.Analysis.IInkAnalysisNode;
                    }

                    [activatable(Windows.Foundation.UniversalApiContract, 4.0)]
                    [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                    [marshaling_behavior(agile)]
                    runtimeclass InkAnalyzer
                    {
                        [default] interface Windows.UI.Input.Inking.Analysis.IInkAnalyzer;
                    }
                }
            }
        }
    }
}
