//
// 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";
import "Windows.UI.Core.idl";
import "Windows.UI.Input.Inking.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(__windows2Eui2Ecore_h__)")
cpp_quote("#include <Windows.UI.Core.h>")
cpp_quote("#endif // !defined(__windows2Eui2Ecore_h__)")
cpp_quote("#if !defined(__windows2Eui2Einput2Einking_h__)")
cpp_quote("#include <Windows.UI.Input.Inking.h>")
cpp_quote("#endif // !defined(__windows2Eui2Einput2Einking_h__)")
cpp_quote("#if defined(__cplusplus)")
cpp_quote("extern \"C\" {")
cpp_quote("#endif // defined(__cplusplus)")

// Forward Declare
namespace Windows
{
    namespace Foundation
    {
        apicontract UniversalApiContract;
    }
}
namespace Windows
{
    namespace UI
    {
        namespace Core
        {
            runtimeclass PointerEventArgs;
        }
    }
}
namespace Windows
{
    namespace UI
    {
        namespace Input
        {
            namespace Inking
            {
                runtimeclass InkPoint;

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

                    interface ICoreInkIndependentInputSource;

                    interface ICoreInkIndependentInputSourceStatics;

                    interface ICoreWetStrokeUpdateEventArgs;

                    interface ICoreWetStrokeUpdateSource;

                    interface ICoreWetStrokeUpdateSourceStatics;

                    runtimeclass CoreInkIndependentInputSource;

                    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, 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, 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, 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);
                    }

                    [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, 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;
                    }
                }
            }
        }
    }
}
