// WARNING: Please don't edit this file. It was generated by Python/WinRT v1.0.0-beta.2

#pragma once

#include "pybase.h"

#if __has_include("py.Windows.Foundation.h")
#include "py.Windows.Foundation.h"
#endif

#if __has_include("py.Windows.Foundation.Collections.h")
#include "py.Windows.Foundation.Collections.h"
#endif

#if __has_include("py.Windows.Foundation.Numerics.h")
#include "py.Windows.Foundation.Numerics.h"
#endif

#if __has_include("py.Windows.Storage.Streams.h")
#include "py.Windows.Storage.Streams.h"
#endif

#if __has_include("py.Windows.UI.h")
#include "py.Windows.UI.h"
#endif

#if __has_include("py.Windows.UI.Core.h")
#include "py.Windows.UI.Core.h"
#endif

#if __has_include("py.Windows.UI.Input.h")
#include "py.Windows.UI.Input.h"
#endif

#include <winrt/Windows.UI.Input.Inking.h>

namespace py::proj::Windows::UI::Input::Inking
{}

namespace py::impl::Windows::UI::Input::Inking
{}

namespace py::wrapper::Windows::UI::Input::Inking
{
    using InkDrawingAttributes = py::winrt_wrapper<winrt::Windows::UI::Input::Inking::InkDrawingAttributes>;
    using InkDrawingAttributesPencilProperties = py::winrt_wrapper<winrt::Windows::UI::Input::Inking::InkDrawingAttributesPencilProperties>;
    using InkInputConfiguration = py::winrt_wrapper<winrt::Windows::UI::Input::Inking::InkInputConfiguration>;
    using InkInputProcessingConfiguration = py::winrt_wrapper<winrt::Windows::UI::Input::Inking::InkInputProcessingConfiguration>;
    using InkManager = py::winrt_wrapper<winrt::Windows::UI::Input::Inking::InkManager>;
    using InkModelerAttributes = py::winrt_wrapper<winrt::Windows::UI::Input::Inking::InkModelerAttributes>;
    using InkPoint = py::winrt_wrapper<winrt::Windows::UI::Input::Inking::InkPoint>;
    using InkPresenter = py::winrt_wrapper<winrt::Windows::UI::Input::Inking::InkPresenter>;
    using InkPresenterProtractor = py::winrt_wrapper<winrt::Windows::UI::Input::Inking::InkPresenterProtractor>;
    using InkPresenterRuler = py::winrt_wrapper<winrt::Windows::UI::Input::Inking::InkPresenterRuler>;
    using InkRecognitionResult = py::winrt_wrapper<winrt::Windows::UI::Input::Inking::InkRecognitionResult>;
    using InkRecognizer = py::winrt_wrapper<winrt::Windows::UI::Input::Inking::InkRecognizer>;
    using InkRecognizerContainer = py::winrt_wrapper<winrt::Windows::UI::Input::Inking::InkRecognizerContainer>;
    using InkStroke = py::winrt_wrapper<winrt::Windows::UI::Input::Inking::InkStroke>;
    using InkStrokeBuilder = py::winrt_wrapper<winrt::Windows::UI::Input::Inking::InkStrokeBuilder>;
    using InkStrokeContainer = py::winrt_wrapper<winrt::Windows::UI::Input::Inking::InkStrokeContainer>;
    using InkStrokeInput = py::winrt_wrapper<winrt::Windows::UI::Input::Inking::InkStrokeInput>;
    using InkStrokeRenderingSegment = py::winrt_wrapper<winrt::Windows::UI::Input::Inking::InkStrokeRenderingSegment>;
    using InkStrokesCollectedEventArgs = py::winrt_wrapper<winrt::Windows::UI::Input::Inking::InkStrokesCollectedEventArgs>;
    using InkStrokesErasedEventArgs = py::winrt_wrapper<winrt::Windows::UI::Input::Inking::InkStrokesErasedEventArgs>;
    using InkSynchronizer = py::winrt_wrapper<winrt::Windows::UI::Input::Inking::InkSynchronizer>;
    using InkUnprocessedInput = py::winrt_wrapper<winrt::Windows::UI::Input::Inking::InkUnprocessedInput>;
    using PenAndInkSettings = py::winrt_wrapper<winrt::Windows::UI::Input::Inking::PenAndInkSettings>;
    using IInkPointFactory = py::winrt_wrapper<winrt::Windows::UI::Input::Inking::IInkPointFactory>;
    using IInkPresenterRulerFactory = py::winrt_wrapper<winrt::Windows::UI::Input::Inking::IInkPresenterRulerFactory>;
    using IInkPresenterStencil = py::winrt_wrapper<winrt::Windows::UI::Input::Inking::IInkPresenterStencil>;
    using IInkRecognizerContainer = py::winrt_wrapper<winrt::Windows::UI::Input::Inking::IInkRecognizerContainer>;
    using IInkStrokeContainer = py::winrt_wrapper<winrt::Windows::UI::Input::Inking::IInkStrokeContainer>;
}

namespace py
{
    template<>
    struct winrt_type<winrt::Windows::UI::Input::Inking::InkDrawingAttributes>
    {
        static PyTypeObject* python_type;
        static PyTypeObject* get_python_type() { return python_type; }
    };

    template<>
    struct winrt_type<winrt::Windows::UI::Input::Inking::InkDrawingAttributesPencilProperties>
    {
        static PyTypeObject* python_type;
        static PyTypeObject* get_python_type() { return python_type; }
    };

    template<>
    struct winrt_type<winrt::Windows::UI::Input::Inking::InkInputConfiguration>
    {
        static PyTypeObject* python_type;
        static PyTypeObject* get_python_type() { return python_type; }
    };

    template<>
    struct winrt_type<winrt::Windows::UI::Input::Inking::InkInputProcessingConfiguration>
    {
        static PyTypeObject* python_type;
        static PyTypeObject* get_python_type() { return python_type; }
    };

    template<>
    struct winrt_type<winrt::Windows::UI::Input::Inking::InkManager>
    {
        static PyTypeObject* python_type;
        static PyTypeObject* get_python_type() { return python_type; }
    };

    template<>
    struct winrt_type<winrt::Windows::UI::Input::Inking::InkModelerAttributes>
    {
        static PyTypeObject* python_type;
        static PyTypeObject* get_python_type() { return python_type; }
    };

    template<>
    struct winrt_type<winrt::Windows::UI::Input::Inking::InkPoint>
    {
        static PyTypeObject* python_type;
        static PyTypeObject* get_python_type() { return python_type; }
    };

    template<>
    struct winrt_type<winrt::Windows::UI::Input::Inking::InkPresenter>
    {
        static PyTypeObject* python_type;
        static PyTypeObject* get_python_type() { return python_type; }
    };

    template<>
    struct winrt_type<winrt::Windows::UI::Input::Inking::InkPresenterProtractor>
    {
        static PyTypeObject* python_type;
        static PyTypeObject* get_python_type() { return python_type; }
    };

    template<>
    struct winrt_type<winrt::Windows::UI::Input::Inking::InkPresenterRuler>
    {
        static PyTypeObject* python_type;
        static PyTypeObject* get_python_type() { return python_type; }
    };

    template<>
    struct winrt_type<winrt::Windows::UI::Input::Inking::InkRecognitionResult>
    {
        static PyTypeObject* python_type;
        static PyTypeObject* get_python_type() { return python_type; }
    };

    template<>
    struct winrt_type<winrt::Windows::UI::Input::Inking::InkRecognizer>
    {
        static PyTypeObject* python_type;
        static PyTypeObject* get_python_type() { return python_type; }
    };

    template<>
    struct winrt_type<winrt::Windows::UI::Input::Inking::InkRecognizerContainer>
    {
        static PyTypeObject* python_type;
        static PyTypeObject* get_python_type() { return python_type; }
    };

    template<>
    struct winrt_type<winrt::Windows::UI::Input::Inking::InkStroke>
    {
        static PyTypeObject* python_type;
        static PyTypeObject* get_python_type() { return python_type; }
    };

    template<>
    struct winrt_type<winrt::Windows::UI::Input::Inking::InkStrokeBuilder>
    {
        static PyTypeObject* python_type;
        static PyTypeObject* get_python_type() { return python_type; }
    };

    template<>
    struct winrt_type<winrt::Windows::UI::Input::Inking::InkStrokeContainer>
    {
        static PyTypeObject* python_type;
        static PyTypeObject* get_python_type() { return python_type; }
    };

    template<>
    struct winrt_type<winrt::Windows::UI::Input::Inking::InkStrokeInput>
    {
        static PyTypeObject* python_type;
        static PyTypeObject* get_python_type() { return python_type; }
    };

    template<>
    struct winrt_type<winrt::Windows::UI::Input::Inking::InkStrokeRenderingSegment>
    {
        static PyTypeObject* python_type;
        static PyTypeObject* get_python_type() { return python_type; }
    };

    template<>
    struct winrt_type<winrt::Windows::UI::Input::Inking::InkStrokesCollectedEventArgs>
    {
        static PyTypeObject* python_type;
        static PyTypeObject* get_python_type() { return python_type; }
    };

    template<>
    struct winrt_type<winrt::Windows::UI::Input::Inking::InkStrokesErasedEventArgs>
    {
        static PyTypeObject* python_type;
        static PyTypeObject* get_python_type() { return python_type; }
    };

    template<>
    struct winrt_type<winrt::Windows::UI::Input::Inking::InkSynchronizer>
    {
        static PyTypeObject* python_type;
        static PyTypeObject* get_python_type() { return python_type; }
    };

    template<>
    struct winrt_type<winrt::Windows::UI::Input::Inking::InkUnprocessedInput>
    {
        static PyTypeObject* python_type;
        static PyTypeObject* get_python_type() { return python_type; }
    };

    template<>
    struct winrt_type<winrt::Windows::UI::Input::Inking::PenAndInkSettings>
    {
        static PyTypeObject* python_type;
        static PyTypeObject* get_python_type() { return python_type; }
    };

    template<>
    struct winrt_type<winrt::Windows::UI::Input::Inking::IInkPointFactory>
    {
        static PyTypeObject* python_type;
        static PyTypeObject* get_python_type() { return python_type; }
    };

    template<>
    struct winrt_type<winrt::Windows::UI::Input::Inking::IInkPresenterRulerFactory>
    {
        static PyTypeObject* python_type;
        static PyTypeObject* get_python_type() { return python_type; }
    };

    template<>
    struct winrt_type<winrt::Windows::UI::Input::Inking::IInkPresenterStencil>
    {
        static PyTypeObject* python_type;
        static PyTypeObject* get_python_type() { return python_type; }
    };

    template<>
    struct winrt_type<winrt::Windows::UI::Input::Inking::IInkRecognizerContainer>
    {
        static PyTypeObject* python_type;
        static PyTypeObject* get_python_type() { return python_type; }
    };

    template<>
    struct winrt_type<winrt::Windows::UI::Input::Inking::IInkStrokeContainer>
    {
        static PyTypeObject* python_type;
        static PyTypeObject* get_python_type() { return python_type; }
    };

}
