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

import "inspectable.idl";
import "AsyncInfo.idl";
import "EventToken.idl";
import "Windows.Foundation.idl";
import "Windows.Foundation.Numerics.idl";
import "Windows.Storage.Streams.idl";
import "Windows.UI.idl";
import "Windows.UI.Core.idl";
import "Windows.UI.Input.idl";
// Additional imports to ensure that all required headers are included
cpp_quote("#if defined(__cplusplus)")
cpp_quote("}")
cpp_quote("#endif // defined(__cplusplus)")
cpp_quote("#include <Windows.Foundation.h>")
cpp_quote("#if !defined(__windows2Efoundation2Enumerics_h__)")
cpp_quote("#include <Windows.Foundation.Numerics.h>")
cpp_quote("#endif // !defined(__windows2Efoundation2Enumerics_h__)")
cpp_quote("#if !defined(__windows2Estorage2Estreams_h__)")
cpp_quote("#include <Windows.Storage.Streams.h>")
cpp_quote("#endif // !defined(__windows2Estorage2Estreams_h__)")
cpp_quote("#if !defined(__windows2Eui_h__)")
cpp_quote("#include <Windows.UI.h>")
cpp_quote("#endif // !defined(__windows2Eui_h__)")
cpp_quote("#if !defined(__windows2Eui2Ecore_h__)")
cpp_quote("#include <Windows.UI.Core.h>")
cpp_quote("#endif // !defined(__windows2Eui2Ecore_h__)")
cpp_quote("#if !defined(__windows2Eui2Einput_h__)")
cpp_quote("#include <Windows.UI.Input.h>")
cpp_quote("#endif // !defined(__windows2Eui2Einput_h__)")
cpp_quote("#if defined(__cplusplus)")
cpp_quote("extern \"C\" {")
cpp_quote("#endif // defined(__cplusplus)")

// Forward Declare
namespace Windows
{
    namespace Foundation
    {
        namespace Numerics
        {
            typedef struct Matrix3x2 Matrix3x2;
        }
    }
}
namespace Windows
{
    namespace Foundation
    {
        typedef struct Point Point;

        typedef struct Rect Rect;

        typedef struct Size Size;
    }
}
namespace Windows
{
    namespace Storage
    {
        namespace Streams
        {
            interface IInputStream;

            interface IOutputStream;
        }
    }
}
namespace Windows
{
    namespace UI
    {
        typedef struct Color Color;
    }
}
namespace Windows
{
    namespace UI
    {
        namespace Core
        {
            typedef enum CoreInputDeviceTypes CoreInputDeviceTypes;

            runtimeclass PointerEventArgs;
        }
    }
}
namespace Windows
{
    namespace UI
    {
        namespace Input
        {
            runtimeclass PointerPoint;
        }
    }
}
namespace Windows
{
    namespace UI
    {
        namespace Input
        {
            namespace Inking
            {
                typedef enum InkDrawingAttributesKind InkDrawingAttributesKind;

                typedef enum InkInputProcessingMode InkInputProcessingMode;

                typedef enum InkInputRightDragAction InkInputRightDragAction;

                typedef enum InkManipulationMode InkManipulationMode;

                typedef enum InkPresenterPredefinedConfiguration InkPresenterPredefinedConfiguration;

                typedef enum InkPresenterStencilKind InkPresenterStencilKind;

                typedef enum InkRecognitionTarget InkRecognitionTarget;

                typedef enum PenTipShape PenTipShape;

                interface IInkDrawingAttributes;

                interface IInkDrawingAttributes2;

                interface IInkDrawingAttributes3;

                interface IInkDrawingAttributesPencilProperties;

                interface IInkDrawingAttributesStatics;

                interface IInkInputProcessingConfiguration;

                interface IInkManager;

                interface IInkPoint;

                interface IInkPointFactory;

                interface IInkPresenter;

                interface IInkPresenterRuler;

                interface IInkPresenterRulerFactory;

                interface IInkPresenterStencil;

                interface IInkRecognitionResult;

                interface IInkRecognizer;

                interface IInkRecognizerContainer;

                interface IInkStroke;

                interface IInkStroke2;

                interface IInkStrokeBuilder;

                interface IInkStrokeBuilder2;

                interface IInkStrokeContainer;

                interface IInkStrokeContainer2;

                interface IInkStrokeInput;

                interface IInkStrokeRenderingSegment;

                interface IInkStrokesCollectedEventArgs;

                interface IInkStrokesErasedEventArgs;

                interface IInkSynchronizer;

                interface IInkUnprocessedInput;

                runtimeclass InkDrawingAttributes;

                runtimeclass InkDrawingAttributesPencilProperties;

                runtimeclass InkInputProcessingConfiguration;

                runtimeclass InkManager;

                runtimeclass InkPoint;

                runtimeclass InkPresenter;

                runtimeclass InkPresenterRuler;

                runtimeclass InkRecognitionResult;

                runtimeclass InkRecognizer;

                runtimeclass InkRecognizerContainer;

                runtimeclass InkStroke;

                runtimeclass InkStrokeBuilder;

                runtimeclass InkStrokeContainer;

                runtimeclass InkStrokeInput;

                runtimeclass InkStrokeRenderingSegment;

                runtimeclass InkStrokesCollectedEventArgs;

                runtimeclass InkStrokesErasedEventArgs;

                runtimeclass InkSynchronizer;

                runtimeclass InkUnprocessedInput;
            }
        }
    }
}

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

                    interface Windows.Foundation.Collections.IIterable<Windows.UI.Input.Inking.InkRecognitionResult*>;

                    interface Windows.Foundation.Collections.IIterable<Windows.UI.Input.Inking.InkRecognizer*>;

                    interface Windows.Foundation.Collections.IIterable<Windows.UI.Input.Inking.InkStroke*>;

                    interface Windows.Foundation.Collections.IIterable<Windows.UI.Input.Inking.InkStrokeRenderingSegment*>;

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

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

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

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

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

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

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

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

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

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

                    interface Windows.Foundation.Collections.IVector<Windows.UI.Input.Inking.InkPoint*>;

                    interface Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.UI.Input.Inking.InkRecognitionResult*>*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.UI.Input.Inking.InkPresenter*, Windows.UI.Input.Inking.InkStrokesCollectedEventArgs*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.UI.Input.Inking.InkPresenter*, Windows.UI.Input.Inking.InkStrokesErasedEventArgs*>;
                }
            }
        }
    }
}

// Type definition
namespace Windows
{
    namespace UI
    {
        namespace Input
        {
            namespace Inking
            {
                [version(0x0A000002)]
                enum InkDrawingAttributesKind
                {
                    Default = 0,
                    Pencil  = 1
                };

                [version(0x0A000000)]
                enum InkInputProcessingMode
                {
                    None    = 0,
                    Inking  = 1,
                    Erasing = 2
                };

                [version(0x0A000000)]
                enum InkInputRightDragAction
                {
                    LeaveUnprocessed = 0,
                    AllowProcessing  = 1
                };

                [version(0x06020000)]
                enum InkManipulationMode
                {
                    Inking    = 0,
                    Erasing   = 1,
                    Selecting = 2
                };

                [version(0x0A000000)]
                enum InkPresenterPredefinedConfiguration
                {
                    SimpleSinglePointer   = 0,
                    SimpleMultiplePointer = 1
                };

                [version(0x0A000002)]
                enum InkPresenterStencilKind
                {
                    Other = 0,
                    Ruler = 1
                };

                [version(0x06020000)]
                enum InkRecognitionTarget
                {
                    All      = 0,
                    Selected = 1,
                    Recent   = 2
                };

                [version(0x06020000)]
                enum PenTipShape
                {
                    Circle    = 0,
                    Rectangle = 1
                };

                [exclusiveto(Windows.UI.Input.Inking.InkDrawingAttributes)]
                [uuid(97A2176C-6774-48AD-84F0-48F5A9BE74F9)]
                [version(0x06020000)]
                interface IInkDrawingAttributes : IInspectable
                {
                    [propget] HRESULT Color([out] [retval] Windows.UI.Color* value);
                    [propput] HRESULT Color([in] Windows.UI.Color value);
                    [propget] HRESULT PenTip([out] [retval] Windows.UI.Input.Inking.PenTipShape* value);
                    [propput] HRESULT PenTip([in] Windows.UI.Input.Inking.PenTipShape value);
                    [propget] HRESULT Size([out] [retval] Windows.Foundation.Size* value);
                    [propput] HRESULT Size([in] Windows.Foundation.Size value);
                    [propget] HRESULT IgnorePressure([out] [retval] boolean* value);
                    [propput] HRESULT IgnorePressure([in] boolean value);
                    [propget] HRESULT FitToCurve([out] [retval] boolean* value);
                    [propput] HRESULT FitToCurve([in] boolean value);
                }

                [exclusiveto(Windows.UI.Input.Inking.InkDrawingAttributes)]
                [uuid(7CAB6508-8EC4-42FD-A5A5-E4B7D1D5316D)]
                [version(0x0A000000)]
                interface IInkDrawingAttributes2 : IInspectable
                {
                    [propget] HRESULT PenTipTransform([out] [retval] Windows.Foundation.Numerics.Matrix3x2* value);
                    [propput] HRESULT PenTipTransform([in] Windows.Foundation.Numerics.Matrix3x2 value);
                    [propget] HRESULT DrawAsHighlighter([out] [retval] boolean* value);
                    [propput] HRESULT DrawAsHighlighter([in] boolean value);
                }

                [exclusiveto(Windows.UI.Input.Inking.InkDrawingAttributes)]
                [uuid(72020002-7D5B-4690-8AF4-E664CBE2B74F)]
                [version(0x0A000002)]
                interface IInkDrawingAttributes3 : IInspectable
                {
                    [propget] HRESULT Kind([out] [retval] Windows.UI.Input.Inking.InkDrawingAttributesKind* value);
                    [propget] HRESULT PencilProperties([out] [retval] Windows.UI.Input.Inking.InkDrawingAttributesPencilProperties** value);
                }

                [exclusiveto(Windows.UI.Input.Inking.InkDrawingAttributesPencilProperties)]
                [uuid(4F2534CB-2D86-41BB-B0E8-E4C2A0253C52)]
                [version(0x0A000002)]
                interface IInkDrawingAttributesPencilProperties : IInspectable
                {
                    [propget] HRESULT Opacity([out] [retval] DOUBLE* value);
                    [propput] HRESULT Opacity([in] DOUBLE value);
                }

                [exclusiveto(Windows.UI.Input.Inking.InkDrawingAttributes)]
                [uuid(F731E03F-1A65-4862-96CB-6E1665E17F6D)]
                [version(0x0A000002)]
                interface IInkDrawingAttributesStatics : IInspectable
                {
                    HRESULT CreateForPencil([out] [retval] Windows.UI.Input.Inking.InkDrawingAttributes** result);
                }

                [exclusiveto(Windows.UI.Input.Inking.InkInputProcessingConfiguration)]
                [uuid(2778D85E-33CA-4B06-A6D3-AC3945116D37)]
                [version(0x0A000000)]
                interface IInkInputProcessingConfiguration : IInspectable
                {
                    [propget] HRESULT Mode([out] [retval] Windows.UI.Input.Inking.InkInputProcessingMode* value);
                    [propput] HRESULT Mode([in] Windows.UI.Input.Inking.InkInputProcessingMode value);
                    [propget] HRESULT RightDragAction([out] [retval] Windows.UI.Input.Inking.InkInputRightDragAction* value);
                    [propput] HRESULT RightDragAction([in] Windows.UI.Input.Inking.InkInputRightDragAction value);
                }

                [exclusiveto(Windows.UI.Input.Inking.InkManager)]
                [uuid(4744737D-671B-4163-9C95-4E8D7A035FE1)]
                [version(0x06020000)]
                interface IInkManager : IInspectable
                    requires
                        Windows.UI.Input.Inking.IInkStrokeContainer,
                        Windows.UI.Input.Inking.IInkRecognizerContainer
                {
                    [propget] HRESULT Mode([out] [retval] Windows.UI.Input.Inking.InkManipulationMode* value);
                    [propput] HRESULT Mode([in] Windows.UI.Input.Inking.InkManipulationMode value);
                    HRESULT ProcessPointerDown([in] Windows.UI.Input.PointerPoint* pointerPoint);
                    HRESULT ProcessPointerUpdate([in] Windows.UI.Input.PointerPoint* pointerPoint, [out] [retval] IInspectable** updateInformation);
                    HRESULT ProcessPointerUp([in] Windows.UI.Input.PointerPoint* pointerPoint, [out] [retval] Windows.Foundation.Rect* updateRectangle);
                    HRESULT SetDefaultDrawingAttributes([in] Windows.UI.Input.Inking.InkDrawingAttributes* drawingAttributes);
                    [overload("RecognizeAsync")] HRESULT RecognizeAsync2([in] Windows.UI.Input.Inking.InkRecognitionTarget recognitionTarget, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.UI.Input.Inking.InkRecognitionResult*>*>** recognitionResults);
                }

                [exclusiveto(Windows.UI.Input.Inking.InkPoint)]
                [uuid(9F87272B-858C-46A5-9B41-D195970459FD)]
                [version(0x0A000000)]
                interface IInkPoint : IInspectable
                {
                    [propget] HRESULT Position([out] [retval] Windows.Foundation.Point* value);
                    [propget] HRESULT Pressure([out] [retval] FLOAT* value);
                }

                [uuid(29E5D51C-C98F-405D-9F3B-E53E31068D4D)]
                [version(0x0A000000)]
                interface IInkPointFactory : IInspectable
                {
                    HRESULT CreateInkPoint([in] Windows.Foundation.Point position, [in] FLOAT pressure, [out] [retval] Windows.UI.Input.Inking.InkPoint** result);
                }

                [exclusiveto(Windows.UI.Input.Inking.InkPresenter)]
                [uuid(A69B70E2-887B-458F-B173-4FE4438930A3)]
                [version(0x0A000000)]
                interface IInkPresenter : IInspectable
                {
                    [propget] HRESULT IsInputEnabled([out] [retval] boolean* value);
                    [propput] HRESULT IsInputEnabled([in] boolean value);
                    [propget] HRESULT InputDeviceTypes([out] [retval] Windows.UI.Core.CoreInputDeviceTypes* value);
                    [propput] HRESULT InputDeviceTypes([in] Windows.UI.Core.CoreInputDeviceTypes value);
                    [propget] HRESULT UnprocessedInput([out] [retval] Windows.UI.Input.Inking.InkUnprocessedInput** value);
                    [propget] HRESULT StrokeInput([out] [retval] Windows.UI.Input.Inking.InkStrokeInput** value);
                    [propget] HRESULT InputProcessingConfiguration([out] [retval] Windows.UI.Input.Inking.InkInputProcessingConfiguration** value);
                    [propget] HRESULT StrokeContainer([out] [retval] Windows.UI.Input.Inking.InkStrokeContainer** value);
                    [propput] HRESULT StrokeContainer([in] Windows.UI.Input.Inking.InkStrokeContainer* value);
                    HRESULT CopyDefaultDrawingAttributes([out] [retval] Windows.UI.Input.Inking.InkDrawingAttributes** value);
                    HRESULT UpdateDefaultDrawingAttributes([in] Windows.UI.Input.Inking.InkDrawingAttributes* value);
                    HRESULT ActivateCustomDrying([out] [retval] Windows.UI.Input.Inking.InkSynchronizer** inkSynchronizer);
                    HRESULT SetPredefinedConfiguration([in] Windows.UI.Input.Inking.InkPresenterPredefinedConfiguration value);
                    [eventadd] HRESULT StrokesCollected([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Inking.InkPresenter*, Windows.UI.Input.Inking.InkStrokesCollectedEventArgs*>* handler, [out] [retval] EventRegistrationToken* cookie);
                    [eventremove] HRESULT StrokesCollected([in] EventRegistrationToken cookie);
                    [eventadd] HRESULT StrokesErased([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Inking.InkPresenter*, Windows.UI.Input.Inking.InkStrokesErasedEventArgs*>* handler, [out] [retval] EventRegistrationToken* cookie);
                    [eventremove] HRESULT StrokesErased([in] EventRegistrationToken cookie);
                }

                [exclusiveto(Windows.UI.Input.Inking.InkPresenterRuler)]
                [uuid(6CDA7D5A-DEC7-4DD7-877A-2133F183D48A)]
                [version(0x0A000002)]
                interface IInkPresenterRuler : IInspectable
                    requires
                        Windows.UI.Input.Inking.IInkPresenterStencil
                {
                    [propget] HRESULT Length([out] [retval] DOUBLE* value);
                    [propput] HRESULT Length([in] DOUBLE value);
                    [propget] HRESULT Width([out] [retval] DOUBLE* value);
                    [propput] HRESULT Width([in] DOUBLE value);
                }

                [uuid(34361BEB-9001-4A4B-A690-69DBAF63E501)]
                [version(0x0A000002)]
                interface IInkPresenterRulerFactory : IInspectable
                {
                    HRESULT Create([in] Windows.UI.Input.Inking.InkPresenter* inkPresenter, [out] [retval] Windows.UI.Input.Inking.InkPresenterRuler** inkPresenterRuler);
                }

                [uuid(30D12D6D-3E06-4D02-B116-277FB5D8ADDC)]
                [version(0x0A000002)]
                interface IInkPresenterStencil : IInspectable
                {
                    [propget] HRESULT Kind([out] [retval] Windows.UI.Input.Inking.InkPresenterStencilKind* value);
                    [propget] HRESULT IsVisible([out] [retval] boolean* value);
                    [propput] HRESULT IsVisible([in] boolean value);
                    [propget] HRESULT BackgroundColor([out] [retval] Windows.UI.Color* value);
                    [propput] HRESULT BackgroundColor([in] Windows.UI.Color value);
                    [propget] HRESULT ForegroundColor([out] [retval] Windows.UI.Color* value);
                    [propput] HRESULT ForegroundColor([in] Windows.UI.Color value);
                    [propget] HRESULT Transform([out] [retval] Windows.Foundation.Numerics.Matrix3x2* value);
                    [propput] HRESULT Transform([in] Windows.Foundation.Numerics.Matrix3x2 value);
                }

                [exclusiveto(Windows.UI.Input.Inking.InkRecognitionResult)]
                [uuid(36461A94-5068-40EF-8A05-2C2FB60908A2)]
                [version(0x06020000)]
                interface IInkRecognitionResult : IInspectable
                {
                    [propget] HRESULT BoundingRect([out] [retval] Windows.Foundation.Rect* boundingRect);
                    HRESULT GetTextCandidates([out] [retval] Windows.Foundation.Collections.IVectorView<HSTRING>** textCandidates);
                    HRESULT GetStrokes([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.UI.Input.Inking.InkStroke*>** strokes);
                }

                [exclusiveto(Windows.UI.Input.Inking.InkRecognizer)]
                [uuid(077CCEA3-904D-442A-B151-AACA3631C43B)]
                [version(0x06020000)]
                interface IInkRecognizer : IInspectable
                {
                    [propget] HRESULT Name([out] [retval] HSTRING* value);
                }

                [uuid(A74D9A31-8047-4698-A912-F82A5085012F)]
                [version(0x06020000)]
                interface IInkRecognizerContainer : IInspectable
                {
                    HRESULT SetDefaultRecognizer([in] Windows.UI.Input.Inking.InkRecognizer* recognizer);
                    HRESULT RecognizeAsync([in] Windows.UI.Input.Inking.InkStrokeContainer* strokeCollection, [in] Windows.UI.Input.Inking.InkRecognitionTarget recognitionTarget, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.UI.Input.Inking.InkRecognitionResult*>*>** recognitionResults);
                    HRESULT GetRecognizers([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.UI.Input.Inking.InkRecognizer*>** recognizerView);
                }

                [exclusiveto(Windows.UI.Input.Inking.InkStroke)]
                [uuid(15144D60-CCE3-4FCF-9D52-11518AB6AFD4)]
                [version(0x06020000)]
                interface IInkStroke : IInspectable
                {
                    [propget] HRESULT DrawingAttributes([out] [retval] Windows.UI.Input.Inking.InkDrawingAttributes** value);
                    [propput] HRESULT DrawingAttributes([in] Windows.UI.Input.Inking.InkDrawingAttributes* value);
                    [propget] HRESULT BoundingRect([out] [retval] Windows.Foundation.Rect* value);
                    [propget] HRESULT Selected([out] [retval] boolean* value);
                    [propput] HRESULT Selected([in] boolean value);
                    [propget] HRESULT Recognized([out] [retval] boolean* value);
                    HRESULT GetRenderingSegments([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.UI.Input.Inking.InkStrokeRenderingSegment*>** renderingSegments);
                    HRESULT Clone([out] [retval] Windows.UI.Input.Inking.InkStroke** clonedStroke);
                }

                [exclusiveto(Windows.UI.Input.Inking.InkStroke)]
                [uuid(5DB9E4F4-BAFA-4DE1-89D3-201B1ED7D89B)]
                [version(0x0A000000)]
                interface IInkStroke2 : IInspectable
                {
                    [propget] HRESULT PointTransform([out] [retval] Windows.Foundation.Numerics.Matrix3x2* value);
                    [propput] HRESULT PointTransform([in] Windows.Foundation.Numerics.Matrix3x2 value);
                    HRESULT GetInkPoints([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.UI.Input.Inking.InkPoint*>** inkPoints);
                }

                [exclusiveto(Windows.UI.Input.Inking.InkStrokeBuilder)]
                [uuid(82BBD1DC-1C63-41DC-9E07-4B4A70CED801)]
                [version(0x06020000)]
                interface IInkStrokeBuilder : IInspectable
                {
                    HRESULT BeginStroke([in] Windows.UI.Input.PointerPoint* pointerPoint);
                    HRESULT AppendToStroke([in] Windows.UI.Input.PointerPoint* pointerPoint, [out] [retval] Windows.UI.Input.PointerPoint** previousPointerPoint);
                    HRESULT EndStroke([in] Windows.UI.Input.PointerPoint* pointerPoint, [out] [retval] Windows.UI.Input.Inking.InkStroke** stroke);
                    HRESULT CreateStroke([in] Windows.Foundation.Collections.IIterable<Windows.Foundation.Point>* points, [out] [retval] Windows.UI.Input.Inking.InkStroke** stroke);
                    HRESULT SetDefaultDrawingAttributes([in] Windows.UI.Input.Inking.InkDrawingAttributes* drawingAttributes);
                }

                [exclusiveto(Windows.UI.Input.Inking.InkStrokeBuilder)]
                [uuid(BD82BC27-731F-4CBC-BBBF-6D468044F1E5)]
                [version(0x0A000000)]
                interface IInkStrokeBuilder2 : IInspectable
                {
                    HRESULT CreateStrokeFromInkPoints([in] Windows.Foundation.Collections.IIterable<Windows.UI.Input.Inking.InkPoint*>* inkPoints, [in] Windows.Foundation.Numerics.Matrix3x2 transform, [out] [retval] Windows.UI.Input.Inking.InkStroke** result);
                }

                [uuid(22ACCBC6-FAA9-4F14-B68C-F6CEE670AE16)]
                [version(0x06020000)]
                interface IInkStrokeContainer : IInspectable
                {
                    [propget] HRESULT BoundingRect([out] [retval] Windows.Foundation.Rect* value);
                    HRESULT AddStroke([in] Windows.UI.Input.Inking.InkStroke* stroke);
                    HRESULT DeleteSelected([out] [retval] Windows.Foundation.Rect* invalidatedRect);
                    HRESULT MoveSelected([in] Windows.Foundation.Point translation, [out] [retval] Windows.Foundation.Rect* invalidatedRectangle);
                    HRESULT SelectWithPolyLine([in] Windows.Foundation.Collections.IIterable<Windows.Foundation.Point>* polyline, [out] [retval] Windows.Foundation.Rect* invalidatedRectangle);
                    HRESULT SelectWithLine([in] Windows.Foundation.Point from, [in] Windows.Foundation.Point to, [out] [retval] Windows.Foundation.Rect* invalidatedRectangle);
                    HRESULT CopySelectedToClipboard();
                    HRESULT PasteFromClipboard([in] Windows.Foundation.Point position, [out] [retval] Windows.Foundation.Rect* invalidatedRectangle);
                    HRESULT CanPasteFromClipboard([out] [retval] boolean* canPaste);
                    HRESULT LoadAsync([in] Windows.Storage.Streams.IInputStream* inputStream, [out] [retval] Windows.Foundation.IAsyncActionWithProgress<UINT64>** loadAction);
                    HRESULT SaveAsync([in] Windows.Storage.Streams.IOutputStream* outputStream, [out] [retval] Windows.Foundation.IAsyncOperationWithProgress<UINT32, UINT32>** outputStreamOperation);
                    HRESULT UpdateRecognitionResults([in] Windows.Foundation.Collections.IVectorView<Windows.UI.Input.Inking.InkRecognitionResult*>* recognitionResults);
                    HRESULT GetStrokes([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.UI.Input.Inking.InkStroke*>** strokeView);
                    HRESULT GetRecognitionResults([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.UI.Input.Inking.InkRecognitionResult*>** recognitionResults);
                }

                [exclusiveto(Windows.UI.Input.Inking.InkStrokeContainer)]
                [uuid(8901D364-DA36-4BCF-9E5C-D195825995B4)]
                [version(0x0A000000)]
                interface IInkStrokeContainer2 : IInspectable
                {
                    HRESULT AddStrokes([in] Windows.Foundation.Collections.IIterable<Windows.UI.Input.Inking.InkStroke*>* strokes);
                    HRESULT Clear();
                }

                [exclusiveto(Windows.UI.Input.Inking.InkStrokeInput)]
                [uuid(CF2FFE7B-5E10-43C6-A080-88F26E1DC67D)]
                [version(0x0A000000)]
                interface IInkStrokeInput : IInspectable
                {
                    [eventadd] HRESULT StrokeStarted([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Inking.InkStrokeInput*, Windows.UI.Core.PointerEventArgs*>* handler, [out] [retval] EventRegistrationToken* cookie);
                    [eventremove] HRESULT StrokeStarted([in] EventRegistrationToken cookie);
                    [eventadd] HRESULT StrokeContinued([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Inking.InkStrokeInput*, Windows.UI.Core.PointerEventArgs*>* handler, [out] [retval] EventRegistrationToken* cookie);
                    [eventremove] HRESULT StrokeContinued([in] EventRegistrationToken cookie);
                    [eventadd] HRESULT StrokeEnded([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Inking.InkStrokeInput*, Windows.UI.Core.PointerEventArgs*>* handler, [out] [retval] EventRegistrationToken* cookie);
                    [eventremove] HRESULT StrokeEnded([in] EventRegistrationToken cookie);
                    [eventadd] HRESULT StrokeCanceled([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Inking.InkStrokeInput*, Windows.UI.Core.PointerEventArgs*>* handler, [out] [retval] EventRegistrationToken* cookie);
                    [eventremove] HRESULT StrokeCanceled([in] EventRegistrationToken cookie);
                    [propget] HRESULT InkPresenter([out] [retval] Windows.UI.Input.Inking.InkPresenter** value);
                }

                [exclusiveto(Windows.UI.Input.Inking.InkStrokeRenderingSegment)]
                [uuid(68510F1F-88E3-477A-A2FA-569F5F1F9BD5)]
                [version(0x06020000)]
                interface IInkStrokeRenderingSegment : IInspectable
                {
                    [propget] HRESULT Position([out] [retval] Windows.Foundation.Point* value);
                    [propget] HRESULT BezierControlPoint1([out] [retval] Windows.Foundation.Point* value);
                    [propget] HRESULT BezierControlPoint2([out] [retval] Windows.Foundation.Point* value);
                    [propget] HRESULT Pressure([out] [retval] FLOAT* value);
                    [propget] HRESULT TiltX([out] [retval] FLOAT* value);
                    [propget] HRESULT TiltY([out] [retval] FLOAT* value);
                    [propget] HRESULT Twist([out] [retval] FLOAT* value);
                }

                [exclusiveto(Windows.UI.Input.Inking.InkStrokesCollectedEventArgs)]
                [uuid(C4F3F229-1938-495C-B4D9-6DE4B08D4811)]
                [version(0x0A000000)]
                interface IInkStrokesCollectedEventArgs : IInspectable
                {
                    [propget] HRESULT Strokes([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.UI.Input.Inking.InkStroke*>** value);
                }

                [exclusiveto(Windows.UI.Input.Inking.InkStrokesErasedEventArgs)]
                [uuid(A4216A22-1503-4EBF-8FF5-2DE84584A8AA)]
                [version(0x0A000000)]
                interface IInkStrokesErasedEventArgs : IInspectable
                {
                    [propget] HRESULT Strokes([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.UI.Input.Inking.InkStroke*>** value);
                }

                [exclusiveto(Windows.UI.Input.Inking.InkSynchronizer)]
                [uuid(9B9EA160-AE9B-45F9-8407-4B493B163661)]
                [version(0x0A000000)]
                interface IInkSynchronizer : IInspectable
                {
                    HRESULT BeginDry([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.UI.Input.Inking.InkStroke*>** inkStrokes);
                    HRESULT EndDry();
                }

                [exclusiveto(Windows.UI.Input.Inking.InkUnprocessedInput)]
                [uuid(DB4445E0-8398-4921-AC3B-AB978C5BA256)]
                [version(0x0A000000)]
                interface IInkUnprocessedInput : IInspectable
                {
                    [eventadd] HRESULT PointerEntered([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Inking.InkUnprocessedInput*, Windows.UI.Core.PointerEventArgs*>* handler, [out] [retval] EventRegistrationToken* cookie);
                    [eventremove] HRESULT PointerEntered([in] EventRegistrationToken cookie);
                    [eventadd] HRESULT PointerHovered([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Inking.InkUnprocessedInput*, Windows.UI.Core.PointerEventArgs*>* handler, [out] [retval] EventRegistrationToken* cookie);
                    [eventremove] HRESULT PointerHovered([in] EventRegistrationToken cookie);
                    [eventadd] HRESULT PointerExited([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Inking.InkUnprocessedInput*, Windows.UI.Core.PointerEventArgs*>* handler, [out] [retval] EventRegistrationToken* cookie);
                    [eventremove] HRESULT PointerExited([in] EventRegistrationToken cookie);
                    [eventadd] HRESULT PointerPressed([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Inking.InkUnprocessedInput*, Windows.UI.Core.PointerEventArgs*>* handler, [out] [retval] EventRegistrationToken* cookie);
                    [eventremove] HRESULT PointerPressed([in] EventRegistrationToken cookie);
                    [eventadd] HRESULT PointerMoved([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Inking.InkUnprocessedInput*, Windows.UI.Core.PointerEventArgs*>* handler, [out] [retval] EventRegistrationToken* cookie);
                    [eventremove] HRESULT PointerMoved([in] EventRegistrationToken cookie);
                    [eventadd] HRESULT PointerReleased([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Inking.InkUnprocessedInput*, Windows.UI.Core.PointerEventArgs*>* handler, [out] [retval] EventRegistrationToken* cookie);
                    [eventremove] HRESULT PointerReleased([in] EventRegistrationToken cookie);
                    [eventadd] HRESULT PointerLost([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Inking.InkUnprocessedInput*, Windows.UI.Core.PointerEventArgs*>* handler, [out] [retval] EventRegistrationToken* cookie);
                    [eventremove] HRESULT PointerLost([in] EventRegistrationToken cookie);
                    [propget] HRESULT InkPresenter([out] [retval] Windows.UI.Input.Inking.InkPresenter** value);
                }

                [activatable(0x06020000)]
                [marshaling_behavior(agile)]
                [static(Windows.UI.Input.Inking.IInkDrawingAttributesStatics, 0x0A000002)]
                [threading(both)]
                [version(0x06020000)]
                runtimeclass InkDrawingAttributes
                {
                    [default] interface Windows.UI.Input.Inking.IInkDrawingAttributes;
                    [version(0x0A000000)] interface Windows.UI.Input.Inking.IInkDrawingAttributes2;
                    [version(0x0A000002)] interface Windows.UI.Input.Inking.IInkDrawingAttributes3;
                }

                [marshaling_behavior(agile)]
                [threading(both)]
                [version(0x0A000002)]
                runtimeclass InkDrawingAttributesPencilProperties
                {
                    [default] interface Windows.UI.Input.Inking.IInkDrawingAttributesPencilProperties;
                }

                [marshaling_behavior(agile)]
                [version(0x0A000000)]
                runtimeclass InkInputProcessingConfiguration
                {
                    [default] interface Windows.UI.Input.Inking.IInkInputProcessingConfiguration;
                }

                [activatable(0x06020000)]
                [marshaling_behavior(none)]
                [threading(both)]
                [version(0x06020000)]
                runtimeclass InkManager
                {
                    [default] interface Windows.UI.Input.Inking.IInkManager;
                    interface Windows.UI.Input.Inking.IInkRecognizerContainer;
                    interface Windows.UI.Input.Inking.IInkStrokeContainer;
                }

                [activatable(Windows.UI.Input.Inking.IInkPointFactory, 0x0A000000)]
                [marshaling_behavior(agile)]
                [version(0x0A000000)]
                runtimeclass InkPoint
                {
                    [default] interface Windows.UI.Input.Inking.IInkPoint;
                }

                [marshaling_behavior(agile)]
                [version(0x0A000000)]
                runtimeclass InkPresenter
                {
                    [default] interface Windows.UI.Input.Inking.IInkPresenter;
                }

                [activatable(Windows.UI.Input.Inking.IInkPresenterRulerFactory, 0x0A000002)]
                [marshaling_behavior(agile)]
                [version(0x0A000002)]
                runtimeclass InkPresenterRuler
                {
                    [default] interface Windows.UI.Input.Inking.IInkPresenterRuler;
                    interface Windows.UI.Input.Inking.IInkPresenterStencil;
                }

                [marshaling_behavior(agile)]
                [version(0x06020000)]
                runtimeclass InkRecognitionResult
                {
                    [default] interface Windows.UI.Input.Inking.IInkRecognitionResult;
                }

                [marshaling_behavior(none)]
                [version(0x06020000)]
                runtimeclass InkRecognizer
                {
                    [default] interface Windows.UI.Input.Inking.IInkRecognizer;
                }

                [activatable(0x06020000)]
                [marshaling_behavior(none)]
                [threading(both)]
                [version(0x06020000)]
                runtimeclass InkRecognizerContainer
                {
                    [default] interface Windows.UI.Input.Inking.IInkRecognizerContainer;
                }

                [marshaling_behavior(agile)]
                [version(0x06020000)]
                runtimeclass InkStroke
                {
                    [default] interface Windows.UI.Input.Inking.IInkStroke;
                    [version(0x0A000000)] interface Windows.UI.Input.Inking.IInkStroke2;
                }

                [activatable(0x06020000)]
                [marshaling_behavior(none)]
                [threading(both)]
                [version(0x06020000)]
                runtimeclass InkStrokeBuilder
                {
                    [default] interface Windows.UI.Input.Inking.IInkStrokeBuilder;
                    [version(0x0A000000)] interface Windows.UI.Input.Inking.IInkStrokeBuilder2;
                }

                [activatable(0x06020000)]
                [marshaling_behavior(none)]
                [threading(both)]
                [version(0x06020000)]
                runtimeclass InkStrokeContainer
                {
                    [default] interface Windows.UI.Input.Inking.IInkStrokeContainer;
                    [version(0x0A000000)] interface Windows.UI.Input.Inking.IInkStrokeContainer2;
                }

                [marshaling_behavior(agile)]
                [version(0x0A000000)]
                runtimeclass InkStrokeInput
                {
                    [default] interface Windows.UI.Input.Inking.IInkStrokeInput;
                }

                [marshaling_behavior(agile)]
                [version(0x06020000)]
                runtimeclass InkStrokeRenderingSegment
                {
                    [default] interface Windows.UI.Input.Inking.IInkStrokeRenderingSegment;
                }

                [marshaling_behavior(none)]
                [version(0x0A000000)]
                runtimeclass InkStrokesCollectedEventArgs
                {
                    [default] interface Windows.UI.Input.Inking.IInkStrokesCollectedEventArgs;
                }

                [marshaling_behavior(none)]
                [version(0x0A000000)]
                runtimeclass InkStrokesErasedEventArgs
                {
                    [default] interface Windows.UI.Input.Inking.IInkStrokesErasedEventArgs;
                }

                [marshaling_behavior(none)]
                [version(0x0A000000)]
                runtimeclass InkSynchronizer
                {
                    [default] interface Windows.UI.Input.Inking.IInkSynchronizer;
                }

                [marshaling_behavior(agile)]
                [version(0x0A000000)]
                runtimeclass InkUnprocessedInput
                {
                    [default] interface Windows.UI.Input.Inking.IInkUnprocessedInput;
                }
            }
        }
    }
}
