|  | /** | 
|  | * This file has no copyright assigned and is placed in the Public Domain. | 
|  | * This file is part of the w64 mingw-runtime package. | 
|  | * No warranty is given; refer to the file DISCLAIMER.PD within this package. | 
|  | */ | 
|  | #ifndef _INC_MSDRM | 
|  | #define _INC_MSDRM | 
|  | #include <msdrmdefs.h> | 
|  | #ifdef __cplusplus | 
|  | extern "C" { | 
|  | #endif | 
|  |  | 
|  | HRESULT WINAPI DRMCreateClientSession( | 
|  | DRMCALLBACK pfnCallback, | 
|  | UINT uCallbackVersion, | 
|  | PWSTR wszGroupIDProviderType, | 
|  | PWSTR wszGroupID, | 
|  | DRMHSESSION *phClient | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMAcquireIssuanceLicenseTemplate( | 
|  | DRMHSESSION hClient, | 
|  | UINT uFlags, | 
|  | VOID *pvReserved, | 
|  | UINT cReserved, | 
|  | PWSTR *pwszReserved, | 
|  | PWSTR wszURL, | 
|  | VOID *pvContext | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMActivate( | 
|  | DRMHSESSION hClient, | 
|  | UINT uFlags, | 
|  | UINT uLangID, | 
|  | DRM_ACTSERV_INFO *pActServInfo, | 
|  | VOID *pvContext, | 
|  | HWND hParentWnd | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMGetServiceLocation( | 
|  | DRMHSESSION hClient, | 
|  | UINT uServiceType, | 
|  | UINT uServiceLocation, | 
|  | PWSTR wszIssuanceLicense, | 
|  | UINT *puServiceURLLength, | 
|  | PWSTR wszServiceURL | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMIsActivated( | 
|  | DRMHSESSION hClient, | 
|  | UINT uFlags, | 
|  | DRM_ACTSERV_INFO *pActServInfo | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMCheckSecurity( | 
|  | DRMENVHANDLE hEnv, | 
|  | UINT cLevel | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMCloseSession( | 
|  | DRMHSESSION hSession | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMCreateLicenseStorageSession( | 
|  | DRMENVHANDLE hEnv, | 
|  | DRMHANDLE hDefaultLibrary, | 
|  | DRMHSESSION hClient, | 
|  | UINT uFlags, | 
|  | PWSTR wszIssuanceLicense, | 
|  | DRMHSESSION *phLicenseStorage | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMDuplicateSession( | 
|  | DRMHSESSION hSessionIn, | 
|  | DRMHSESSION *phSessionOut | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMGetClientVersion( | 
|  | DRM_CLIENT_VERSION_INFO *pDRMClientVersionInfo | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMGetEnvironmentInfo( | 
|  | DRMENVHANDLE handle, | 
|  | PWSTR wszAttribute, | 
|  | DRMENCODINGTYPE *peEncoding, | 
|  | UINT *pcBuffer, | 
|  | BYTE *pbBuffer | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMGetIntervalTime( | 
|  | DRMPUBHANDLE hIssuanceLicense, | 
|  | UINT *pcDays | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMGetOwnerLicense( | 
|  | DRMPUBHANDLE hIssuanceLicense, | 
|  | UINT *puLength, | 
|  | PWSTR wszOwnerLicense | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMGetProcAddress( | 
|  | DRMHANDLE hLibrary, | 
|  | PWSTR wszProcName, | 
|  | FARPROC *ppfnProcAddress | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMGetSecurityProvider( | 
|  | UINT uFlags, | 
|  | UINT *puTypeLen, | 
|  | PWSTR wszType, | 
|  | UINT *puPathLen, | 
|  | PWSTR wszPath | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMInitEnvironment( | 
|  | DRMSECURITYPROVIDERTYPE eSecurityProviderType, | 
|  | DRMSPECTYPE eSpecification, | 
|  | PWSTR wszSecurityProvider, | 
|  | PWSTR wszManifestCredentials, | 
|  | PWSTR wszMachineCredentials, | 
|  | DRMENVHANDLE *phEnv, | 
|  | DRMHANDLE *phDefaultLibrary | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMLoadLibrary( | 
|  | DRMENVHANDLE hEnv, | 
|  | DRMSPECTYPE eSpecification, | 
|  | PWSTR wszLibraryProvider, | 
|  | PWSTR wszCredentials, | 
|  | DRMHANDLE *phLibrary | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMRegisterContent( | 
|  | WINBOOL fRegister | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMRegisterRevocationList( | 
|  | DRMENVHANDLE hEnv, | 
|  | PWSTR wszRevocationList | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMRepair(void); | 
|  |  | 
|  | HRESULT WINAPI DRMSetIntervalTime( | 
|  | DRMPUBHANDLE hIssuanceLicense, | 
|  | UINT cDays | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMSetGlobalOptions( | 
|  | DRMGLOBALOPTIONS eGlobalOptions, | 
|  | LPVOID pvdata, | 
|  | DWORD dwlen | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMAddRightWithUser( | 
|  | DRMPUBHANDLE hIssuanceLicense, | 
|  | DRMPUBHANDLE hRight, | 
|  | DRMPUBHANDLE hUser | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMClearAllRights( | 
|  | DRMPUBHANDLE hIssuanceLicense | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMCreateIssuanceLicense( | 
|  | SYSTEMTIME *pstTimeFrom, | 
|  | SYSTEMTIME *pstTimeUntil, | 
|  | PWSTR wszReferralInfoName, | 
|  | PWSTR wszReferralInfoURL, | 
|  | DRMPUBHANDLE hOwner, | 
|  | PWSTR wszIssuanceLicense, | 
|  | DRMHANDLE hBoundLicense, | 
|  | DRMPUBHANDLE *phIssuanceLicense | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMCreateRight( | 
|  | PWSTR wszRightName, | 
|  | SYSTEMTIME *pstFrom, | 
|  | SYSTEMTIME *pstUntil, | 
|  | UINT cExtendedInfo, | 
|  | PWSTR *pwszExtendedInfoName, | 
|  | PWSTR *pwszExtendedInfoValue, | 
|  | DRMPUBHANDLE *phRight | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMCreateUser( | 
|  | PWSTR wszUserName, | 
|  | PWSTR wszUserId, | 
|  | PWSTR wszUserIdType, | 
|  | DRMPUBHANDLE *phUser | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMGetApplicationSpecificData( | 
|  | DRMPUBHANDLE hIssuanceLicense, | 
|  | UINT uIndex, | 
|  | UINT *puNameLength, | 
|  | PWSTR wszName, | 
|  | UINT *puValueLength, | 
|  | PWSTR wszValue | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMGetIssuanceLicenseInfo( | 
|  | DRMPUBHANDLE hIssuanceLicense, | 
|  | SYSTEMTIME *pstTimeFrom, | 
|  | SYSTEMTIME *pstTimeUntil, | 
|  | UINT uFlags, | 
|  | UINT *puDistributionPointNameLength, | 
|  | PWSTR wszDistributionPointName, | 
|  | UINT *puDistributionPointURLLength, | 
|  | PWSTR wszDistributionPointURL, | 
|  | DRMPUBHANDLE *phOwner, | 
|  | WINBOOL *pfOfficial | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMGetIssuanceLicenseTemplate( | 
|  | DRMPUBHANDLE hIssuanceLicense, | 
|  | UINT *puIssuanceLicenseTemplateLength, | 
|  | PWSTR wszIssuanceLicenseTemplate | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMGetMetaData( | 
|  | DRMPUBHANDLE hIssuanceLicense, | 
|  | UINT *puContentIdLength, | 
|  | PWSTR wszContentId, | 
|  | UINT *puContentIdTypeLength, | 
|  | PWSTR wszContentIdType, | 
|  | UINT *puSKUIdLength, | 
|  | PWSTR wszSKUId, | 
|  | UINT *puSKUIdTypeLength, | 
|  | PWSTR wszSKUIdType, | 
|  | UINT *puContentTypeLength, | 
|  | PWSTR wszContentType, | 
|  | UINT *puContentNameLength, | 
|  | PWSTR wszContentName | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMGetNameAndDescription( | 
|  | DRMPUBHANDLE hIssuanceLicense, | 
|  | UINT uIndex, | 
|  | UINT *pulcid, | 
|  | UINT *puNameLength, | 
|  | PWSTR wszName, | 
|  | UINT *puDescriptionLength, | 
|  | PWSTR wszDescription | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMGetRevocationPoint( | 
|  | DRMPUBHANDLE hIssuanceLicense, | 
|  | UINT *puIdLength, | 
|  | PWSTR wszId, | 
|  | UINT *puIdTypeLength, | 
|  | PWSTR wszIdType, | 
|  | UINT *puURLLength, | 
|  | PWSTR wszURL, | 
|  | SYSTEMTIME *pstFrequency, | 
|  | UINT *puNameLength, | 
|  | PWSTR wszName, | 
|  | UINT *puPublicKeyLength, | 
|  | PWSTR wszPublicKey | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMGetRightExtendedInfo( | 
|  | DRMPUBHANDLE hRight, | 
|  | UINT uIndex, | 
|  | UINT *puExtendedInfoNameLength, | 
|  | PWSTR wszExtendedInfoName, | 
|  | UINT *puExtendedInfoValueLength, | 
|  | PWSTR wszExtendedInfoValue | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMGetRightInfo( | 
|  | DRMPUBHANDLE hRight, | 
|  | UINT *puRightNameLength, | 
|  | PWSTR wszRightName, | 
|  | SYSTEMTIME *pstFrom, | 
|  | SYSTEMTIME *pstUntil | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMGetSignedIssuanceLicense( | 
|  | DRMENVHANDLE hEnv, | 
|  | DRMPUBHANDLE hIssuanceLicense, | 
|  | UINT uFlags, | 
|  | BYTE *pbSymKey, | 
|  | UINT cbSymKey, | 
|  | PWSTR wszSymKeyType, | 
|  | PWSTR wszClientLicensorCertificate, | 
|  | DRMCALLBACK pfnCallback, | 
|  | PWSTR wszURL, | 
|  | VOID *pvContext | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMGetUsagePolicy( | 
|  | DRMPUBHANDLE hIssuanceLicense, | 
|  | UINT uIndex, | 
|  | DRM_USAGEPOLICY_TYPE *peUsagePolicyType, | 
|  | WINBOOL *pfExclusion, | 
|  | UINT *puNameLength, | 
|  | PWSTR wszName, | 
|  | UINT *puMinVersionLength, | 
|  | PWSTR wszMinVersion, | 
|  | UINT *puMaxVersionLength, | 
|  | PWSTR wszMaxVersion, | 
|  | UINT *puPublicKeyLength, | 
|  | PWSTR wszPublicKey, | 
|  | UINT *puDigestAlgorithmLength, | 
|  | PWSTR wszDigestAlgorithm, | 
|  | UINT *pcbDigest, | 
|  | BYTE *pbDigest | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMGetUserInfo( | 
|  | DRMPUBHANDLE hUser, | 
|  | UINT *puUserNameLength, | 
|  | PWSTR wszUserName, | 
|  | UINT *puUserIdLength, | 
|  | PWSTR wszUserId, | 
|  | UINT *puUserIdTypeLength, | 
|  | PWSTR wszUserIdType | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMGetUserRights( | 
|  | DRMPUBHANDLE hIssuanceLicense, | 
|  | DRMPUBHANDLE hUser, | 
|  | UINT uIndex, | 
|  | DRMPUBHANDLE *phRight | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMGetUsers( | 
|  | DRMPUBHANDLE hIssuanceLicense, | 
|  | UINT uIndex, | 
|  | DRMPUBHANDLE *phUser | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMSetApplicationSpecificData( | 
|  | DRMPUBHANDLE hIssuanceLicense, | 
|  | WINBOOL fDelete, | 
|  | PWSTR wszName, | 
|  | PWSTR wszValue | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMSetMetaData( | 
|  | DRMPUBHANDLE hIssuanceLicense, | 
|  | PWSTR wszContentId, | 
|  | PWSTR wszContentIdType, | 
|  | PWSTR wszSKUId, | 
|  | PWSTR wszSKUIdType, | 
|  | PWSTR wszContentType, | 
|  | PWSTR wszContentName | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMSetNameAndDescription( | 
|  | DRMPUBHANDLE hIssuanceLicense, | 
|  | WINBOOL fDelete, | 
|  | UINT lcid, | 
|  | PWSTR wszName, | 
|  | PWSTR wszDescription | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMSetRevocationPoint( | 
|  | DRMPUBHANDLE hIssuanceLicense, | 
|  | WINBOOL fDelete, | 
|  | PWSTR wszId, | 
|  | PWSTR wszIdType, | 
|  | PWSTR wszURL, | 
|  | SYSTEMTIME *pstFrequency, | 
|  | PWSTR wszName, | 
|  | PWSTR wszPublicKey | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMSetUsagePolicy( | 
|  | DRMPUBHANDLE hIssuanceLicense, | 
|  | DRM_USAGEPOLICY_TYPE eUsagePolicyType, | 
|  | WINBOOL fDelete, | 
|  | WINBOOL fExclusion, | 
|  | PWSTR wszName, | 
|  | PWSTR wszMinVersion, | 
|  | PWSTR wszMaxVersion, | 
|  | PWSTR wszPublicKey, | 
|  | PWSTR wszDigestAlgorithm, | 
|  | BYTE *pbDigest, | 
|  | UINT cbDigest | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMCloseEnvironmentHandle( | 
|  | DRMENVHANDLE hEnv | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMCloseHandle( | 
|  | DRMHANDLE handle | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMClosePubHandle( | 
|  | DRMPUBHANDLE hPub | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMCloseQueryHandle( | 
|  | DRMQUERYHANDLE hQuery | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMDuplicateEnvironmentHandle( | 
|  | DRMENVHANDLE hToCopy, | 
|  | DRMENVHANDLE *phCopy | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMDuplicateHandle( | 
|  | DRMHANDLE hToCopy, | 
|  | DRMHANDLE *phCopy | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMDuplicatePubHandle( | 
|  | DRMPUBHANDLE hPubIn, | 
|  | DRMPUBHANDLE *phPubOut | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMGetUnboundLicenseAttribute( | 
|  | DRMQUERYHANDLE hQueryRoot, | 
|  | PWSTR wszAttributeType, | 
|  | UINT iWhich, | 
|  | DRMENCODINGTYPE *peEncoding, | 
|  | UINT *pcBuffer, | 
|  | BYTE *pbBuffer | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMGetUnboundLicenseAttributeCount( | 
|  | DRMQUERYHANDLE hQueryRoot, | 
|  | PWSTR wszAttributeType, | 
|  | UINT *pcAttributes | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMGetUnboundLicenseObject( | 
|  | DRMQUERYHANDLE hQueryRoot, | 
|  | PWSTR wszSubObjectType, | 
|  | UINT iIndex, | 
|  | DRMQUERYHANDLE *phSubQuery | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMGetUnboundLicenseObjectCount( | 
|  | DRMQUERYHANDLE hQueryRoot, | 
|  | PWSTR wszSubObjectType, | 
|  | UINT *pcSubObjects | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMParseUnboundLicense( | 
|  | PWSTR wszCertificate, | 
|  | DRMQUERYHANDLE *phQueryRoot | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMCreateBoundLicense( | 
|  | DRMENVHANDLE hEnv, | 
|  | DRMBOUNDLICENSEPARAMS *pParams, | 
|  | PWSTR wszLicenseChain, | 
|  | DRMHANDLE *phBoundLicense, | 
|  | DRMHANDLE *phErrorLog | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMCreateEnablingPrincipal( | 
|  | DRMENVHANDLE hEnv, | 
|  | DRMHANDLE hLibrary, | 
|  | PWSTR wszObject, | 
|  | DRMID *pidPrincipal, | 
|  | PWSTR wszCredentials, | 
|  | DRMHANDLE *pHEnablingPrincipal | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMGetBoundLicenseAttribute( | 
|  | DRMHANDLE hQueryRoot, | 
|  | PWSTR wszAttribute, | 
|  | UINT iWhich, | 
|  | DRMENCODINGTYPE *peEncoding, | 
|  | UINT *pcBuffer, | 
|  | BYTE *pbBuffer | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMGetBoundLicenseAttributeCount( | 
|  | DRMHANDLE hQueryRoot, | 
|  | PWSTR wszAttribute, | 
|  | UINT *pcAttributes | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMGetBoundLicenseObject( | 
|  | DRMHANDLE hQueryRoot, | 
|  | PWSTR wszSubObjectType, | 
|  | UINT iWhich, | 
|  | DRMHANDLE *phSubObject | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMGetBoundLicenseObjectCount( | 
|  | DRMHANDLE hQueryRoot, | 
|  | PWSTR wszSubObjectType, | 
|  | UINT *pcSubObject | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMAcquireAdvisories( | 
|  | DRMHSESSION hLicenseStorage, | 
|  | PWSTR wszLicense, | 
|  | PWSTR wszURL, | 
|  | VOID *pvContext | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMAcquireLicense( | 
|  | DRMHSESSION hSession, | 
|  | UINT uFlags, | 
|  | PWSTR wszGroupIdentityCredential, | 
|  | PWSTR wszRequestedRights, | 
|  | PWSTR wszCustomData, | 
|  | PWSTR wszURL, | 
|  | VOID *pvContext | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMAddLicense( | 
|  | DRMHSESSION hLicenseStorage, | 
|  | UINT uFlags, | 
|  | PWSTR wszLicense | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMConstructCertificateChain( | 
|  | UINT cCertificates, | 
|  | PWSTR *rgwszCertificates, | 
|  | UINT *pcChain, | 
|  | PWSTR wszChain | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMDeconstructCertificateChain( | 
|  | PWSTR wszChain, | 
|  | UINT iWhich, | 
|  | UINT *pcCert, | 
|  | PWSTR wszCert | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMDeleteLicense( | 
|  | DRMHSESSION hSession, | 
|  | PWSTR wszLicenseId | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMEnumerateLicense( | 
|  | DRMHSESSION hSession, | 
|  | UINT uFlags, | 
|  | UINT uIndex, | 
|  | WINBOOL *pfSharedFlag, | 
|  | UINT *puCertificateDataLen, | 
|  | PWSTR wszCertificateData | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMGetCertificateChainCount( | 
|  | PWSTR wszChain, | 
|  | UINT *pcCertCount | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMAttest( | 
|  | DRMHANDLE hEnablingPrincipal, | 
|  | PWSTR wszData, | 
|  | DRMATTESTTYPE eType, | 
|  | UINT *pcStrLen, | 
|  | PWSTR wszAttestedBlob | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMCreateEnablingBitsDecryptor( | 
|  | DRMHANDLE hBoundLicense, | 
|  | PWSTR wszRight, | 
|  | DRMHANDLE hAuxLib, | 
|  | PWSTR wszAuxPlug, | 
|  | DRMHANDLE *phDecryptor | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMCreateEnablingBitsEncryptor( | 
|  | DRMHANDLE hBoundLicense, | 
|  | PWSTR wszRight, | 
|  | DRMHANDLE hAuxLib, | 
|  | PWSTR wszAuxPlug, | 
|  | DRMHANDLE *phEncryptor | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMDecrypt( | 
|  | DRMHANDLE hCryptoProvider, | 
|  | UINT iPosition, | 
|  | UINT cNumInBytes, | 
|  | BYTE *pbInData, | 
|  | UINT *pcNumOutBytes, | 
|  | BYTE *pbOutData | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMEncrypt( | 
|  | DRMHANDLE hCryptoProvider, | 
|  | UINT iPosition, | 
|  | UINT cNumInBytes, | 
|  | BYTE *pbInData, | 
|  | UINT *pcNumOutBytes, | 
|  | BYTE *pbOutData | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMVerify( | 
|  | PWSTR wszData, | 
|  | UINT *pcStrLenAttestedData, | 
|  | PWSTR wszAttestedData, | 
|  | DRMATTESTTYPE *peType, | 
|  | UINT *pcPrincipalChain, | 
|  | PWSTR wszPrincipalChain, | 
|  | UINT *pcManifestChain, | 
|  | PWSTR wszManifestChain | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMDecode( | 
|  | PWSTR wszAlgID, | 
|  | PWSTR wszEncodedString, | 
|  | UINT *puDecodedDataLen, | 
|  | BYTE *pbDecodedData | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMEncode( | 
|  | PWSTR wszAlgID, | 
|  | UINT uDataLen, | 
|  | BYTE *pbDecodedData, | 
|  | UINT *puEncodedStringLen, | 
|  | PWSTR wszEncodedString | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMGetInfo( | 
|  | DRMHANDLE handle, | 
|  | PWSTR wszAttribute, | 
|  | DRMENCODINGTYPE *peEncoding, | 
|  | UINT *pcBuffer, | 
|  | BYTE *pbBuffer | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMGetTime( | 
|  | DRMENVHANDLE hEnv, | 
|  | DRMTIMETYPE eTimerIdType, | 
|  | SYSTEMTIME *poTimeObject | 
|  | ); | 
|  |  | 
|  | #if (_WIN32_WINNT >= 0x0600) | 
|  | HRESULT WINAPI DRMIsWindowProtected( | 
|  | HWND hwnd, | 
|  | WINBOOL *pfProtected | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMRegisterProtectedWindow( | 
|  | DRMENVHANDLE hEnv, | 
|  | HWND hwnd | 
|  | ); | 
|  |  | 
|  | HRESULT WINAPI DRMAcquireIssuanceLicenseTemplate( | 
|  | DRMHSESSION hClient, | 
|  | UINT uFlags, | 
|  | VOID *pvReserved, | 
|  | UINT cReserved, | 
|  | PWSTR *pwszReserved, | 
|  | PWSTR wszURL, | 
|  | VOID *pvContext | 
|  | ); | 
|  |  | 
|  | #endif /*(_WIN32_WINNT >= 0x0600)*/ | 
|  | #if (_WIN32_WINNT >= 0x0601) | 
|  | HRESULT WINAPI DRMGetSignedIssuanceLicenseEx( | 
|  | DRMENVHANDLE hEnv, | 
|  | DRMPUBHANDLE hIssuanceLicense, | 
|  | UINT uFlags, | 
|  | BYTE *pbSymKey, | 
|  | UINT cbSymKey, | 
|  | PWSTR wszSymKeyType, | 
|  | VOID *pvReserved, | 
|  | DRMHANDLE hEnablingPrincipal, | 
|  | DRMHANDLE hBoundLicense, | 
|  | DRMCALLBACK pfnCallback, | 
|  | VOID *pvContext | 
|  | ); | 
|  | #endif /*(_WIN32_WINNT >= 0x0601)*/ | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | } | 
|  | #endif | 
|  | #endif /*_INC_MSDRM*/ |