xpmgr/BuildTools/Include/msdrmdefs.h

326 lines
9.4 KiB
C

#pragma once
/*
//-----------------------------------------------------------------------------
//
// File: msdrmdefs.h
//
// Copyright (C) 2001-2004 Microsoft Corporation. All Rights Reserved.
//
//-----------------------------------------------------------------------------
*/
#ifndef __MSDRMDEFS_H_
#define __MSDRMDEFS_H_
#if !defined(__midl)
#ifndef _INC_WINDOWS
#include <windows.h>
#include <wtypes.h>
#endif // _INC_WINDOWS
#endif // __midl
typedef ULONG DRMHANDLE;
typedef ULONG DRMQUERYHANDLE;
typedef ULONG DRMENVHANDLE;
typedef ULONG DRMHSESSION;
typedef ULONG DRMPUBHANDLE;
#define DRMHANDLE_INVALID 0
#define DRMENVHANDLE_INVALID 0
#define DRMQUERYHANDLE_INVALID 0
#define DRMHSESSION_INVALID 0
#define DRMPUBHANDLE_INVALID 0
#define UDAPICALL __stdcall
#ifdef __cplusplus
#define DRMEXPORT extern "C"
#else
#define DRMEXPORT __declspec(dllexport)
#endif
#ifndef IN
#define IN
#endif
#ifndef OUT
#define OUT
#endif
const UINT DRMIDVERSION = 0;
typedef struct _DRMID {
UINT uVersion;
PWSTR wszIDType;
PWSTR wszID;
#ifdef __cplusplus
_DRMID() : uVersion(DRMIDVERSION),
wszIDType(NULL),
wszID(NULL)
{
}
_DRMID(__in_opt PWSTR wszTypein,
__in_opt PWSTR wszIDin) : uVersion(DRMIDVERSION),
wszIDType(wszTypein),
wszID(wszIDin)
{
}
#endif
} DRMID;
// DRM flag sets
typedef enum _DRMTIMETYPE { DRMTIMETYPE_SYSTEMUTC,
DRMTIMETYPE_SYSTEMLOCAL }
DRMTIMETYPE;
typedef enum _DRMENCODINGTYPE { DRMENCODINGTYPE_BASE64,
DRMENCODINGTYPE_STRING,
DRMENCODINGTYPE_LONG,
DRMENCODINGTYPE_TIME,
DRMENCODINGTYPE_UINT,
DRMENCODINGTYPE_RAW }
DRMENCODINGTYPE;
typedef enum _DRMATTESTTYPE { DRMATTESTTYPE_FULLENVIRONMENT,
DRMATTESTTYPE_HASHONLY }
DRMATTESTTYPE;
typedef enum _DRMSPECTYPE { DRMSPECTYPE_UNKNOWN,
DRMSPECTYPE_FILENAME }
DRMSPECTYPE;
// security provider types
typedef enum _DRMSECURITYPROVIDERTYPE { DRMSECURITYPROVIDERTYPE_SOFTWARESECREP }
DRMSECURITYPROVIDERTYPE;
typedef enum _DRMGLOBALOPTIONS { DRMGLOBALOPTIONS_USE_WINHTTP,
DRMGLOBALOPTIONS_USE_SERVERSECURITYPROCESSOR }
DRMGLOBALOPTIONS;
const UINT DRMBOUNDLICENSEPARAMSVERSION = 1;
typedef struct _DRMBOUNDLICENSEPARAMS {
UINT uVersion;
DRMHANDLE hEnablingPrincipal;
DRMHANDLE hSecureStore; // reserved for future, must be NULL for now
PWSTR wszRightsRequested;
PWSTR wszRightsGroup;
DRMID idResource;
UINT cAuthenticatorCount; // reserved for future, must be 0 for now
DRMHANDLE* rghAuthenticators; // reserved for future, must be NULL for now
PWSTR wszDefaultEnablingPrincipalCredentials;
DWORD dwFlags;
#ifdef __cplusplus
_DRMBOUNDLICENSEPARAMS() : uVersion(DRMBOUNDLICENSEPARAMSVERSION),
hEnablingPrincipal(NULL),
hSecureStore(NULL),
wszRightsRequested(NULL),
wszRightsGroup(NULL),
cAuthenticatorCount(0),
rghAuthenticators(NULL),
wszDefaultEnablingPrincipalCredentials(NULL),
idResource(NULL,NULL),
dwFlags(0)
{
}
#endif // #ifdef __cplusplus
} DRMBOUNDLICENSEPARAMS;
// flags for the dwFlags parameter of the binding parameters structure
const DWORD DRMBINDINGFLAGS_IGNORE_VALIDITY_INTERVALS = 0x1;
const UINT DRMLICENSEACQDATAVERSION = 0;
typedef struct _DRM_LICENSE_ACQ_DATA
{
UINT uVersion;
PWSTR wszURL;
PWSTR wszLocalFilename;
BYTE* pbPostData;
DWORD dwPostDataSize;
PWSTR wszFriendlyName;
#ifdef __cplusplus
_DRM_LICENSE_ACQ_DATA() : uVersion(DRMLICENSEACQDATAVERSION),
wszURL(NULL),
wszLocalFilename(NULL),
pbPostData(NULL),
dwPostDataSize(NULL),
wszFriendlyName(NULL)
{
}
#endif // #ifdef __cplusplus
} DRM_LICENSE_ACQ_DATA;
const UINT DRMACTSERVINFOVERSION = 0;
typedef struct _DRM_ACTSERV_INFO
{
UINT uVersion;
PWSTR wszPubKey;
PWSTR wszURL;
#ifdef __cplusplus
_DRM_ACTSERV_INFO() : uVersion(DRMACTSERVINFOVERSION),
wszPubKey(NULL),
wszURL(NULL)
{
}
#endif // #ifdef __cplusplus
} DRM_ACTSERV_INFO;
const UINT DRMCLIENTSTRUCTVERSION = 1;
typedef struct _DRM_CLIENT_VERSION_INFO {
UINT uStructVersion;
DWORD dwVersion[4];
WCHAR wszHierarchy[256];
WCHAR wszProductId[256];
WCHAR wszProductDescription[256];
#ifdef __cplusplus
_DRM_CLIENT_VERSION_INFO() : uStructVersion(DRMCLIENTSTRUCTVERSION)
{
dwVersion[0] = 0;
dwVersion[1] = 0;
dwVersion[2] = 0;
dwVersion[3] = 0;
wszHierarchy[0] = 0;
wszProductId[0] = 0;
wszProductDescription[0] = 0;
}
#endif // #ifdef __cplusplus
} DRM_CLIENT_VERSION_INFO;
typedef enum _DRM_STATUS_MSG
{
DRM_MSG_ACTIVATE_MACHINE,
DRM_MSG_ACTIVATE_GROUPIDENTITY,
DRM_MSG_ACQUIRE_LICENSE,
DRM_MSG_ACQUIRE_ADVISORY,
DRM_MSG_SIGN_ISSUANCE_LICENSE,
DRM_MSG_ACQUIRE_CLIENTLICENSOR,
DRM_MSG_ACQUIRE_ISSUANCE_LICENSE_TEMPLATE
}DRM_STATUS_MSG;
typedef enum _DRM_USAGEPOLICY_TYPE
{
DRM_USAGEPOLICY_TYPE_BYNAME,
DRM_USAGEPOLICY_TYPE_BYPUBLICKEY,
DRM_USAGEPOLICY_TYPE_BYDIGEST,
DRM_USAGEPOLICY_TYPE_OSEXCLUSION
}DRM_USAGEPOLICY_TYPE;
// DRM_ACQUIRE_LICENSE_FLAGS
#define DRM_AL_NONSILENT 0x01 // Acquire non-silently
#define DRM_AL_NOPERSIST 0x02 // Don't persist the license
#define DRM_AL_CANCEL 0x04 // Cancel previous request
#define DRM_AL_FETCHNOADVISORY 0x08 // Don't acquire advisories
#define DRM_AL_NOUI 0x10 // Don't display any Authentication UI
// DRM_ACTIVATION_FLAGS
#define DRM_ACTIVATE_MACHINE 0x01 // Activate machine
#define DRM_ACTIVATE_GROUPIDENTITY 0x02 // Activate Group Identity
#define DRM_ACTIVATE_TEMPORARY 0x04 // Temporary certificate
#define DRM_ACTIVATE_CANCEL 0x08 // Cancel previous request
#define DRM_ACTIVATE_SILENT 0x10 // Silent Activation
#define DRM_ACTIVATE_SHARED_GROUPIDENTITY 0x20 // Shared Group Identity certificate
#define DRM_ACTIVATE_DELAYED 0x40 // Delayed activation
// DRM_ENUMERATE_LICENSE_FLAGS
#define DRM_EL_MACHINE 0x0001
#define DRM_EL_GROUPIDENTITY 0x0002
#define DRM_EL_GROUPIDENTITY_NAME 0x0004
#define DRM_EL_GROUPIDENTITY_LID 0x0008
#define DRM_EL_SPECIFIED_GROUPIDENTITY 0x0010
#define DRM_EL_EUL 0x0020
#define DRM_EL_EUL_LID 0x0040
#define DRM_EL_CLIENTLICENSOR 0x0080
#define DRM_EL_CLIENTLICENSOR_LID 0x0100
#define DRM_EL_SPECIFIED_CLIENTLICENSOR 0x0200
#define DRM_EL_REVOCATIONLIST 0x0400
#define DRM_EL_REVOCATIONLIST_LID 0x0800
#define DRM_EL_EXPIRED 0x1000
#define DRM_EL_ISSUERNAME 0x2000
#define DRM_EL_ISSUANCELICENSE_TEMPLATE 0x4000
#define DRM_EL_ISSUANCELICENSE_TEMPLATE_LID 0x8000
//DRM_ADD_LICENSE_FLAGS
#define DRM_ADD_LICENSE_NOPERSIST 0x00
#define DRM_ADD_LICENSE_PERSIST 0x01
//DRM_SERVICE_TYPE
#define DRM_SERVICE_TYPE_ACTIVATION 0x01
#define DRM_SERVICE_TYPE_CERTIFICATION 0x02
#define DRM_SERVICE_TYPE_PUBLISHING 0x04
#define DRM_SERVICE_TYPE_CLIENTLICENSOR 0x08
#define DRM_SERVICE_TYPE_SILENT 0x10
//DRM_SERVICE_LOCATION
#define DRM_SERVICE_LOCATION_INTERNET 0x01
#define DRM_SERVICE_LOCATION_ENTERPRISE 0x02
//GROUPID Provider Type
#define DRM_DEFAULTGROUPIDTYPE_WINDOWSAUTH L"WindowsAuthProvider"
#define DRM_DEFAULTGROUPIDTYPE_PASSPORT L"PassportAuthProvider"
//ISSUANCE LICENSE SIGN
#define DRM_SIGN_ONLINE 0x01
#define DRM_SIGN_OFFLINE 0x02
#define DRM_SIGN_CANCEL 0x04
#define DRM_SERVER_ISSUANCELICENSE 0x08
#define DRM_AUTO_GENERATE_KEY 0x10
#define DRM_OWNER_LICENSE_NOPERSIST 0x20
#define DRM_REUSE_KEY 0x40
// LOCKBOX TYPE
#define DRM_LOCKBOXTYPE_NONE 0x00
#define DRM_LOCKBOXTYPE_WHITEBOX 0x01
#define DRM_LOCKBOXTYPE_BLACKBOX 0x02
#define DRM_LOCKBOXTYPE_DEFAULT DRM_LOCKBOXTYPE_BLACKBOX
// Template Distribution
#define DRM_AILT_NONSILENT 0x01
#define DRM_AILT_OBTAIN_ALL 0x02
#define DRM_AILT_CANCEL 0x04
typedef enum _DRM_DISTRIBUTION_POINT_INFO
{
DRM_DISTRIBUTION_POINT_LICENSE_ACQUISITION,
DRM_DISTRIBUTION_POINT_PUBLISHING,
DRM_DISTRIBUTION_POINT_REFERRAL_INFO
}DRM_DISTRIBUTION_POINT_INFO;
// DRM Callback
const UINT DRMCALLBACKVERSION = 1;
typedef HRESULT (__stdcall *DRMCALLBACK)(DRM_STATUS_MSG,HRESULT,void*,void*);
#endif // #ifndef __MSDRMDEFS_H_