// WARNING: Please don't edit this file. It was generated by Python/WinRT v3.2.1

#pragma once

#include "pybase.h"
static_assert(winrt::check_version(PYWINRT_VERSION, "3.2.1"), "Mismatched Py/WinRT headers.");
#include <winrt/Windows.Foundation.h>
#include <winrt/Windows.Foundation.Collections.h>
#include <winrt/Windows.Media.Core.h>
#include <winrt/Windows.Media.Protection.h>
#include <winrt/Windows.Storage.h>

#include <winrt/Windows.Media.Protection.PlayReady.h>

namespace py::proj::Windows::Media::Protection::PlayReady
{
}

namespace py
{
    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Media::Protection::PlayReady::NDCertificateFeature> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Media::Protection::PlayReady::NDCertificatePlatformID> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Media::Protection::PlayReady::NDCertificateType> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Media::Protection::PlayReady::NDClosedCaptionFormat> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Media::Protection::PlayReady::NDContentIDType> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Media::Protection::PlayReady::NDMediaStreamType> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Media::Protection::PlayReady::NDProximityDetectionType> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Media::Protection::PlayReady::NDStartAsyncOptions> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Media::Protection::PlayReady::PlayReadyDecryptorSetup> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Media::Protection::PlayReady::PlayReadyEncryptionAlgorithm> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Media::Protection::PlayReady::PlayReadyHardwareDRMFeatures> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Media::Protection::PlayReady::PlayReadyITADataFormat> = "i";


    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::NDCertificateFeature>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready.NDCertificateFeature";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "NDCertificateFeature";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::NDCertificatePlatformID>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready.NDCertificatePlatformID";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "NDCertificatePlatformID";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::NDCertificateType>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready.NDCertificateType";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "NDCertificateType";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::NDClosedCaptionFormat>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready.NDClosedCaptionFormat";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "NDClosedCaptionFormat";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::NDContentIDType>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready.NDContentIDType";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "NDContentIDType";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::NDMediaStreamType>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready.NDMediaStreamType";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "NDMediaStreamType";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::NDProximityDetectionType>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready.NDProximityDetectionType";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "NDProximityDetectionType";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::NDStartAsyncOptions>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready.NDStartAsyncOptions";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "NDStartAsyncOptions";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::PlayReadyDecryptorSetup>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready.PlayReadyDecryptorSetup";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "PlayReadyDecryptorSetup";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::PlayReadyEncryptionAlgorithm>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready.PlayReadyEncryptionAlgorithm";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "PlayReadyEncryptionAlgorithm";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::PlayReadyHardwareDRMFeatures>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready.PlayReadyHardwareDRMFeatures";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "PlayReadyHardwareDRMFeatures";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::PlayReadyITADataFormat>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready.PlayReadyITADataFormat";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "PlayReadyITADataFormat";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::NDClient>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready.NDClient";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "NDClient";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::NDCustomData>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready.NDCustomData";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "NDCustomData";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::NDDownloadEngineNotifier>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready.NDDownloadEngineNotifier";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "NDDownloadEngineNotifier";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::NDLicenseFetchDescriptor>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready.NDLicenseFetchDescriptor";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "NDLicenseFetchDescriptor";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::NDStorageFileHelper>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready.NDStorageFileHelper";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "NDStorageFileHelper";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::NDStreamParserNotifier>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready.NDStreamParserNotifier";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "NDStreamParserNotifier";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::NDTCPMessenger>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready.NDTCPMessenger";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "NDTCPMessenger";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::PlayReadyContentHeader>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready.PlayReadyContentHeader";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "PlayReadyContentHeader";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::PlayReadyContentResolver>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready.PlayReadyContentResolver";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "PlayReadyContentResolver";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::PlayReadyDomain>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready.PlayReadyDomain";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "PlayReadyDomain";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::PlayReadyDomainIterable>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready.PlayReadyDomainIterable";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "PlayReadyDomainIterable";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::PlayReadyDomainIterator>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready.PlayReadyDomainIterator";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "PlayReadyDomainIterator";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::PlayReadyDomainJoinServiceRequest>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready.PlayReadyDomainJoinServiceRequest";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "PlayReadyDomainJoinServiceRequest";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::PlayReadyDomainLeaveServiceRequest>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready.PlayReadyDomainLeaveServiceRequest";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "PlayReadyDomainLeaveServiceRequest";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::PlayReadyITADataGenerator>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready.PlayReadyITADataGenerator";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "PlayReadyITADataGenerator";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::PlayReadyIndividualizationServiceRequest>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready.PlayReadyIndividualizationServiceRequest";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "PlayReadyIndividualizationServiceRequest";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::PlayReadyLicense>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready.PlayReadyLicense";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "PlayReadyLicense";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::PlayReadyLicenseAcquisitionServiceRequest>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready.PlayReadyLicenseAcquisitionServiceRequest";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "PlayReadyLicenseAcquisitionServiceRequest";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::PlayReadyLicenseIterable>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready.PlayReadyLicenseIterable";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "PlayReadyLicenseIterable";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::PlayReadyLicenseIterator>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready.PlayReadyLicenseIterator";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "PlayReadyLicenseIterator";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::PlayReadyLicenseManagement>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready.PlayReadyLicenseManagement";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "PlayReadyLicenseManagement";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::PlayReadyLicenseSession>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready.PlayReadyLicenseSession";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "PlayReadyLicenseSession";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::PlayReadyMeteringReportServiceRequest>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready.PlayReadyMeteringReportServiceRequest";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "PlayReadyMeteringReportServiceRequest";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::PlayReadyRevocationServiceRequest>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready.PlayReadyRevocationServiceRequest";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "PlayReadyRevocationServiceRequest";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::PlayReadySecureStopIterable>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready.PlayReadySecureStopIterable";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "PlayReadySecureStopIterable";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::PlayReadySecureStopIterator>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready.PlayReadySecureStopIterator";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "PlayReadySecureStopIterator";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::PlayReadySecureStopServiceRequest>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready.PlayReadySecureStopServiceRequest";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "PlayReadySecureStopServiceRequest";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::PlayReadySoapMessage>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready.PlayReadySoapMessage";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "PlayReadySoapMessage";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::PlayReadyStatics>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready.PlayReadyStatics";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "PlayReadyStatics";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::INDClosedCaptionDataReceivedEventArgs>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready._INDClosedCaptionDataReceivedEventArgs";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "_INDClosedCaptionDataReceivedEventArgs";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::INDCustomData>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready._INDCustomData";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "_INDCustomData";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::INDDownloadEngine>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready._INDDownloadEngine";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "_INDDownloadEngine";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::INDDownloadEngineNotifier>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready._INDDownloadEngineNotifier";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "_INDDownloadEngineNotifier";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::INDLicenseFetchCompletedEventArgs>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready._INDLicenseFetchCompletedEventArgs";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "_INDLicenseFetchCompletedEventArgs";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::INDLicenseFetchDescriptor>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready._INDLicenseFetchDescriptor";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "_INDLicenseFetchDescriptor";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::INDLicenseFetchResult>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready._INDLicenseFetchResult";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "_INDLicenseFetchResult";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::INDMessenger>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready._INDMessenger";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "_INDMessenger";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::INDProximityDetectionCompletedEventArgs>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready._INDProximityDetectionCompletedEventArgs";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "_INDProximityDetectionCompletedEventArgs";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::INDRegistrationCompletedEventArgs>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready._INDRegistrationCompletedEventArgs";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "_INDRegistrationCompletedEventArgs";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::INDSendResult>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready._INDSendResult";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "_INDSendResult";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::INDStartResult>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready._INDStartResult";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "_INDStartResult";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::INDStorageFileHelper>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready._INDStorageFileHelper";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "_INDStorageFileHelper";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::INDStreamParser>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready._INDStreamParser";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "_INDStreamParser";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::INDStreamParserNotifier>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready._INDStreamParserNotifier";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "_INDStreamParserNotifier";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::INDTransmitterProperties>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready._INDTransmitterProperties";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "_INDTransmitterProperties";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::IPlayReadyDomain>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready._IPlayReadyDomain";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "_IPlayReadyDomain";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::IPlayReadyLicense>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready._IPlayReadyLicense";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "_IPlayReadyLicense";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::IPlayReadyLicenseAcquisitionServiceRequest>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready._IPlayReadyLicenseAcquisitionServiceRequest";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "_IPlayReadyLicenseAcquisitionServiceRequest";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::IPlayReadyLicenseSession>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready._IPlayReadyLicenseSession";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "_IPlayReadyLicenseSession";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::IPlayReadyLicenseSession2>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready._IPlayReadyLicenseSession2";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "_IPlayReadyLicenseSession2";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::IPlayReadySecureStopServiceRequest>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready._IPlayReadySecureStopServiceRequest";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "_IPlayReadySecureStopServiceRequest";
    };

    template<>
    struct py_type<winrt::Windows::Media::Protection::PlayReady::IPlayReadyServiceRequest>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.media.protection.playready._IPlayReadyServiceRequest";
        static constexpr const char* module_name = "winrt.windows.media.protection.playready";
        static constexpr const char* type_name = "_IPlayReadyServiceRequest";
    };
}

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

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

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

namespace py::impl::Windows::Media::Protection::PlayReady
{
}

namespace py::wrapper::Windows::Media::Protection::PlayReady
{
    using NDClient = py::winrt_wrapper<winrt::Windows::Media::Protection::PlayReady::NDClient>;
    using NDCustomData = py::winrt_wrapper<winrt::Windows::Media::Protection::PlayReady::NDCustomData>;
    using NDDownloadEngineNotifier = py::winrt_wrapper<winrt::Windows::Media::Protection::PlayReady::NDDownloadEngineNotifier>;
    using NDLicenseFetchDescriptor = py::winrt_wrapper<winrt::Windows::Media::Protection::PlayReady::NDLicenseFetchDescriptor>;
    using NDStorageFileHelper = py::winrt_wrapper<winrt::Windows::Media::Protection::PlayReady::NDStorageFileHelper>;
    using NDStreamParserNotifier = py::winrt_wrapper<winrt::Windows::Media::Protection::PlayReady::NDStreamParserNotifier>;
    using NDTCPMessenger = py::winrt_wrapper<winrt::Windows::Media::Protection::PlayReady::NDTCPMessenger>;
    using PlayReadyContentHeader = py::winrt_wrapper<winrt::Windows::Media::Protection::PlayReady::PlayReadyContentHeader>;
    using PlayReadyContentResolver = py::winrt_wrapper<winrt::Windows::Media::Protection::PlayReady::PlayReadyContentResolver>;
    using PlayReadyDomain = py::winrt_wrapper<winrt::Windows::Media::Protection::PlayReady::PlayReadyDomain>;
    using PlayReadyDomainIterable = py::winrt_wrapper<winrt::Windows::Media::Protection::PlayReady::PlayReadyDomainIterable>;
    using PlayReadyDomainIterator = py::winrt_wrapper<winrt::Windows::Media::Protection::PlayReady::PlayReadyDomainIterator>;
    using PlayReadyDomainJoinServiceRequest = py::winrt_wrapper<winrt::Windows::Media::Protection::PlayReady::PlayReadyDomainJoinServiceRequest>;
    using PlayReadyDomainLeaveServiceRequest = py::winrt_wrapper<winrt::Windows::Media::Protection::PlayReady::PlayReadyDomainLeaveServiceRequest>;
    using PlayReadyITADataGenerator = py::winrt_wrapper<winrt::Windows::Media::Protection::PlayReady::PlayReadyITADataGenerator>;
    using PlayReadyIndividualizationServiceRequest = py::winrt_wrapper<winrt::Windows::Media::Protection::PlayReady::PlayReadyIndividualizationServiceRequest>;
    using PlayReadyLicense = py::winrt_wrapper<winrt::Windows::Media::Protection::PlayReady::PlayReadyLicense>;
    using PlayReadyLicenseAcquisitionServiceRequest = py::winrt_wrapper<winrt::Windows::Media::Protection::PlayReady::PlayReadyLicenseAcquisitionServiceRequest>;
    using PlayReadyLicenseIterable = py::winrt_wrapper<winrt::Windows::Media::Protection::PlayReady::PlayReadyLicenseIterable>;
    using PlayReadyLicenseIterator = py::winrt_wrapper<winrt::Windows::Media::Protection::PlayReady::PlayReadyLicenseIterator>;
    using PlayReadyLicenseManagement = py::winrt_wrapper<winrt::Windows::Media::Protection::PlayReady::PlayReadyLicenseManagement>;
    using PlayReadyLicenseSession = py::winrt_wrapper<winrt::Windows::Media::Protection::PlayReady::PlayReadyLicenseSession>;
    using PlayReadyMeteringReportServiceRequest = py::winrt_wrapper<winrt::Windows::Media::Protection::PlayReady::PlayReadyMeteringReportServiceRequest>;
    using PlayReadyRevocationServiceRequest = py::winrt_wrapper<winrt::Windows::Media::Protection::PlayReady::PlayReadyRevocationServiceRequest>;
    using PlayReadySecureStopIterable = py::winrt_wrapper<winrt::Windows::Media::Protection::PlayReady::PlayReadySecureStopIterable>;
    using PlayReadySecureStopIterator = py::winrt_wrapper<winrt::Windows::Media::Protection::PlayReady::PlayReadySecureStopIterator>;
    using PlayReadySecureStopServiceRequest = py::winrt_wrapper<winrt::Windows::Media::Protection::PlayReady::PlayReadySecureStopServiceRequest>;
    using PlayReadySoapMessage = py::winrt_wrapper<winrt::Windows::Media::Protection::PlayReady::PlayReadySoapMessage>;
    using PlayReadyStatics = py::winrt_wrapper<winrt::Windows::Media::Protection::PlayReady::PlayReadyStatics>;
    using INDClosedCaptionDataReceivedEventArgs = py::winrt_wrapper<winrt::Windows::Media::Protection::PlayReady::INDClosedCaptionDataReceivedEventArgs>;
    using INDCustomData = py::winrt_wrapper<winrt::Windows::Media::Protection::PlayReady::INDCustomData>;
    using INDDownloadEngine = py::winrt_wrapper<winrt::Windows::Media::Protection::PlayReady::INDDownloadEngine>;
    using INDDownloadEngineNotifier = py::winrt_wrapper<winrt::Windows::Media::Protection::PlayReady::INDDownloadEngineNotifier>;
    using INDLicenseFetchCompletedEventArgs = py::winrt_wrapper<winrt::Windows::Media::Protection::PlayReady::INDLicenseFetchCompletedEventArgs>;
    using INDLicenseFetchDescriptor = py::winrt_wrapper<winrt::Windows::Media::Protection::PlayReady::INDLicenseFetchDescriptor>;
    using INDLicenseFetchResult = py::winrt_wrapper<winrt::Windows::Media::Protection::PlayReady::INDLicenseFetchResult>;
    using INDMessenger = py::winrt_wrapper<winrt::Windows::Media::Protection::PlayReady::INDMessenger>;
    using INDProximityDetectionCompletedEventArgs = py::winrt_wrapper<winrt::Windows::Media::Protection::PlayReady::INDProximityDetectionCompletedEventArgs>;
    using INDRegistrationCompletedEventArgs = py::winrt_wrapper<winrt::Windows::Media::Protection::PlayReady::INDRegistrationCompletedEventArgs>;
    using INDSendResult = py::winrt_wrapper<winrt::Windows::Media::Protection::PlayReady::INDSendResult>;
    using INDStartResult = py::winrt_wrapper<winrt::Windows::Media::Protection::PlayReady::INDStartResult>;
    using INDStorageFileHelper = py::winrt_wrapper<winrt::Windows::Media::Protection::PlayReady::INDStorageFileHelper>;
    using INDStreamParser = py::winrt_wrapper<winrt::Windows::Media::Protection::PlayReady::INDStreamParser>;
    using INDStreamParserNotifier = py::winrt_wrapper<winrt::Windows::Media::Protection::PlayReady::INDStreamParserNotifier>;
    using INDTransmitterProperties = py::winrt_wrapper<winrt::Windows::Media::Protection::PlayReady::INDTransmitterProperties>;
    using IPlayReadyDomain = py::winrt_wrapper<winrt::Windows::Media::Protection::PlayReady::IPlayReadyDomain>;
    using IPlayReadyLicense = py::winrt_wrapper<winrt::Windows::Media::Protection::PlayReady::IPlayReadyLicense>;
    using IPlayReadyLicenseAcquisitionServiceRequest = py::winrt_wrapper<winrt::Windows::Media::Protection::PlayReady::IPlayReadyLicenseAcquisitionServiceRequest>;
    using IPlayReadyLicenseSession = py::winrt_wrapper<winrt::Windows::Media::Protection::PlayReady::IPlayReadyLicenseSession>;
    using IPlayReadyLicenseSession2 = py::winrt_wrapper<winrt::Windows::Media::Protection::PlayReady::IPlayReadyLicenseSession2>;
    using IPlayReadySecureStopServiceRequest = py::winrt_wrapper<winrt::Windows::Media::Protection::PlayReady::IPlayReadySecureStopServiceRequest>;
    using IPlayReadyServiceRequest = py::winrt_wrapper<winrt::Windows::Media::Protection::PlayReady::IPlayReadyServiceRequest>;
}

namespace py
{
}
