master
  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
  9typedef ULONG DRMHANDLE;
 10typedef ULONG DRMPUBHANDLE;
 11typedef ULONG DRMHSESSION;
 12typedef ULONG DRMENVHANDLE;
 13typedef ULONG DRMQUERYHANDLE;
 14
 15typedef 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
 25typedef enum _DRMGLOBALOPTIONS {
 26  DRMGLOBALOPTIONS_USE_WINHTTP                   = 0x00,
 27  DRMGLOBALOPTIONS_USE_SERVERSECURITYPROCESSOR   = 0x01 
 28} DRMGLOBALOPTIONS;
 29
 30typedef 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
 36typedef 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
 43typedef enum _DRMATTESTTYPE {
 44  DRMATTESTTYPE_FULLENVIRONMENT = 0,
 45  DRMATTESTTYPE_HASHONLY 
 46} DRMATTESTTYPE;
 47
 48typedef enum _DRMENCODINGTYPE {
 49  DRMENCODINGTYPE_BASE64 = 0,
 50  DRMENCODINGTYPE_STRING,
 51  DRMENCODINGTYPE_LONG,
 52  DRMENCODINGTYPE_TIME,
 53  DRMENCODINGTYPE_UINT,
 54  DRMENCODINGTYPE_RAW 
 55} DRMENCODINGTYPE;
 56
 57typedef enum _DRMSECURITYPROVIDERTYPE {
 58  DRMSECURITYPROVIDERTYPE_SOFTWARESECREP = 0
 59} DRMSECURITYPROVIDERTYPE;
 60
 61typedef enum _DRMSPECTYPE {
 62  DRMSPECTYPE_UNKNOWN,
 63  DRMSPECTYPE_FILENAME 
 64} DRMSPECTYPE;
 65
 66typedef enum _DRMTIMETYPE {
 67  DRMTIMETYPE_SYSTEMUTC = 0,
 68  DRMTIMETYPE_SYSTEMLOCAL 
 69} DRMTIMETYPE;
 70
 71typedef struct _DRM_ACTSERV_INFO {
 72  UINT  uVersion;
 73  PWSTR wszPubKey;
 74  PWSTR wszURL;
 75} DRM_ACTSERV_INFO;
 76
 77typedef 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
 85typedef struct _DRMID {
 86  UINT  uVersion;
 87  WCHAR *wszIDType;
 88  WCHAR *wszID;
 89} DRMID;
 90
 91typedef 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
104typedef HRESULT (__stdcall *DRMCALLBACK)(
105    DRM_STATUS_MSG msg,
106    HRESULT hr,
107    VOID *pvParam,
108    VOID *pvContext
109);
110
111#endif /*_INC_MSDRMDEFS*/