1 /** 2 * This file has no copyright assigned and is placed in the Public Domain. 3 * This file is part of the mingw-w64 runtime package. 4 * No warranty is given; refer to the file DISCLAIMER.PD within this package. 5 */ 6 #ifndef _INC_MSDRMDEFS 7 #define _INC_MSDRMDEFS 8 9 typedef ULONG DRMHANDLE; 10 typedef ULONG DRMPUBHANDLE; 11 typedef ULONG DRMHSESSION; 12 typedef ULONG DRMENVHANDLE; 13 typedef ULONG DRMQUERYHANDLE; 14 15 typedef enum _DRM_STATUS_MSG { 16 DRM_MSG_ACTIVATE_MACHINE = 0, 17 DRM_MSG_ACTIVATE_GROUPIDENTITY, 18 DRM_MSG_ACQUIRE_LICENSE, 19 DRM_MSG_ACQUIRE_ISSUANCE_LICENSE_TEMPLATE, 20 DRM_MSG_ACQUIRE_ADVISORY, 21 DRM_MSG_SIGN_ISSUANCE_LICENSE, 22 DRM_MSG_ACQUIRE_CLIENTLICENSOR 23 } DRM_STATUS_MSG; 24 25 typedef enum _DRMGLOBALOPTIONS { 26 DRMGLOBALOPTIONS_USE_WINHTTP = 0x00, 27 DRMGLOBALOPTIONS_USE_SERVERSECURITYPROCESSOR = 0x01 28 } DRMGLOBALOPTIONS; 29 30 typedef enum _DRM_DISTRIBUTION_POINT_INFO { 31 DRM_DISTRIBUTION_POINT_LICENSE_ACQUISITION = 0, 32 DRM_DISTRIBUTION_POINT_PUBLISHING, 33 DRM_DISTRIBUTION_POINT_REFERRAL_INFO 34 } DRM_DISTRIBUTION_POINT_INFO; 35 36 typedef enum _DRM_USAGEPOLICY_TYPE { 37 DRM_USAGEPOLICY_TYPE_BYNAME = 0, 38 DRM_USAGEPOLICY_TYPE_BYPUBLICKEY, 39 DRM_USAGEPOLICY_TYPE_BYDIGEST, 40 DRM_USAGEPOLICY_TYPE_OSEXCLUSION 41 } DRM_USAGEPOLICY_TYPE; 42 43 typedef enum _DRMATTESTTYPE { 44 DRMATTESTTYPE_FULLENVIRONMENT = 0, 45 DRMATTESTTYPE_HASHONLY 46 } DRMATTESTTYPE; 47 48 typedef enum _DRMENCODINGTYPE { 49 DRMENCODINGTYPE_BASE64 = 0, 50 DRMENCODINGTYPE_STRING, 51 DRMENCODINGTYPE_LONG, 52 DRMENCODINGTYPE_TIME, 53 DRMENCODINGTYPE_UINT, 54 DRMENCODINGTYPE_RAW 55 } DRMENCODINGTYPE; 56 57 typedef enum _DRMSECURITYPROVIDERTYPE { 58 DRMSECURITYPROVIDERTYPE_SOFTWARESECREP = 0 59 } DRMSECURITYPROVIDERTYPE; 60 61 typedef enum _DRMSPECTYPE { 62 DRMSPECTYPE_UNKNOWN, 63 DRMSPECTYPE_FILENAME 64 } DRMSPECTYPE; 65 66 typedef enum _DRMTIMETYPE { 67 DRMTIMETYPE_SYSTEMUTC = 0, 68 DRMTIMETYPE_SYSTEMLOCAL 69 } DRMTIMETYPE; 70 71 typedef struct _DRM_ACTSERV_INFO { 72 UINT uVersion; 73 PWSTR wszPubKey; 74 PWSTR wszURL; 75 } DRM_ACTSERV_INFO; 76 77 typedef struct _DRM_CLIENT_VERSION_INFO { 78 UINT uStructVersion; 79 DWORD dwVersion[4]; 80 WCHAR wszHierarchy[256]; 81 WCHAR wszProductID[256]; 82 WCHAR wszProductDescription[256]; 83 } DRM_CLIENT_VERSION_INFO; 84 85 typedef struct _DRMID { 86 UINT uVersion; 87 WCHAR *wszIDType; 88 WCHAR *wszID; 89 } DRMID; 90 91 typedef struct _DRMBOUNDLICENSEPARAMS { 92 UINT uVersion; 93 DRMHANDLE hEnablingPrincipal; 94 DRMHANDLE hSecureStore; 95 PWSTR wszRightsRequested; 96 PWSTR wszRightsGroup; 97 DRMID idResource; 98 UINT cAuthenticatorCount; 99 DRMHANDLE *rghAuthenticators; 100 PWSTR wszDefaultEnablingPrincipalCredentials; 101 DWORD dwFlags; 102 } DRMBOUNDLICENSEPARAMS; 103 104 typedef HRESULT (__stdcall *DRMCALLBACK)( 105 DRM_STATUS_MSG msg, 106 HRESULT hr, 107 VOID *pvParam, 108 VOID *pvContext 109 ); 110 111 #endif /*_INC_MSDRMDEFS*/ 112