/**
* 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_MSDRMDEFS
#define _INC_MSDRMDEFS
typedef ULONG DRMHANDLE;
typedef ULONG DRMPUBHANDLE;
typedef ULONG DRMHSESSION;
typedef ULONG DRMENVHANDLE;
typedef ULONG DRMQUERYHANDLE;
typedef enum _DRM_STATUS_MSG {
DRM_MSG_ACTIVATE_MACHINE = 0,
DRM_MSG_ACTIVATE_GROUPIDENTITY,
DRM_MSG_ACQUIRE_LICENSE,
DRM_MSG_ACQUIRE_ISSUANCE_LICENSE_TEMPLATE,
DRM_MSG_ACQUIRE_ADVISORY,
DRM_MSG_SIGN_ISSUANCE_LICENSE,
DRM_MSG_ACQUIRE_CLIENTLICENSOR
} DRM_STATUS_MSG;
typedef enum _DRMGLOBALOPTIONS {
DRMGLOBALOPTIONS_USE_WINHTTP = 0x00,
DRMGLOBALOPTIONS_USE_SERVERSECURITYPROCESSOR = 0x01
} DRMGLOBALOPTIONS;
typedef enum _DRM_DISTRIBUTION_POINT_INFO {
DRM_DISTRIBUTION_POINT_LICENSE_ACQUISITION = 0,
DRM_DISTRIBUTION_POINT_PUBLISHING,
DRM_DISTRIBUTION_POINT_REFERRAL_INFO
} DRM_DISTRIBUTION_POINT_INFO;
typedef enum _DRM_USAGEPOLICY_TYPE {
DRM_USAGEPOLICY_TYPE_BYNAME = 0,
DRM_USAGEPOLICY_TYPE_BYPUBLICKEY,
DRM_USAGEPOLICY_TYPE_BYDIGEST,
DRM_USAGEPOLICY_TYPE_OSEXCLUSION
} DRM_USAGEPOLICY_TYPE;
typedef enum _DRMATTESTTYPE {
DRMATTESTTYPE_FULLENVIRONMENT = 0,
DRMATTESTTYPE_HASHONLY
} DRMATTESTTYPE;
typedef enum _DRMENCODINGTYPE {
DRMENCODINGTYPE_BASE64 = 0,
DRMENCODINGTYPE_STRING,
DRMENCODINGTYPE_LONG,
DRMENCODINGTYPE_TIME,
DRMENCODINGTYPE_UINT,
DRMENCODINGTYPE_RAW
} DRMENCODINGTYPE;
typedef enum _DRMSECURITYPROVIDERTYPE {
DRMSECURITYPROVIDERTYPE_SOFTWARESECREP = 0
} DRMSECURITYPROVIDERTYPE;
typedef enum _DRMSPECTYPE {
DRMSPECTYPE_UNKNOWN,
DRMSPECTYPE_FILENAME
} DRMSPECTYPE;
typedef enum _DRMTIMETYPE {
DRMTIMETYPE_SYSTEMUTC = 0,
DRMTIMETYPE_SYSTEMLOCAL
} DRMTIMETYPE;
typedef struct _DRM_ACTSERV_INFO {
UINT uVersion;
PWSTR wszPubKey;
PWSTR wszURL;
} DRM_ACTSERV_INFO;
typedef struct _DRM_CLIENT_VERSION_INFO {
UINT uStructVersion;
DWORD dwVersion[4];
WCHAR wszHierarchy[256];
WCHAR wszProductID[256];
WCHAR wszProductDescription[256];
} DRM_CLIENT_VERSION_INFO;
typedef struct _DRMID {
UINT uVersion;
WCHAR *wszIDType;
WCHAR *wszID;
} DRMID;
typedef struct _DRMBOUNDLICENSEPARAMS {
UINT uVersion;
DRMHANDLE hEnablingPrincipal;
DRMHANDLE hSecureStore;
PWSTR wszRightsRequested;
PWSTR wszRightsGroup;
DRMID idResource;
UINT cAuthenticatorCount;
DRMHANDLE *rghAuthenticators;
PWSTR wszDefaultEnablingPrincipalCredentials;
DWORD dwFlags;
} DRMBOUNDLICENSEPARAMS;
typedef HRESULT (__stdcall *DRMCALLBACK)(
DRM_STATUS_MSG msg,
HRESULT hr,
VOID *pvParam,
VOID *pvContext
);
#endif /*_INC_MSDRMDEFS*/