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

#include "pybase.h"
#include "py.Windows.Web.UI.Interop.h"

PyTypeObject* py::winrt_type<winrt::Windows::Web::UI::Interop::WebViewControl>::python_type;
PyTypeObject* py::winrt_type<winrt::Windows::Web::UI::Interop::WebViewControlAcceleratorKeyPressedEventArgs>::python_type;
PyTypeObject* py::winrt_type<winrt::Windows::Web::UI::Interop::WebViewControlMoveFocusRequestedEventArgs>::python_type;
PyTypeObject* py::winrt_type<winrt::Windows::Web::UI::Interop::WebViewControlProcess>::python_type;
PyTypeObject* py::winrt_type<winrt::Windows::Web::UI::Interop::WebViewControlProcessOptions>::python_type;

namespace py::cpp::Windows::Web::UI::Interop
{
    // ----- WebViewControl class --------------------
    constexpr const char* const _type_name_WebViewControl = "WebViewControl";

    static PyObject* _new_WebViewControl(PyTypeObject* type, PyObject* args, PyObject* kwds) noexcept
    {
        py::set_invalid_activation_error(_type_name_WebViewControl);
        return nullptr;
    }

    static void _dealloc_WebViewControl(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self)
    {
        auto hash_value = std::hash<winrt::Windows::Foundation::IInspectable>{}(self->obj);
        py::wrapped_instance(hash_value, nullptr);
        self->obj = nullptr;
    }

    static PyObject* WebViewControl_AddInitializeScript(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* args) noexcept
    {
        Py_ssize_t arg_count = PyTuple_Size(args);

        if (arg_count == 1)
        {
            try
            {
                auto param0 = py::convert_to<winrt::hstring>(args, 0);

                self->obj.AddInitializeScript(param0);
                Py_RETURN_NONE;
            }
            catch (...)
            {
                py::to_PyErr();
                return nullptr;
            }
        }
        else
        {
            py::set_invalid_arg_count_error(arg_count);
            return nullptr;
        }
    }

    static PyObject* WebViewControl_BuildLocalStreamUri(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* args) noexcept
    {
        Py_ssize_t arg_count = PyTuple_Size(args);

        if (arg_count == 2)
        {
            try
            {
                auto param0 = py::convert_to<winrt::hstring>(args, 0);
                auto param1 = py::convert_to<winrt::hstring>(args, 1);

                return py::convert(self->obj.BuildLocalStreamUri(param0, param1));
            }
            catch (...)
            {
                py::to_PyErr();
                return nullptr;
            }
        }
        else
        {
            py::set_invalid_arg_count_error(arg_count);
            return nullptr;
        }
    }

    static PyObject* WebViewControl_CapturePreviewToStreamAsync(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* args) noexcept
    {
        Py_ssize_t arg_count = PyTuple_Size(args);

        if (arg_count == 1)
        {
            try
            {
                auto param0 = py::convert_to<winrt::Windows::Storage::Streams::IRandomAccessStream>(args, 0);

                return py::convert(self->obj.CapturePreviewToStreamAsync(param0));
            }
            catch (...)
            {
                py::to_PyErr();
                return nullptr;
            }
        }
        else
        {
            py::set_invalid_arg_count_error(arg_count);
            return nullptr;
        }
    }

    static PyObject* WebViewControl_CaptureSelectedContentToDataPackageAsync(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* args) noexcept
    {
        Py_ssize_t arg_count = PyTuple_Size(args);

        if (arg_count == 0)
        {
            try
            {
                return py::convert(self->obj.CaptureSelectedContentToDataPackageAsync());
            }
            catch (...)
            {
                py::to_PyErr();
                return nullptr;
            }
        }
        else
        {
            py::set_invalid_arg_count_error(arg_count);
            return nullptr;
        }
    }

    static PyObject* WebViewControl_Close(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* args) noexcept
    {
        Py_ssize_t arg_count = PyTuple_Size(args);

        if (arg_count == 0)
        {
            try
            {
                self->obj.Close();
                Py_RETURN_NONE;
            }
            catch (...)
            {
                py::to_PyErr();
                return nullptr;
            }
        }
        else
        {
            py::set_invalid_arg_count_error(arg_count);
            return nullptr;
        }
    }

    static PyObject* WebViewControl_GetDeferredPermissionRequestById(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* args) noexcept
    {
        Py_ssize_t arg_count = PyTuple_Size(args);

        if (arg_count == 1)
        {
            try
            {
                auto param0 = py::convert_to<uint32_t>(args, 0);
                winrt::Windows::Web::UI::WebViewControlDeferredPermissionRequest param1 { nullptr };

                self->obj.GetDeferredPermissionRequestById(param0, param1);

                py::pyobj_handle out1{ py::convert(param1) };
                if (!out1)
                {
                    return nullptr;
                }
                return out1.detach();
            }
            catch (...)
            {
                py::to_PyErr();
                return nullptr;
            }
        }
        else
        {
            py::set_invalid_arg_count_error(arg_count);
            return nullptr;
        }
    }

    static PyObject* WebViewControl_GoBack(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* args) noexcept
    {
        Py_ssize_t arg_count = PyTuple_Size(args);

        if (arg_count == 0)
        {
            try
            {
                self->obj.GoBack();
                Py_RETURN_NONE;
            }
            catch (...)
            {
                py::to_PyErr();
                return nullptr;
            }
        }
        else
        {
            py::set_invalid_arg_count_error(arg_count);
            return nullptr;
        }
    }

    static PyObject* WebViewControl_GoForward(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* args) noexcept
    {
        Py_ssize_t arg_count = PyTuple_Size(args);

        if (arg_count == 0)
        {
            try
            {
                self->obj.GoForward();
                Py_RETURN_NONE;
            }
            catch (...)
            {
                py::to_PyErr();
                return nullptr;
            }
        }
        else
        {
            py::set_invalid_arg_count_error(arg_count);
            return nullptr;
        }
    }

    static PyObject* WebViewControl_InvokeScriptAsync(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* args) noexcept
    {
        Py_ssize_t arg_count = PyTuple_Size(args);

        if (arg_count == 2)
        {
            try
            {
                auto param0 = py::convert_to<winrt::hstring>(args, 0);
                auto param1 = py::convert_to<winrt::Windows::Foundation::Collections::IIterable<winrt::hstring>>(args, 1);

                return py::convert(self->obj.InvokeScriptAsync(param0, param1));
            }
            catch (...)
            {
                py::to_PyErr();
                return nullptr;
            }
        }
        else
        {
            py::set_invalid_arg_count_error(arg_count);
            return nullptr;
        }
    }

    static PyObject* WebViewControl_MoveFocus(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* args) noexcept
    {
        Py_ssize_t arg_count = PyTuple_Size(args);

        if (arg_count == 1)
        {
            try
            {
                auto param0 = py::convert_to<winrt::Windows::Web::UI::Interop::WebViewControlMoveFocusReason>(args, 0);

                self->obj.MoveFocus(param0);
                Py_RETURN_NONE;
            }
            catch (...)
            {
                py::to_PyErr();
                return nullptr;
            }
        }
        else
        {
            py::set_invalid_arg_count_error(arg_count);
            return nullptr;
        }
    }

    static PyObject* WebViewControl_Navigate(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* args) noexcept
    {
        Py_ssize_t arg_count = PyTuple_Size(args);

        if (arg_count == 1)
        {
            try
            {
                auto param0 = py::convert_to<winrt::Windows::Foundation::Uri>(args, 0);

                self->obj.Navigate(param0);
                Py_RETURN_NONE;
            }
            catch (...)
            {
                py::to_PyErr();
                return nullptr;
            }
        }
        else
        {
            py::set_invalid_arg_count_error(arg_count);
            return nullptr;
        }
    }

    static PyObject* WebViewControl_NavigateToLocalStreamUri(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* args) noexcept
    {
        Py_ssize_t arg_count = PyTuple_Size(args);

        if (arg_count == 2)
        {
            try
            {
                auto param0 = py::convert_to<winrt::Windows::Foundation::Uri>(args, 0);
                auto param1 = py::convert_to<winrt::Windows::Web::IUriToStreamResolver>(args, 1);

                self->obj.NavigateToLocalStreamUri(param0, param1);
                Py_RETURN_NONE;
            }
            catch (...)
            {
                py::to_PyErr();
                return nullptr;
            }
        }
        else
        {
            py::set_invalid_arg_count_error(arg_count);
            return nullptr;
        }
    }

    static PyObject* WebViewControl_NavigateToString(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* args) noexcept
    {
        Py_ssize_t arg_count = PyTuple_Size(args);

        if (arg_count == 1)
        {
            try
            {
                auto param0 = py::convert_to<winrt::hstring>(args, 0);

                self->obj.NavigateToString(param0);
                Py_RETURN_NONE;
            }
            catch (...)
            {
                py::to_PyErr();
                return nullptr;
            }
        }
        else
        {
            py::set_invalid_arg_count_error(arg_count);
            return nullptr;
        }
    }

    static PyObject* WebViewControl_NavigateWithHttpRequestMessage(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* args) noexcept
    {
        Py_ssize_t arg_count = PyTuple_Size(args);

        if (arg_count == 1)
        {
            try
            {
                auto param0 = py::convert_to<winrt::Windows::Web::Http::HttpRequestMessage>(args, 0);

                self->obj.NavigateWithHttpRequestMessage(param0);
                Py_RETURN_NONE;
            }
            catch (...)
            {
                py::to_PyErr();
                return nullptr;
            }
        }
        else
        {
            py::set_invalid_arg_count_error(arg_count);
            return nullptr;
        }
    }

    static PyObject* WebViewControl_Refresh(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* args) noexcept
    {
        Py_ssize_t arg_count = PyTuple_Size(args);

        if (arg_count == 0)
        {
            try
            {
                self->obj.Refresh();
                Py_RETURN_NONE;
            }
            catch (...)
            {
                py::to_PyErr();
                return nullptr;
            }
        }
        else
        {
            py::set_invalid_arg_count_error(arg_count);
            return nullptr;
        }
    }

    static PyObject* WebViewControl_Stop(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* args) noexcept
    {
        Py_ssize_t arg_count = PyTuple_Size(args);

        if (arg_count == 0)
        {
            try
            {
                self->obj.Stop();
                Py_RETURN_NONE;
            }
            catch (...)
            {
                py::to_PyErr();
                return nullptr;
            }
        }
        else
        {
            py::set_invalid_arg_count_error(arg_count);
            return nullptr;
        }
    }

    static PyObject* WebViewControl_get_Scale(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, void* /*unused*/) noexcept
    {
        try
        {
            return py::convert(self->obj.Scale());
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static int WebViewControl_put_Scale(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* arg, void* /*unused*/) noexcept
    {
        if (arg == nullptr)
        {
            PyErr_SetString(PyExc_TypeError, "property delete not supported");
            return -1;
        }

        try
        {
            auto param0 = py::convert_to<double>(arg);

            self->obj.Scale(param0);
            return 0;
        }
        catch (...)
        {
            py::to_PyErr();
            return -1;
        }
    }

    static PyObject* WebViewControl_get_IsVisible(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, void* /*unused*/) noexcept
    {
        try
        {
            return py::convert(self->obj.IsVisible());
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static int WebViewControl_put_IsVisible(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* arg, void* /*unused*/) noexcept
    {
        if (arg == nullptr)
        {
            PyErr_SetString(PyExc_TypeError, "property delete not supported");
            return -1;
        }

        try
        {
            auto param0 = py::convert_to<bool>(arg);

            self->obj.IsVisible(param0);
            return 0;
        }
        catch (...)
        {
            py::to_PyErr();
            return -1;
        }
    }

    static PyObject* WebViewControl_get_Bounds(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, void* /*unused*/) noexcept
    {
        try
        {
            return py::convert(self->obj.Bounds());
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static int WebViewControl_put_Bounds(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* arg, void* /*unused*/) noexcept
    {
        if (arg == nullptr)
        {
            PyErr_SetString(PyExc_TypeError, "property delete not supported");
            return -1;
        }

        try
        {
            auto param0 = py::convert_to<winrt::Windows::Foundation::Rect>(arg);

            self->obj.Bounds(param0);
            return 0;
        }
        catch (...)
        {
            py::to_PyErr();
            return -1;
        }
    }

    static PyObject* WebViewControl_get_Process(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, void* /*unused*/) noexcept
    {
        try
        {
            return py::convert(self->obj.Process());
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyObject* WebViewControl_get_Source(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, void* /*unused*/) noexcept
    {
        try
        {
            return py::convert(self->obj.Source());
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static int WebViewControl_put_Source(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* arg, void* /*unused*/) noexcept
    {
        if (arg == nullptr)
        {
            PyErr_SetString(PyExc_TypeError, "property delete not supported");
            return -1;
        }

        try
        {
            auto param0 = py::convert_to<winrt::Windows::Foundation::Uri>(arg);

            self->obj.Source(param0);
            return 0;
        }
        catch (...)
        {
            py::to_PyErr();
            return -1;
        }
    }

    static PyObject* WebViewControl_get_DefaultBackgroundColor(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, void* /*unused*/) noexcept
    {
        try
        {
            return py::convert(self->obj.DefaultBackgroundColor());
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static int WebViewControl_put_DefaultBackgroundColor(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* arg, void* /*unused*/) noexcept
    {
        if (arg == nullptr)
        {
            PyErr_SetString(PyExc_TypeError, "property delete not supported");
            return -1;
        }

        try
        {
            auto param0 = py::convert_to<winrt::Windows::UI::Color>(arg);

            self->obj.DefaultBackgroundColor(param0);
            return 0;
        }
        catch (...)
        {
            py::to_PyErr();
            return -1;
        }
    }

    static PyObject* WebViewControl_get_CanGoBack(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, void* /*unused*/) noexcept
    {
        try
        {
            return py::convert(self->obj.CanGoBack());
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyObject* WebViewControl_get_CanGoForward(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, void* /*unused*/) noexcept
    {
        try
        {
            return py::convert(self->obj.CanGoForward());
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyObject* WebViewControl_get_ContainsFullScreenElement(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, void* /*unused*/) noexcept
    {
        try
        {
            return py::convert(self->obj.ContainsFullScreenElement());
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyObject* WebViewControl_get_DeferredPermissionRequests(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, void* /*unused*/) noexcept
    {
        try
        {
            return py::convert(self->obj.DeferredPermissionRequests());
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyObject* WebViewControl_get_DocumentTitle(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, void* /*unused*/) noexcept
    {
        try
        {
            return py::convert(self->obj.DocumentTitle());
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyObject* WebViewControl_get_Settings(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, void* /*unused*/) noexcept
    {
        try
        {
            return py::convert(self->obj.Settings());
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyObject* WebViewControl_add_ContainsFullScreenElementChanged(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* arg) noexcept
    {
        try
        {
            auto param0 = py::convert_to<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Web::UI::IWebViewControl, winrt::Windows::Foundation::IInspectable>>(arg);

            return py::convert(self->obj.ContainsFullScreenElementChanged(param0));
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyObject* WebViewControl_remove_ContainsFullScreenElementChanged(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* arg) noexcept
    {
        try
        {
            auto param0 = py::convert_to<winrt::event_token>(arg);

            self->obj.ContainsFullScreenElementChanged(param0);
            Py_RETURN_NONE;
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyObject* WebViewControl_add_ContentLoading(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* arg) noexcept
    {
        try
        {
            auto param0 = py::convert_to<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Web::UI::IWebViewControl, winrt::Windows::Web::UI::WebViewControlContentLoadingEventArgs>>(arg);

            return py::convert(self->obj.ContentLoading(param0));
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyObject* WebViewControl_remove_ContentLoading(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* arg) noexcept
    {
        try
        {
            auto param0 = py::convert_to<winrt::event_token>(arg);

            self->obj.ContentLoading(param0);
            Py_RETURN_NONE;
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyObject* WebViewControl_add_DOMContentLoaded(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* arg) noexcept
    {
        try
        {
            auto param0 = py::convert_to<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Web::UI::IWebViewControl, winrt::Windows::Web::UI::WebViewControlDOMContentLoadedEventArgs>>(arg);

            return py::convert(self->obj.DOMContentLoaded(param0));
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyObject* WebViewControl_remove_DOMContentLoaded(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* arg) noexcept
    {
        try
        {
            auto param0 = py::convert_to<winrt::event_token>(arg);

            self->obj.DOMContentLoaded(param0);
            Py_RETURN_NONE;
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyObject* WebViewControl_add_FrameContentLoading(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* arg) noexcept
    {
        try
        {
            auto param0 = py::convert_to<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Web::UI::IWebViewControl, winrt::Windows::Web::UI::WebViewControlContentLoadingEventArgs>>(arg);

            return py::convert(self->obj.FrameContentLoading(param0));
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyObject* WebViewControl_remove_FrameContentLoading(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* arg) noexcept
    {
        try
        {
            auto param0 = py::convert_to<winrt::event_token>(arg);

            self->obj.FrameContentLoading(param0);
            Py_RETURN_NONE;
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyObject* WebViewControl_add_FrameDOMContentLoaded(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* arg) noexcept
    {
        try
        {
            auto param0 = py::convert_to<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Web::UI::IWebViewControl, winrt::Windows::Web::UI::WebViewControlDOMContentLoadedEventArgs>>(arg);

            return py::convert(self->obj.FrameDOMContentLoaded(param0));
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyObject* WebViewControl_remove_FrameDOMContentLoaded(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* arg) noexcept
    {
        try
        {
            auto param0 = py::convert_to<winrt::event_token>(arg);

            self->obj.FrameDOMContentLoaded(param0);
            Py_RETURN_NONE;
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyObject* WebViewControl_add_FrameNavigationCompleted(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* arg) noexcept
    {
        try
        {
            auto param0 = py::convert_to<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Web::UI::IWebViewControl, winrt::Windows::Web::UI::WebViewControlNavigationCompletedEventArgs>>(arg);

            return py::convert(self->obj.FrameNavigationCompleted(param0));
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyObject* WebViewControl_remove_FrameNavigationCompleted(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* arg) noexcept
    {
        try
        {
            auto param0 = py::convert_to<winrt::event_token>(arg);

            self->obj.FrameNavigationCompleted(param0);
            Py_RETURN_NONE;
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyObject* WebViewControl_add_FrameNavigationStarting(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* arg) noexcept
    {
        try
        {
            auto param0 = py::convert_to<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Web::UI::IWebViewControl, winrt::Windows::Web::UI::WebViewControlNavigationStartingEventArgs>>(arg);

            return py::convert(self->obj.FrameNavigationStarting(param0));
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyObject* WebViewControl_remove_FrameNavigationStarting(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* arg) noexcept
    {
        try
        {
            auto param0 = py::convert_to<winrt::event_token>(arg);

            self->obj.FrameNavigationStarting(param0);
            Py_RETURN_NONE;
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyObject* WebViewControl_add_LongRunningScriptDetected(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* arg) noexcept
    {
        try
        {
            auto param0 = py::convert_to<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Web::UI::IWebViewControl, winrt::Windows::Web::UI::WebViewControlLongRunningScriptDetectedEventArgs>>(arg);

            return py::convert(self->obj.LongRunningScriptDetected(param0));
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyObject* WebViewControl_remove_LongRunningScriptDetected(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* arg) noexcept
    {
        try
        {
            auto param0 = py::convert_to<winrt::event_token>(arg);

            self->obj.LongRunningScriptDetected(param0);
            Py_RETURN_NONE;
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyObject* WebViewControl_add_NavigationCompleted(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* arg) noexcept
    {
        try
        {
            auto param0 = py::convert_to<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Web::UI::IWebViewControl, winrt::Windows::Web::UI::WebViewControlNavigationCompletedEventArgs>>(arg);

            return py::convert(self->obj.NavigationCompleted(param0));
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyObject* WebViewControl_remove_NavigationCompleted(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* arg) noexcept
    {
        try
        {
            auto param0 = py::convert_to<winrt::event_token>(arg);

            self->obj.NavigationCompleted(param0);
            Py_RETURN_NONE;
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyObject* WebViewControl_add_NavigationStarting(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* arg) noexcept
    {
        try
        {
            auto param0 = py::convert_to<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Web::UI::IWebViewControl, winrt::Windows::Web::UI::WebViewControlNavigationStartingEventArgs>>(arg);

            return py::convert(self->obj.NavigationStarting(param0));
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyObject* WebViewControl_remove_NavigationStarting(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* arg) noexcept
    {
        try
        {
            auto param0 = py::convert_to<winrt::event_token>(arg);

            self->obj.NavigationStarting(param0);
            Py_RETURN_NONE;
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyObject* WebViewControl_add_NewWindowRequested(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* arg) noexcept
    {
        try
        {
            auto param0 = py::convert_to<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Web::UI::IWebViewControl, winrt::Windows::Web::UI::WebViewControlNewWindowRequestedEventArgs>>(arg);

            return py::convert(self->obj.NewWindowRequested(param0));
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyObject* WebViewControl_remove_NewWindowRequested(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* arg) noexcept
    {
        try
        {
            auto param0 = py::convert_to<winrt::event_token>(arg);

            self->obj.NewWindowRequested(param0);
            Py_RETURN_NONE;
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyObject* WebViewControl_add_PermissionRequested(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* arg) noexcept
    {
        try
        {
            auto param0 = py::convert_to<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Web::UI::IWebViewControl, winrt::Windows::Web::UI::WebViewControlPermissionRequestedEventArgs>>(arg);

            return py::convert(self->obj.PermissionRequested(param0));
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyObject* WebViewControl_remove_PermissionRequested(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* arg) noexcept
    {
        try
        {
            auto param0 = py::convert_to<winrt::event_token>(arg);

            self->obj.PermissionRequested(param0);
            Py_RETURN_NONE;
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyObject* WebViewControl_add_ScriptNotify(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* arg) noexcept
    {
        try
        {
            auto param0 = py::convert_to<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Web::UI::IWebViewControl, winrt::Windows::Web::UI::WebViewControlScriptNotifyEventArgs>>(arg);

            return py::convert(self->obj.ScriptNotify(param0));
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyObject* WebViewControl_remove_ScriptNotify(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* arg) noexcept
    {
        try
        {
            auto param0 = py::convert_to<winrt::event_token>(arg);

            self->obj.ScriptNotify(param0);
            Py_RETURN_NONE;
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyObject* WebViewControl_add_UnsafeContentWarningDisplaying(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* arg) noexcept
    {
        try
        {
            auto param0 = py::convert_to<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Web::UI::IWebViewControl, winrt::Windows::Foundation::IInspectable>>(arg);

            return py::convert(self->obj.UnsafeContentWarningDisplaying(param0));
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyObject* WebViewControl_remove_UnsafeContentWarningDisplaying(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* arg) noexcept
    {
        try
        {
            auto param0 = py::convert_to<winrt::event_token>(arg);

            self->obj.UnsafeContentWarningDisplaying(param0);
            Py_RETURN_NONE;
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyObject* WebViewControl_add_UnsupportedUriSchemeIdentified(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* arg) noexcept
    {
        try
        {
            auto param0 = py::convert_to<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Web::UI::IWebViewControl, winrt::Windows::Web::UI::WebViewControlUnsupportedUriSchemeIdentifiedEventArgs>>(arg);

            return py::convert(self->obj.UnsupportedUriSchemeIdentified(param0));
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyObject* WebViewControl_remove_UnsupportedUriSchemeIdentified(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* arg) noexcept
    {
        try
        {
            auto param0 = py::convert_to<winrt::event_token>(arg);

            self->obj.UnsupportedUriSchemeIdentified(param0);
            Py_RETURN_NONE;
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyObject* WebViewControl_add_UnviewableContentIdentified(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* arg) noexcept
    {
        try
        {
            auto param0 = py::convert_to<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Web::UI::IWebViewControl, winrt::Windows::Web::UI::WebViewControlUnviewableContentIdentifiedEventArgs>>(arg);

            return py::convert(self->obj.UnviewableContentIdentified(param0));
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyObject* WebViewControl_remove_UnviewableContentIdentified(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* arg) noexcept
    {
        try
        {
            auto param0 = py::convert_to<winrt::event_token>(arg);

            self->obj.UnviewableContentIdentified(param0);
            Py_RETURN_NONE;
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyObject* WebViewControl_add_WebResourceRequested(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* arg) noexcept
    {
        try
        {
            auto param0 = py::convert_to<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Web::UI::IWebViewControl, winrt::Windows::Web::UI::WebViewControlWebResourceRequestedEventArgs>>(arg);

            return py::convert(self->obj.WebResourceRequested(param0));
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyObject* WebViewControl_remove_WebResourceRequested(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* arg) noexcept
    {
        try
        {
            auto param0 = py::convert_to<winrt::event_token>(arg);

            self->obj.WebResourceRequested(param0);
            Py_RETURN_NONE;
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyObject* WebViewControl_add_AcceleratorKeyPressed(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* arg) noexcept
    {
        try
        {
            auto param0 = py::convert_to<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Web::UI::Interop::WebViewControl, winrt::Windows::Web::UI::Interop::WebViewControlAcceleratorKeyPressedEventArgs>>(arg);

            return py::convert(self->obj.AcceleratorKeyPressed(param0));
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyObject* WebViewControl_remove_AcceleratorKeyPressed(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* arg) noexcept
    {
        try
        {
            auto param0 = py::convert_to<winrt::event_token>(arg);

            self->obj.AcceleratorKeyPressed(param0);
            Py_RETURN_NONE;
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyObject* WebViewControl_add_MoveFocusRequested(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* arg) noexcept
    {
        try
        {
            auto param0 = py::convert_to<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Web::UI::Interop::WebViewControl, winrt::Windows::Web::UI::Interop::WebViewControlMoveFocusRequestedEventArgs>>(arg);

            return py::convert(self->obj.MoveFocusRequested(param0));
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyObject* WebViewControl_remove_MoveFocusRequested(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* arg) noexcept
    {
        try
        {
            auto param0 = py::convert_to<winrt::event_token>(arg);

            self->obj.MoveFocusRequested(param0);
            Py_RETURN_NONE;
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyObject* WebViewControl_add_GotFocus(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* arg) noexcept
    {
        try
        {
            auto param0 = py::convert_to<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Web::UI::Interop::WebViewControl, winrt::Windows::Foundation::IInspectable>>(arg);

            return py::convert(self->obj.GotFocus(param0));
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyObject* WebViewControl_remove_GotFocus(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* arg) noexcept
    {
        try
        {
            auto param0 = py::convert_to<winrt::event_token>(arg);

            self->obj.GotFocus(param0);
            Py_RETURN_NONE;
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyObject* WebViewControl_add_LostFocus(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* arg) noexcept
    {
        try
        {
            auto param0 = py::convert_to<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Web::UI::Interop::WebViewControl, winrt::Windows::Foundation::IInspectable>>(arg);

            return py::convert(self->obj.LostFocus(param0));
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyObject* WebViewControl_remove_LostFocus(py::wrapper::Windows::Web::UI::Interop::WebViewControl* self, PyObject* arg) noexcept
    {
        try
        {
            auto param0 = py::convert_to<winrt::event_token>(arg);

            self->obj.LostFocus(param0);
            Py_RETURN_NONE;
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyObject* _from_WebViewControl(PyObject* /*unused*/, PyObject* arg) noexcept
    {
        try
        {
            auto return_value = py::convert_to<winrt::Windows::Foundation::IInspectable>(arg);
            return py::convert(return_value.as<winrt::Windows::Web::UI::Interop::WebViewControl>());
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyMethodDef _methods_WebViewControl[] = {
        { "add_initialize_script", reinterpret_cast<PyCFunction>(WebViewControl_AddInitializeScript), METH_VARARGS, nullptr },
        { "build_local_stream_uri", reinterpret_cast<PyCFunction>(WebViewControl_BuildLocalStreamUri), METH_VARARGS, nullptr },
        { "capture_preview_to_stream_async", reinterpret_cast<PyCFunction>(WebViewControl_CapturePreviewToStreamAsync), METH_VARARGS, nullptr },
        { "capture_selected_content_to_data_package_async", reinterpret_cast<PyCFunction>(WebViewControl_CaptureSelectedContentToDataPackageAsync), METH_VARARGS, nullptr },
        { "close", reinterpret_cast<PyCFunction>(WebViewControl_Close), METH_VARARGS, nullptr },
        { "get_deferred_permission_request_by_id", reinterpret_cast<PyCFunction>(WebViewControl_GetDeferredPermissionRequestById), METH_VARARGS, nullptr },
        { "go_back", reinterpret_cast<PyCFunction>(WebViewControl_GoBack), METH_VARARGS, nullptr },
        { "go_forward", reinterpret_cast<PyCFunction>(WebViewControl_GoForward), METH_VARARGS, nullptr },
        { "invoke_script_async", reinterpret_cast<PyCFunction>(WebViewControl_InvokeScriptAsync), METH_VARARGS, nullptr },
        { "move_focus", reinterpret_cast<PyCFunction>(WebViewControl_MoveFocus), METH_VARARGS, nullptr },
        { "navigate", reinterpret_cast<PyCFunction>(WebViewControl_Navigate), METH_VARARGS, nullptr },
        { "navigate_to_local_stream_uri", reinterpret_cast<PyCFunction>(WebViewControl_NavigateToLocalStreamUri), METH_VARARGS, nullptr },
        { "navigate_to_string", reinterpret_cast<PyCFunction>(WebViewControl_NavigateToString), METH_VARARGS, nullptr },
        { "navigate_with_http_request_message", reinterpret_cast<PyCFunction>(WebViewControl_NavigateWithHttpRequestMessage), METH_VARARGS, nullptr },
        { "refresh", reinterpret_cast<PyCFunction>(WebViewControl_Refresh), METH_VARARGS, nullptr },
        { "stop", reinterpret_cast<PyCFunction>(WebViewControl_Stop), METH_VARARGS, nullptr },
        { "add_contains_full_screen_element_changed", reinterpret_cast<PyCFunction>(WebViewControl_add_ContainsFullScreenElementChanged), METH_O, nullptr },
        { "remove_contains_full_screen_element_changed", reinterpret_cast<PyCFunction>(WebViewControl_remove_ContainsFullScreenElementChanged), METH_O, nullptr },
        { "add_content_loading", reinterpret_cast<PyCFunction>(WebViewControl_add_ContentLoading), METH_O, nullptr },
        { "remove_content_loading", reinterpret_cast<PyCFunction>(WebViewControl_remove_ContentLoading), METH_O, nullptr },
        { "add_d_o_m_content_loaded", reinterpret_cast<PyCFunction>(WebViewControl_add_DOMContentLoaded), METH_O, nullptr },
        { "remove_d_o_m_content_loaded", reinterpret_cast<PyCFunction>(WebViewControl_remove_DOMContentLoaded), METH_O, nullptr },
        { "add_frame_content_loading", reinterpret_cast<PyCFunction>(WebViewControl_add_FrameContentLoading), METH_O, nullptr },
        { "remove_frame_content_loading", reinterpret_cast<PyCFunction>(WebViewControl_remove_FrameContentLoading), METH_O, nullptr },
        { "add_frame_d_o_m_content_loaded", reinterpret_cast<PyCFunction>(WebViewControl_add_FrameDOMContentLoaded), METH_O, nullptr },
        { "remove_frame_d_o_m_content_loaded", reinterpret_cast<PyCFunction>(WebViewControl_remove_FrameDOMContentLoaded), METH_O, nullptr },
        { "add_frame_navigation_completed", reinterpret_cast<PyCFunction>(WebViewControl_add_FrameNavigationCompleted), METH_O, nullptr },
        { "remove_frame_navigation_completed", reinterpret_cast<PyCFunction>(WebViewControl_remove_FrameNavigationCompleted), METH_O, nullptr },
        { "add_frame_navigation_starting", reinterpret_cast<PyCFunction>(WebViewControl_add_FrameNavigationStarting), METH_O, nullptr },
        { "remove_frame_navigation_starting", reinterpret_cast<PyCFunction>(WebViewControl_remove_FrameNavigationStarting), METH_O, nullptr },
        { "add_long_running_script_detected", reinterpret_cast<PyCFunction>(WebViewControl_add_LongRunningScriptDetected), METH_O, nullptr },
        { "remove_long_running_script_detected", reinterpret_cast<PyCFunction>(WebViewControl_remove_LongRunningScriptDetected), METH_O, nullptr },
        { "add_navigation_completed", reinterpret_cast<PyCFunction>(WebViewControl_add_NavigationCompleted), METH_O, nullptr },
        { "remove_navigation_completed", reinterpret_cast<PyCFunction>(WebViewControl_remove_NavigationCompleted), METH_O, nullptr },
        { "add_navigation_starting", reinterpret_cast<PyCFunction>(WebViewControl_add_NavigationStarting), METH_O, nullptr },
        { "remove_navigation_starting", reinterpret_cast<PyCFunction>(WebViewControl_remove_NavigationStarting), METH_O, nullptr },
        { "add_new_window_requested", reinterpret_cast<PyCFunction>(WebViewControl_add_NewWindowRequested), METH_O, nullptr },
        { "remove_new_window_requested", reinterpret_cast<PyCFunction>(WebViewControl_remove_NewWindowRequested), METH_O, nullptr },
        { "add_permission_requested", reinterpret_cast<PyCFunction>(WebViewControl_add_PermissionRequested), METH_O, nullptr },
        { "remove_permission_requested", reinterpret_cast<PyCFunction>(WebViewControl_remove_PermissionRequested), METH_O, nullptr },
        { "add_script_notify", reinterpret_cast<PyCFunction>(WebViewControl_add_ScriptNotify), METH_O, nullptr },
        { "remove_script_notify", reinterpret_cast<PyCFunction>(WebViewControl_remove_ScriptNotify), METH_O, nullptr },
        { "add_unsafe_content_warning_displaying", reinterpret_cast<PyCFunction>(WebViewControl_add_UnsafeContentWarningDisplaying), METH_O, nullptr },
        { "remove_unsafe_content_warning_displaying", reinterpret_cast<PyCFunction>(WebViewControl_remove_UnsafeContentWarningDisplaying), METH_O, nullptr },
        { "add_unsupported_uri_scheme_identified", reinterpret_cast<PyCFunction>(WebViewControl_add_UnsupportedUriSchemeIdentified), METH_O, nullptr },
        { "remove_unsupported_uri_scheme_identified", reinterpret_cast<PyCFunction>(WebViewControl_remove_UnsupportedUriSchemeIdentified), METH_O, nullptr },
        { "add_unviewable_content_identified", reinterpret_cast<PyCFunction>(WebViewControl_add_UnviewableContentIdentified), METH_O, nullptr },
        { "remove_unviewable_content_identified", reinterpret_cast<PyCFunction>(WebViewControl_remove_UnviewableContentIdentified), METH_O, nullptr },
        { "add_web_resource_requested", reinterpret_cast<PyCFunction>(WebViewControl_add_WebResourceRequested), METH_O, nullptr },
        { "remove_web_resource_requested", reinterpret_cast<PyCFunction>(WebViewControl_remove_WebResourceRequested), METH_O, nullptr },
        { "add_accelerator_key_pressed", reinterpret_cast<PyCFunction>(WebViewControl_add_AcceleratorKeyPressed), METH_O, nullptr },
        { "remove_accelerator_key_pressed", reinterpret_cast<PyCFunction>(WebViewControl_remove_AcceleratorKeyPressed), METH_O, nullptr },
        { "add_move_focus_requested", reinterpret_cast<PyCFunction>(WebViewControl_add_MoveFocusRequested), METH_O, nullptr },
        { "remove_move_focus_requested", reinterpret_cast<PyCFunction>(WebViewControl_remove_MoveFocusRequested), METH_O, nullptr },
        { "add_got_focus", reinterpret_cast<PyCFunction>(WebViewControl_add_GotFocus), METH_O, nullptr },
        { "remove_got_focus", reinterpret_cast<PyCFunction>(WebViewControl_remove_GotFocus), METH_O, nullptr },
        { "add_lost_focus", reinterpret_cast<PyCFunction>(WebViewControl_add_LostFocus), METH_O, nullptr },
        { "remove_lost_focus", reinterpret_cast<PyCFunction>(WebViewControl_remove_LostFocus), METH_O, nullptr },
        { "_from", reinterpret_cast<PyCFunction>(_from_WebViewControl), METH_O | METH_STATIC, nullptr },
        { }
    };

    static PyGetSetDef _getset_WebViewControl[] = {
        { "scale", reinterpret_cast<getter>(WebViewControl_get_Scale), reinterpret_cast<setter>(WebViewControl_put_Scale), nullptr, nullptr },
        { "is_visible", reinterpret_cast<getter>(WebViewControl_get_IsVisible), reinterpret_cast<setter>(WebViewControl_put_IsVisible), nullptr, nullptr },
        { "bounds", reinterpret_cast<getter>(WebViewControl_get_Bounds), reinterpret_cast<setter>(WebViewControl_put_Bounds), nullptr, nullptr },
        { "process", reinterpret_cast<getter>(WebViewControl_get_Process), nullptr, nullptr, nullptr },
        { "source", reinterpret_cast<getter>(WebViewControl_get_Source), reinterpret_cast<setter>(WebViewControl_put_Source), nullptr, nullptr },
        { "default_background_color", reinterpret_cast<getter>(WebViewControl_get_DefaultBackgroundColor), reinterpret_cast<setter>(WebViewControl_put_DefaultBackgroundColor), nullptr, nullptr },
        { "can_go_back", reinterpret_cast<getter>(WebViewControl_get_CanGoBack), nullptr, nullptr, nullptr },
        { "can_go_forward", reinterpret_cast<getter>(WebViewControl_get_CanGoForward), nullptr, nullptr, nullptr },
        { "contains_full_screen_element", reinterpret_cast<getter>(WebViewControl_get_ContainsFullScreenElement), nullptr, nullptr, nullptr },
        { "deferred_permission_requests", reinterpret_cast<getter>(WebViewControl_get_DeferredPermissionRequests), nullptr, nullptr, nullptr },
        { "document_title", reinterpret_cast<getter>(WebViewControl_get_DocumentTitle), nullptr, nullptr, nullptr },
        { "settings", reinterpret_cast<getter>(WebViewControl_get_Settings), nullptr, nullptr, nullptr },
        { }
    };

    static PyType_Slot _type_slots_WebViewControl[] = 
    {
        { Py_tp_new, _new_WebViewControl },
        { Py_tp_dealloc, _dealloc_WebViewControl },
        { Py_tp_methods, _methods_WebViewControl },
        { Py_tp_getset, _getset_WebViewControl },
        { },
    };

    static PyType_Spec _type_spec_WebViewControl =
    {
        "_winsdk_Windows_Web_UI_Interop.WebViewControl",
        sizeof(py::wrapper::Windows::Web::UI::Interop::WebViewControl),
        0,
        Py_TPFLAGS_DEFAULT,
        _type_slots_WebViewControl
    };

    // ----- WebViewControlAcceleratorKeyPressedEventArgs class --------------------
    constexpr const char* const _type_name_WebViewControlAcceleratorKeyPressedEventArgs = "WebViewControlAcceleratorKeyPressedEventArgs";

    static PyObject* _new_WebViewControlAcceleratorKeyPressedEventArgs(PyTypeObject* type, PyObject* args, PyObject* kwds) noexcept
    {
        py::set_invalid_activation_error(_type_name_WebViewControlAcceleratorKeyPressedEventArgs);
        return nullptr;
    }

    static void _dealloc_WebViewControlAcceleratorKeyPressedEventArgs(py::wrapper::Windows::Web::UI::Interop::WebViewControlAcceleratorKeyPressedEventArgs* self)
    {
        auto hash_value = std::hash<winrt::Windows::Foundation::IInspectable>{}(self->obj);
        py::wrapped_instance(hash_value, nullptr);
        self->obj = nullptr;
    }

    static PyObject* WebViewControlAcceleratorKeyPressedEventArgs_get_Handled(py::wrapper::Windows::Web::UI::Interop::WebViewControlAcceleratorKeyPressedEventArgs* self, void* /*unused*/) noexcept
    {
        try
        {
            return py::convert(self->obj.Handled());
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static int WebViewControlAcceleratorKeyPressedEventArgs_put_Handled(py::wrapper::Windows::Web::UI::Interop::WebViewControlAcceleratorKeyPressedEventArgs* self, PyObject* arg, void* /*unused*/) noexcept
    {
        if (arg == nullptr)
        {
            PyErr_SetString(PyExc_TypeError, "property delete not supported");
            return -1;
        }

        try
        {
            auto param0 = py::convert_to<bool>(arg);

            self->obj.Handled(param0);
            return 0;
        }
        catch (...)
        {
            py::to_PyErr();
            return -1;
        }
    }

    static PyObject* WebViewControlAcceleratorKeyPressedEventArgs_get_EventType(py::wrapper::Windows::Web::UI::Interop::WebViewControlAcceleratorKeyPressedEventArgs* self, void* /*unused*/) noexcept
    {
        try
        {
            return py::convert(self->obj.EventType());
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyObject* WebViewControlAcceleratorKeyPressedEventArgs_get_KeyStatus(py::wrapper::Windows::Web::UI::Interop::WebViewControlAcceleratorKeyPressedEventArgs* self, void* /*unused*/) noexcept
    {
        try
        {
            return py::convert(self->obj.KeyStatus());
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyObject* WebViewControlAcceleratorKeyPressedEventArgs_get_RoutingStage(py::wrapper::Windows::Web::UI::Interop::WebViewControlAcceleratorKeyPressedEventArgs* self, void* /*unused*/) noexcept
    {
        try
        {
            return py::convert(self->obj.RoutingStage());
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyObject* WebViewControlAcceleratorKeyPressedEventArgs_get_VirtualKey(py::wrapper::Windows::Web::UI::Interop::WebViewControlAcceleratorKeyPressedEventArgs* self, void* /*unused*/) noexcept
    {
        try
        {
            return py::convert(self->obj.VirtualKey());
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyObject* _from_WebViewControlAcceleratorKeyPressedEventArgs(PyObject* /*unused*/, PyObject* arg) noexcept
    {
        try
        {
            auto return_value = py::convert_to<winrt::Windows::Foundation::IInspectable>(arg);
            return py::convert(return_value.as<winrt::Windows::Web::UI::Interop::WebViewControlAcceleratorKeyPressedEventArgs>());
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyMethodDef _methods_WebViewControlAcceleratorKeyPressedEventArgs[] = {
        { "_from", reinterpret_cast<PyCFunction>(_from_WebViewControlAcceleratorKeyPressedEventArgs), METH_O | METH_STATIC, nullptr },
        { }
    };

    static PyGetSetDef _getset_WebViewControlAcceleratorKeyPressedEventArgs[] = {
        { "handled", reinterpret_cast<getter>(WebViewControlAcceleratorKeyPressedEventArgs_get_Handled), reinterpret_cast<setter>(WebViewControlAcceleratorKeyPressedEventArgs_put_Handled), nullptr, nullptr },
        { "event_type", reinterpret_cast<getter>(WebViewControlAcceleratorKeyPressedEventArgs_get_EventType), nullptr, nullptr, nullptr },
        { "key_status", reinterpret_cast<getter>(WebViewControlAcceleratorKeyPressedEventArgs_get_KeyStatus), nullptr, nullptr, nullptr },
        { "routing_stage", reinterpret_cast<getter>(WebViewControlAcceleratorKeyPressedEventArgs_get_RoutingStage), nullptr, nullptr, nullptr },
        { "virtual_key", reinterpret_cast<getter>(WebViewControlAcceleratorKeyPressedEventArgs_get_VirtualKey), nullptr, nullptr, nullptr },
        { }
    };

    static PyType_Slot _type_slots_WebViewControlAcceleratorKeyPressedEventArgs[] = 
    {
        { Py_tp_new, _new_WebViewControlAcceleratorKeyPressedEventArgs },
        { Py_tp_dealloc, _dealloc_WebViewControlAcceleratorKeyPressedEventArgs },
        { Py_tp_methods, _methods_WebViewControlAcceleratorKeyPressedEventArgs },
        { Py_tp_getset, _getset_WebViewControlAcceleratorKeyPressedEventArgs },
        { },
    };

    static PyType_Spec _type_spec_WebViewControlAcceleratorKeyPressedEventArgs =
    {
        "_winsdk_Windows_Web_UI_Interop.WebViewControlAcceleratorKeyPressedEventArgs",
        sizeof(py::wrapper::Windows::Web::UI::Interop::WebViewControlAcceleratorKeyPressedEventArgs),
        0,
        Py_TPFLAGS_DEFAULT,
        _type_slots_WebViewControlAcceleratorKeyPressedEventArgs
    };

    // ----- WebViewControlMoveFocusRequestedEventArgs class --------------------
    constexpr const char* const _type_name_WebViewControlMoveFocusRequestedEventArgs = "WebViewControlMoveFocusRequestedEventArgs";

    static PyObject* _new_WebViewControlMoveFocusRequestedEventArgs(PyTypeObject* type, PyObject* args, PyObject* kwds) noexcept
    {
        py::set_invalid_activation_error(_type_name_WebViewControlMoveFocusRequestedEventArgs);
        return nullptr;
    }

    static void _dealloc_WebViewControlMoveFocusRequestedEventArgs(py::wrapper::Windows::Web::UI::Interop::WebViewControlMoveFocusRequestedEventArgs* self)
    {
        auto hash_value = std::hash<winrt::Windows::Foundation::IInspectable>{}(self->obj);
        py::wrapped_instance(hash_value, nullptr);
        self->obj = nullptr;
    }

    static PyObject* WebViewControlMoveFocusRequestedEventArgs_get_Reason(py::wrapper::Windows::Web::UI::Interop::WebViewControlMoveFocusRequestedEventArgs* self, void* /*unused*/) noexcept
    {
        try
        {
            return py::convert(self->obj.Reason());
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyObject* _from_WebViewControlMoveFocusRequestedEventArgs(PyObject* /*unused*/, PyObject* arg) noexcept
    {
        try
        {
            auto return_value = py::convert_to<winrt::Windows::Foundation::IInspectable>(arg);
            return py::convert(return_value.as<winrt::Windows::Web::UI::Interop::WebViewControlMoveFocusRequestedEventArgs>());
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyMethodDef _methods_WebViewControlMoveFocusRequestedEventArgs[] = {
        { "_from", reinterpret_cast<PyCFunction>(_from_WebViewControlMoveFocusRequestedEventArgs), METH_O | METH_STATIC, nullptr },
        { }
    };

    static PyGetSetDef _getset_WebViewControlMoveFocusRequestedEventArgs[] = {
        { "reason", reinterpret_cast<getter>(WebViewControlMoveFocusRequestedEventArgs_get_Reason), nullptr, nullptr, nullptr },
        { }
    };

    static PyType_Slot _type_slots_WebViewControlMoveFocusRequestedEventArgs[] = 
    {
        { Py_tp_new, _new_WebViewControlMoveFocusRequestedEventArgs },
        { Py_tp_dealloc, _dealloc_WebViewControlMoveFocusRequestedEventArgs },
        { Py_tp_methods, _methods_WebViewControlMoveFocusRequestedEventArgs },
        { Py_tp_getset, _getset_WebViewControlMoveFocusRequestedEventArgs },
        { },
    };

    static PyType_Spec _type_spec_WebViewControlMoveFocusRequestedEventArgs =
    {
        "_winsdk_Windows_Web_UI_Interop.WebViewControlMoveFocusRequestedEventArgs",
        sizeof(py::wrapper::Windows::Web::UI::Interop::WebViewControlMoveFocusRequestedEventArgs),
        0,
        Py_TPFLAGS_DEFAULT,
        _type_slots_WebViewControlMoveFocusRequestedEventArgs
    };

    // ----- WebViewControlProcess class --------------------
    constexpr const char* const _type_name_WebViewControlProcess = "WebViewControlProcess";

    static PyObject* _new_WebViewControlProcess(PyTypeObject* type, PyObject* args, PyObject* kwds) noexcept
    {
        if (kwds != nullptr)
        {
            py::set_invalid_kwd_args_error();
            return nullptr;
        }

        Py_ssize_t arg_count = PyTuple_Size(args);
        if (arg_count == 1)
        {
            try
            {
                auto param0 = py::convert_to<winrt::Windows::Web::UI::Interop::WebViewControlProcessOptions>(args, 0);

                winrt::Windows::Web::UI::Interop::WebViewControlProcess instance{ param0 };
                return py::wrap(instance, type);
            }
            catch (...)
            {
                py::to_PyErr();
                return nullptr;
            }
        }
        else if (arg_count == 0)
        {
            try
            {
                winrt::Windows::Web::UI::Interop::WebViewControlProcess instance{  };
                return py::wrap(instance, type);
            }
            catch (...)
            {
                py::to_PyErr();
                return nullptr;
            }
        }
        else
        {
            py::set_invalid_arg_count_error(arg_count);
            return nullptr;
        }
    }

    static void _dealloc_WebViewControlProcess(py::wrapper::Windows::Web::UI::Interop::WebViewControlProcess* self)
    {
        auto hash_value = std::hash<winrt::Windows::Foundation::IInspectable>{}(self->obj);
        py::wrapped_instance(hash_value, nullptr);
        self->obj = nullptr;
    }

    static PyObject* WebViewControlProcess_CreateWebViewControlAsync(py::wrapper::Windows::Web::UI::Interop::WebViewControlProcess* self, PyObject* args) noexcept
    {
        Py_ssize_t arg_count = PyTuple_Size(args);

        if (arg_count == 2)
        {
            try
            {
                auto param0 = py::convert_to<int64_t>(args, 0);
                auto param1 = py::convert_to<winrt::Windows::Foundation::Rect>(args, 1);

                return py::convert(self->obj.CreateWebViewControlAsync(param0, param1));
            }
            catch (...)
            {
                py::to_PyErr();
                return nullptr;
            }
        }
        else
        {
            py::set_invalid_arg_count_error(arg_count);
            return nullptr;
        }
    }

    static PyObject* WebViewControlProcess_GetWebViewControls(py::wrapper::Windows::Web::UI::Interop::WebViewControlProcess* self, PyObject* args) noexcept
    {
        Py_ssize_t arg_count = PyTuple_Size(args);

        if (arg_count == 0)
        {
            try
            {
                return py::convert(self->obj.GetWebViewControls());
            }
            catch (...)
            {
                py::to_PyErr();
                return nullptr;
            }
        }
        else
        {
            py::set_invalid_arg_count_error(arg_count);
            return nullptr;
        }
    }

    static PyObject* WebViewControlProcess_Terminate(py::wrapper::Windows::Web::UI::Interop::WebViewControlProcess* self, PyObject* args) noexcept
    {
        Py_ssize_t arg_count = PyTuple_Size(args);

        if (arg_count == 0)
        {
            try
            {
                self->obj.Terminate();
                Py_RETURN_NONE;
            }
            catch (...)
            {
                py::to_PyErr();
                return nullptr;
            }
        }
        else
        {
            py::set_invalid_arg_count_error(arg_count);
            return nullptr;
        }
    }

    static PyObject* WebViewControlProcess_get_EnterpriseId(py::wrapper::Windows::Web::UI::Interop::WebViewControlProcess* self, void* /*unused*/) noexcept
    {
        try
        {
            return py::convert(self->obj.EnterpriseId());
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyObject* WebViewControlProcess_get_IsPrivateNetworkClientServerCapabilityEnabled(py::wrapper::Windows::Web::UI::Interop::WebViewControlProcess* self, void* /*unused*/) noexcept
    {
        try
        {
            return py::convert(self->obj.IsPrivateNetworkClientServerCapabilityEnabled());
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyObject* WebViewControlProcess_get_ProcessId(py::wrapper::Windows::Web::UI::Interop::WebViewControlProcess* self, void* /*unused*/) noexcept
    {
        try
        {
            return py::convert(self->obj.ProcessId());
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyObject* WebViewControlProcess_add_ProcessExited(py::wrapper::Windows::Web::UI::Interop::WebViewControlProcess* self, PyObject* arg) noexcept
    {
        try
        {
            auto param0 = py::convert_to<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Web::UI::Interop::WebViewControlProcess, winrt::Windows::Foundation::IInspectable>>(arg);

            return py::convert(self->obj.ProcessExited(param0));
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyObject* WebViewControlProcess_remove_ProcessExited(py::wrapper::Windows::Web::UI::Interop::WebViewControlProcess* self, PyObject* arg) noexcept
    {
        try
        {
            auto param0 = py::convert_to<winrt::event_token>(arg);

            self->obj.ProcessExited(param0);
            Py_RETURN_NONE;
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyObject* _from_WebViewControlProcess(PyObject* /*unused*/, PyObject* arg) noexcept
    {
        try
        {
            auto return_value = py::convert_to<winrt::Windows::Foundation::IInspectable>(arg);
            return py::convert(return_value.as<winrt::Windows::Web::UI::Interop::WebViewControlProcess>());
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyMethodDef _methods_WebViewControlProcess[] = {
        { "create_web_view_control_async", reinterpret_cast<PyCFunction>(WebViewControlProcess_CreateWebViewControlAsync), METH_VARARGS, nullptr },
        { "get_web_view_controls", reinterpret_cast<PyCFunction>(WebViewControlProcess_GetWebViewControls), METH_VARARGS, nullptr },
        { "terminate", reinterpret_cast<PyCFunction>(WebViewControlProcess_Terminate), METH_VARARGS, nullptr },
        { "add_process_exited", reinterpret_cast<PyCFunction>(WebViewControlProcess_add_ProcessExited), METH_O, nullptr },
        { "remove_process_exited", reinterpret_cast<PyCFunction>(WebViewControlProcess_remove_ProcessExited), METH_O, nullptr },
        { "_from", reinterpret_cast<PyCFunction>(_from_WebViewControlProcess), METH_O | METH_STATIC, nullptr },
        { }
    };

    static PyGetSetDef _getset_WebViewControlProcess[] = {
        { "enterprise_id", reinterpret_cast<getter>(WebViewControlProcess_get_EnterpriseId), nullptr, nullptr, nullptr },
        { "is_private_network_client_server_capability_enabled", reinterpret_cast<getter>(WebViewControlProcess_get_IsPrivateNetworkClientServerCapabilityEnabled), nullptr, nullptr, nullptr },
        { "process_id", reinterpret_cast<getter>(WebViewControlProcess_get_ProcessId), nullptr, nullptr, nullptr },
        { }
    };

    static PyType_Slot _type_slots_WebViewControlProcess[] = 
    {
        { Py_tp_new, _new_WebViewControlProcess },
        { Py_tp_dealloc, _dealloc_WebViewControlProcess },
        { Py_tp_methods, _methods_WebViewControlProcess },
        { Py_tp_getset, _getset_WebViewControlProcess },
        { },
    };

    static PyType_Spec _type_spec_WebViewControlProcess =
    {
        "_winsdk_Windows_Web_UI_Interop.WebViewControlProcess",
        sizeof(py::wrapper::Windows::Web::UI::Interop::WebViewControlProcess),
        0,
        Py_TPFLAGS_DEFAULT,
        _type_slots_WebViewControlProcess
    };

    // ----- WebViewControlProcessOptions class --------------------
    constexpr const char* const _type_name_WebViewControlProcessOptions = "WebViewControlProcessOptions";

    static PyObject* _new_WebViewControlProcessOptions(PyTypeObject* type, PyObject* args, PyObject* kwds) noexcept
    {
        if (kwds != nullptr)
        {
            py::set_invalid_kwd_args_error();
            return nullptr;
        }

        Py_ssize_t arg_count = PyTuple_Size(args);
        if (arg_count == 0)
        {
            try
            {
                winrt::Windows::Web::UI::Interop::WebViewControlProcessOptions instance{  };
                return py::wrap(instance, type);
            }
            catch (...)
            {
                py::to_PyErr();
                return nullptr;
            }
        }
        else
        {
            py::set_invalid_arg_count_error(arg_count);
            return nullptr;
        }
    }

    static void _dealloc_WebViewControlProcessOptions(py::wrapper::Windows::Web::UI::Interop::WebViewControlProcessOptions* self)
    {
        auto hash_value = std::hash<winrt::Windows::Foundation::IInspectable>{}(self->obj);
        py::wrapped_instance(hash_value, nullptr);
        self->obj = nullptr;
    }

    static PyObject* WebViewControlProcessOptions_get_PrivateNetworkClientServerCapability(py::wrapper::Windows::Web::UI::Interop::WebViewControlProcessOptions* self, void* /*unused*/) noexcept
    {
        try
        {
            return py::convert(self->obj.PrivateNetworkClientServerCapability());
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static int WebViewControlProcessOptions_put_PrivateNetworkClientServerCapability(py::wrapper::Windows::Web::UI::Interop::WebViewControlProcessOptions* self, PyObject* arg, void* /*unused*/) noexcept
    {
        if (arg == nullptr)
        {
            PyErr_SetString(PyExc_TypeError, "property delete not supported");
            return -1;
        }

        try
        {
            auto param0 = py::convert_to<winrt::Windows::Web::UI::Interop::WebViewControlProcessCapabilityState>(arg);

            self->obj.PrivateNetworkClientServerCapability(param0);
            return 0;
        }
        catch (...)
        {
            py::to_PyErr();
            return -1;
        }
    }

    static PyObject* WebViewControlProcessOptions_get_EnterpriseId(py::wrapper::Windows::Web::UI::Interop::WebViewControlProcessOptions* self, void* /*unused*/) noexcept
    {
        try
        {
            return py::convert(self->obj.EnterpriseId());
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static int WebViewControlProcessOptions_put_EnterpriseId(py::wrapper::Windows::Web::UI::Interop::WebViewControlProcessOptions* self, PyObject* arg, void* /*unused*/) noexcept
    {
        if (arg == nullptr)
        {
            PyErr_SetString(PyExc_TypeError, "property delete not supported");
            return -1;
        }

        try
        {
            auto param0 = py::convert_to<winrt::hstring>(arg);

            self->obj.EnterpriseId(param0);
            return 0;
        }
        catch (...)
        {
            py::to_PyErr();
            return -1;
        }
    }

    static PyObject* _from_WebViewControlProcessOptions(PyObject* /*unused*/, PyObject* arg) noexcept
    {
        try
        {
            auto return_value = py::convert_to<winrt::Windows::Foundation::IInspectable>(arg);
            return py::convert(return_value.as<winrt::Windows::Web::UI::Interop::WebViewControlProcessOptions>());
        }
        catch (...)
        {
            py::to_PyErr();
            return nullptr;
        }
    }

    static PyMethodDef _methods_WebViewControlProcessOptions[] = {
        { "_from", reinterpret_cast<PyCFunction>(_from_WebViewControlProcessOptions), METH_O | METH_STATIC, nullptr },
        { }
    };

    static PyGetSetDef _getset_WebViewControlProcessOptions[] = {
        { "private_network_client_server_capability", reinterpret_cast<getter>(WebViewControlProcessOptions_get_PrivateNetworkClientServerCapability), reinterpret_cast<setter>(WebViewControlProcessOptions_put_PrivateNetworkClientServerCapability), nullptr, nullptr },
        { "enterprise_id", reinterpret_cast<getter>(WebViewControlProcessOptions_get_EnterpriseId), reinterpret_cast<setter>(WebViewControlProcessOptions_put_EnterpriseId), nullptr, nullptr },
        { }
    };

    static PyType_Slot _type_slots_WebViewControlProcessOptions[] = 
    {
        { Py_tp_new, _new_WebViewControlProcessOptions },
        { Py_tp_dealloc, _dealloc_WebViewControlProcessOptions },
        { Py_tp_methods, _methods_WebViewControlProcessOptions },
        { Py_tp_getset, _getset_WebViewControlProcessOptions },
        { },
    };

    static PyType_Spec _type_spec_WebViewControlProcessOptions =
    {
        "_winsdk_Windows_Web_UI_Interop.WebViewControlProcessOptions",
        sizeof(py::wrapper::Windows::Web::UI::Interop::WebViewControlProcessOptions),
        0,
        Py_TPFLAGS_DEFAULT,
        _type_slots_WebViewControlProcessOptions
    };

    // ----- Windows.Web.UI.Interop Initialization --------------------
    static int module_exec(PyObject* module) noexcept
    {
        try
        {
            py::pyobj_handle bases { PyTuple_Pack(1, py::winrt_type<py::Object>::python_type) };

            py::winrt_type<winrt::Windows::Web::UI::Interop::WebViewControl>::python_type = py::register_python_type(module, _type_name_WebViewControl, &_type_spec_WebViewControl, bases.get());
            py::winrt_type<winrt::Windows::Web::UI::Interop::WebViewControlAcceleratorKeyPressedEventArgs>::python_type = py::register_python_type(module, _type_name_WebViewControlAcceleratorKeyPressedEventArgs, &_type_spec_WebViewControlAcceleratorKeyPressedEventArgs, bases.get());
            py::winrt_type<winrt::Windows::Web::UI::Interop::WebViewControlMoveFocusRequestedEventArgs>::python_type = py::register_python_type(module, _type_name_WebViewControlMoveFocusRequestedEventArgs, &_type_spec_WebViewControlMoveFocusRequestedEventArgs, bases.get());
            py::winrt_type<winrt::Windows::Web::UI::Interop::WebViewControlProcess>::python_type = py::register_python_type(module, _type_name_WebViewControlProcess, &_type_spec_WebViewControlProcess, bases.get());
            py::winrt_type<winrt::Windows::Web::UI::Interop::WebViewControlProcessOptions>::python_type = py::register_python_type(module, _type_name_WebViewControlProcessOptions, &_type_spec_WebViewControlProcessOptions, bases.get());

            return 0;
        }
        catch (...)
        {
            py::to_PyErr();
            return -1;
        }
    }

    static PyModuleDef_Slot module_slots[] = {{Py_mod_exec, module_exec}, {}};

    PyDoc_STRVAR(module_doc, "Windows.Web.UI.Interop");

    static PyModuleDef module_def
        = {PyModuleDef_HEAD_INIT,
           "_winsdk_Windows_Web_UI_Interop",
           module_doc,
           0,
           nullptr,
           module_slots,
           nullptr,
           nullptr,
           nullptr};
} // py::cpp::Windows::Web::UI::Interop

PyMODINIT_FUNC
PyInit__winsdk_Windows_Web_UI_Interop (void) noexcept
{
    return PyModuleDef_Init(&py::cpp::Windows::Web::UI::Interop::module_def);
}
