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

#pragma once

#include "pybase.h"

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

#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.Storage.h")
#include "py.Windows.Storage.h"
#endif

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

#include <winrt/Windows.Devices.Geolocation.h>
#include <winrt/Windows.Foundation.h>
#include <winrt/Windows.Foundation.Collections.h>
#include <winrt/Windows.Storage.h>
#include <winrt/Windows.Storage.Streams.h>

#include <winrt/Windows.Storage.FileProperties.h>

namespace py::proj::Windows::Storage::FileProperties
{}

namespace py::impl::Windows::Storage::FileProperties
{}

namespace py::wrapper::Windows::Storage::FileProperties
{
    using BasicProperties = py::winrt_wrapper<winrt::Windows::Storage::FileProperties::BasicProperties>;
    using DocumentProperties = py::winrt_wrapper<winrt::Windows::Storage::FileProperties::DocumentProperties>;
    using GeotagHelper = py::winrt_wrapper<winrt::Windows::Storage::FileProperties::GeotagHelper>;
    using ImageProperties = py::winrt_wrapper<winrt::Windows::Storage::FileProperties::ImageProperties>;
    using MusicProperties = py::winrt_wrapper<winrt::Windows::Storage::FileProperties::MusicProperties>;
    using StorageItemContentProperties = py::winrt_wrapper<winrt::Windows::Storage::FileProperties::StorageItemContentProperties>;
    using StorageItemThumbnail = py::winrt_wrapper<winrt::Windows::Storage::FileProperties::StorageItemThumbnail>;
    using VideoProperties = py::winrt_wrapper<winrt::Windows::Storage::FileProperties::VideoProperties>;
    using IStorageItemExtraProperties = py::winrt_wrapper<winrt::Windows::Storage::FileProperties::IStorageItemExtraProperties>;
}

namespace py
{
    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Storage::FileProperties::PhotoOrientation> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Storage::FileProperties::PropertyPrefetchOptions> = "I";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Storage::FileProperties::ThumbnailMode> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Storage::FileProperties::ThumbnailOptions> = "I";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Storage::FileProperties::ThumbnailType> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Storage::FileProperties::VideoOrientation> = "i";


    template<>
    struct py_type<winrt::Windows::Storage::FileProperties::PhotoOrientation>
    {
        static PyObject* get_python_type() noexcept;
    };

    template<>
    struct py_type<winrt::Windows::Storage::FileProperties::PropertyPrefetchOptions>
    {
        static PyObject* get_python_type() noexcept;
    };

    template<>
    struct py_type<winrt::Windows::Storage::FileProperties::ThumbnailMode>
    {
        static PyObject* get_python_type() noexcept;
    };

    template<>
    struct py_type<winrt::Windows::Storage::FileProperties::ThumbnailOptions>
    {
        static PyObject* get_python_type() noexcept;
    };

    template<>
    struct py_type<winrt::Windows::Storage::FileProperties::ThumbnailType>
    {
        static PyObject* get_python_type() noexcept;
    };

    template<>
    struct py_type<winrt::Windows::Storage::FileProperties::VideoOrientation>
    {
        static PyObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Storage::FileProperties::BasicProperties>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Storage::FileProperties::DocumentProperties>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Storage::FileProperties::GeotagHelper>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Storage::FileProperties::ImageProperties>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Storage::FileProperties::MusicProperties>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Storage::FileProperties::StorageItemContentProperties>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Storage::FileProperties::StorageItemThumbnail>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Storage::FileProperties::VideoProperties>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Storage::FileProperties::IStorageItemExtraProperties>
    {
        static PyTypeObject* get_python_type() noexcept;
    };
}
