/** * This file has no copyright assigned and is placed in the Public Domain. * This file is part of the mingw-w64 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*/