Home | History | Annotate | Download | only in include
      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