//
// 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.Foundation.Numerics.idl";
import "Windows.UI.Composition.idl";
import "Windows.UI.Core.idl";
import "Windows.UI.Input.Inking.idl";

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

        apicontract UniversalApiContract;
    }
}
namespace Windows
{
    namespace UI
    {
        namespace Composition
        {
            runtimeclass ContainerVisual;
        }
    }
}
namespace Windows
{
    namespace UI
    {
        namespace Core
        {
            runtimeclass CoreCursor;

            runtimeclass PointerEventArgs;
        }
    }
}
namespace Windows
{
    namespace UI
    {
        namespace Input
        {
            namespace Inking
            {
                runtimeclass InkDrawingAttributes;

                runtimeclass InkPoint;

                runtimeclass InkPresenter;

                runtimeclass InkStroke;
            }
        }
    }
}
namespace Windows
{
    namespace UI
    {
        namespace Input
        {
            namespace Inking
            {
                namespace Core
                {
                    typedef enum CoreWetStrokeDisposition CoreWetStrokeDisposition;

                    interface ICoreIncrementalInkStroke;

                    interface ICoreIncrementalInkStrokeFactory;

                    interface ICoreInkIndependentInputSource;

                    interface ICoreInkIndependentInputSource2;

                    interface ICoreInkIndependentInputSourceStatics;

                    interface ICoreInkPresenterHost;

                    interface ICoreWetStrokeUpdateEventArgs;

                    interface ICoreWetStrokeUpdateSource;

                    interface ICoreWetStrokeUpdateSourceStatics;

                    runtimeclass CoreIncrementalInkStroke;

                    runtimeclass CoreInkIndependentInputSource;

                    runtimeclass CoreInkPresenterHost;

                    runtimeclass CoreWetStrokeUpdateEventArgs;

                    runtimeclass CoreWetStrokeUpdateSource;
                }
            }
        }
    }
}

// Generic instantiations
namespace Windows
{
    namespace UI
    {
        namespace Input
        {
            namespace Inking
            {
                namespace Core
                {
                    declare
                    {
                        interface Windows.Foundation.TypedEventHandler<Windows.UI.Input.Inking.Core.CoreWetStrokeUpdateSource*, Windows.UI.Input.Inking.Core.CoreWetStrokeUpdateEventArgs*>;
                    }
                }
            }
        }
    }
}

// Type definition
namespace Windows
{
    namespace UI
    {
        namespace Input
        {
            namespace Inking
            {
                namespace Core
                {
                    [contract(Windows.Foundation.UniversalApiContract, 3.0)]
                    enum CoreWetStrokeDisposition
                    {
                        Inking    = 0,
                        Completed = 1,
                        Canceled  = 2
                    };

                    [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                    [exclusiveto(Windows.UI.Input.Inking.Core.CoreIncrementalInkStroke)]
                    [uuid(FDA015D3-9D66-4F7D-A57F-CC70B9CFAA76)]
                    interface ICoreIncrementalInkStroke : IInspectable
                    {
                        HRESULT AppendInkPoints([in] Windows.Foundation.Collections.IIterable<Windows.UI.Input.Inking.InkPoint*>* inkPoints, [out] [retval] Windows.Foundation.Rect* result);
                        HRESULT CreateInkStroke([out] [retval] Windows.UI.Input.Inking.InkStroke** result);
                        [propget] HRESULT DrawingAttributes([out] [retval] Windows.UI.Input.Inking.InkDrawingAttributes** value);
                        [propget] HRESULT PointTransform([out] [retval] Windows.Foundation.Numerics.Matrix3x2* value);
                        [propget] HRESULT BoundingRect([out] [retval] Windows.Foundation.Rect* value);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                    [exclusiveto(Windows.UI.Input.Inking.Core.CoreIncrementalInkStroke)]
                    [uuid(D7C59F46-8DA8-4F70-9751-E53BB6DF4596)]
                    interface ICoreIncrementalInkStrokeFactory : IInspectable
                    {
                        HRESULT Create([in] Windows.UI.Input.Inking.InkDrawingAttributes* drawingAttributes, [in] Windows.Foundation.Numerics.Matrix3x2 pointTransform, [out] [retval] Windows.UI.Input.Inking.Core.CoreIncrementalInkStroke** result);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    [exclusiveto(Windows.UI.Input.Inking.Core.CoreInkIndependentInputSource)]
                    [uuid(39B38DA9-7639-4499-A5B5-191D00E35B16)]
                    interface ICoreInkIndependentInputSource : IInspectable
                    {
                        [eventadd] HRESULT PointerEntering([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Inking.Core.CoreInkIndependentInputSource*, Windows.UI.Core.PointerEventArgs*>* handler, [out] [retval] EventRegistrationToken* cookie);
                        [eventremove] HRESULT PointerEntering([in] EventRegistrationToken cookie);
                        [eventadd] HRESULT PointerHovering([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Inking.Core.CoreInkIndependentInputSource*, Windows.UI.Core.PointerEventArgs*>* handler, [out] [retval] EventRegistrationToken* cookie);
                        [eventremove] HRESULT PointerHovering([in] EventRegistrationToken cookie);
                        [eventadd] HRESULT PointerExiting([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Inking.Core.CoreInkIndependentInputSource*, Windows.UI.Core.PointerEventArgs*>* handler, [out] [retval] EventRegistrationToken* cookie);
                        [eventremove] HRESULT PointerExiting([in] EventRegistrationToken cookie);
                        [eventadd] HRESULT PointerPressing([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Inking.Core.CoreInkIndependentInputSource*, Windows.UI.Core.PointerEventArgs*>* handler, [out] [retval] EventRegistrationToken* cookie);
                        [eventremove] HRESULT PointerPressing([in] EventRegistrationToken cookie);
                        [eventadd] HRESULT PointerMoving([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Inking.Core.CoreInkIndependentInputSource*, Windows.UI.Core.PointerEventArgs*>* handler, [out] [retval] EventRegistrationToken* cookie);
                        [eventremove] HRESULT PointerMoving([in] EventRegistrationToken cookie);
                        [eventadd] HRESULT PointerReleasing([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Inking.Core.CoreInkIndependentInputSource*, Windows.UI.Core.PointerEventArgs*>* handler, [out] [retval] EventRegistrationToken* cookie);
                        [eventremove] HRESULT PointerReleasing([in] EventRegistrationToken cookie);
                        [eventadd] HRESULT PointerLost([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Inking.Core.CoreInkIndependentInputSource*, 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);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 13.0)]
                    [exclusiveto(Windows.UI.Input.Inking.Core.CoreInkIndependentInputSource)]
                    [uuid(2846B012-0B59-5BB9-A3C5-BECB7CF03A33)]
                    interface ICoreInkIndependentInputSource2 : IInspectable
                    {
                        [propget] HRESULT PointerCursor([out] [retval] Windows.UI.Core.CoreCursor** value);
                        [propput] HRESULT PointerCursor([in] Windows.UI.Core.CoreCursor* value);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    [exclusiveto(Windows.UI.Input.Inking.Core.CoreInkIndependentInputSource)]
                    [uuid(73E6011B-80C0-4DFB-9B66-10BA7F3F9C84)]
                    interface ICoreInkIndependentInputSourceStatics : IInspectable
                    {
                        HRESULT Create([in] Windows.UI.Input.Inking.InkPresenter* inkPresenter, [out] [retval] Windows.UI.Input.Inking.Core.CoreInkIndependentInputSource** inkIndependentInputSource);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                    [exclusiveto(Windows.UI.Input.Inking.Core.CoreInkPresenterHost)]
                    [uuid(396E89E6-7D55-4617-9E58-68C70C9169B9)]
                    interface ICoreInkPresenterHost : IInspectable
                    {
                        [propget] HRESULT InkPresenter([out] [retval] Windows.UI.Input.Inking.InkPresenter** value);
                        [propget] HRESULT RootVisual([out] [retval] Windows.UI.Composition.ContainerVisual** value);
                        [propput] HRESULT RootVisual([in] Windows.UI.Composition.ContainerVisual* value);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 3.0)]
                    [exclusiveto(Windows.UI.Input.Inking.Core.CoreWetStrokeUpdateEventArgs)]
                    [uuid(FB07D14C-3380-457A-A987-991357896C1B)]
                    interface ICoreWetStrokeUpdateEventArgs : IInspectable
                    {
                        [propget] HRESULT NewInkPoints([out] [retval] Windows.Foundation.Collections.IVector<Windows.UI.Input.Inking.InkPoint*>** value);
                        [propget] HRESULT PointerId([out] [retval] UINT32* value);
                        [propget] HRESULT Disposition([out] [retval] Windows.UI.Input.Inking.Core.CoreWetStrokeDisposition* value);
                        [propput] HRESULT Disposition([in] Windows.UI.Input.Inking.Core.CoreWetStrokeDisposition value);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 3.0)]
                    [exclusiveto(Windows.UI.Input.Inking.Core.CoreWetStrokeUpdateSource)]
                    [uuid(1F718E22-EE52-4E00-8209-4C3E5B21A3CC)]
                    interface ICoreWetStrokeUpdateSource : IInspectable
                    {
                        [eventadd] HRESULT WetStrokeStarting([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Inking.Core.CoreWetStrokeUpdateSource*, Windows.UI.Input.Inking.Core.CoreWetStrokeUpdateEventArgs*>* handler, [out] [retval] EventRegistrationToken* cookie);
                        [eventremove] HRESULT WetStrokeStarting([in] EventRegistrationToken cookie);
                        [eventadd] HRESULT WetStrokeContinuing([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Inking.Core.CoreWetStrokeUpdateSource*, Windows.UI.Input.Inking.Core.CoreWetStrokeUpdateEventArgs*>* handler, [out] [retval] EventRegistrationToken* cookie);
                        [eventremove] HRESULT WetStrokeContinuing([in] EventRegistrationToken cookie);
                        [eventadd] HRESULT WetStrokeStopping([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Inking.Core.CoreWetStrokeUpdateSource*, Windows.UI.Input.Inking.Core.CoreWetStrokeUpdateEventArgs*>* handler, [out] [retval] EventRegistrationToken* cookie);
                        [eventremove] HRESULT WetStrokeStopping([in] EventRegistrationToken cookie);
                        [eventadd] HRESULT WetStrokeCompleted([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Inking.Core.CoreWetStrokeUpdateSource*, Windows.UI.Input.Inking.Core.CoreWetStrokeUpdateEventArgs*>* handler, [out] [retval] EventRegistrationToken* cookie);
                        [eventremove] HRESULT WetStrokeCompleted([in] EventRegistrationToken cookie);
                        [eventadd] HRESULT WetStrokeCanceled([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Inking.Core.CoreWetStrokeUpdateSource*, Windows.UI.Input.Inking.Core.CoreWetStrokeUpdateEventArgs*>* handler, [out] [retval] EventRegistrationToken* cookie);
                        [eventremove] HRESULT WetStrokeCanceled([in] EventRegistrationToken cookie);
                        [propget] HRESULT InkPresenter([out] [retval] Windows.UI.Input.Inking.InkPresenter** value);
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 3.0)]
                    [exclusiveto(Windows.UI.Input.Inking.Core.CoreWetStrokeUpdateSource)]
                    [uuid(3DAD9CBA-1D3D-46AE-AB9D-8647486C6F90)]
                    interface ICoreWetStrokeUpdateSourceStatics : IInspectable
                    {
                        HRESULT Create([in] Windows.UI.Input.Inking.InkPresenter* inkPresenter, [out] [retval] Windows.UI.Input.Inking.Core.CoreWetStrokeUpdateSource** WetStrokeUpdateSource);
                    }

                    [activatable(Windows.UI.Input.Inking.Core.ICoreIncrementalInkStrokeFactory, Windows.Foundation.UniversalApiContract, 5.0)]
                    [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                    [marshaling_behavior(agile)]
                    runtimeclass CoreIncrementalInkStroke
                    {
                        [default] interface Windows.UI.Input.Inking.Core.ICoreIncrementalInkStroke;
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                    [marshaling_behavior(agile)]
                    [static(Windows.UI.Input.Inking.Core.ICoreInkIndependentInputSourceStatics, Windows.Foundation.UniversalApiContract, 1.0)]
                    runtimeclass CoreInkIndependentInputSource
                    {
                        [default] interface Windows.UI.Input.Inking.Core.ICoreInkIndependentInputSource;
                        [contract(Windows.Foundation.UniversalApiContract, 13.0)] interface Windows.UI.Input.Inking.Core.ICoreInkIndependentInputSource2;
                    }

                    [activatable(Windows.Foundation.UniversalApiContract, 5.0)]
                    [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                    [marshaling_behavior(agile)]
                    runtimeclass CoreInkPresenterHost
                    {
                        [default] interface Windows.UI.Input.Inking.Core.ICoreInkPresenterHost;
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 3.0)]
                    [marshaling_behavior(agile)]
                    runtimeclass CoreWetStrokeUpdateEventArgs
                    {
                        [default] interface Windows.UI.Input.Inking.Core.ICoreWetStrokeUpdateEventArgs;
                    }

                    [contract(Windows.Foundation.UniversalApiContract, 3.0)]
                    [marshaling_behavior(agile)]
                    [static(Windows.UI.Input.Inking.Core.ICoreWetStrokeUpdateSourceStatics, Windows.Foundation.UniversalApiContract, 3.0)]
                    runtimeclass CoreWetStrokeUpdateSource
                    {
                        [default] interface Windows.UI.Input.Inking.Core.ICoreWetStrokeUpdateSource;
                    }
                }
            }
        }
    }
}
