xpmgr/BuildTools/Include/wmdrmsdk.h

2839 lines
99 KiB
C++

/* this ALWAYS GENERATED file contains the definitions for the interfaces */
/* File created by MIDL compiler version 7.00.0555 */
/* Compiler settings for wmdrmsdk.idl:
Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
protocol : dce , ms_ext, c_ext, robust
error checks: allocation ref bounds_check enum stub_data
VC __declspec() decoration level:
__declspec(uuid()), __declspec(selectany), __declspec(novtable)
DECLSPEC_UUID(), MIDL_INTERFACE()
*/
/* @@MIDL_FILE_HEADING( ) */
#pragma warning( disable: 4049 ) /* more than 64k source lines */
/* verify that the <rpcndr.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 500
#endif
/* verify that the <rpcsal.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCSAL_H_VERSION__
#define __REQUIRED_RPCSAL_H_VERSION__ 100
#endif
#include "rpc.h"
#include "rpcndr.h"
#ifndef __RPCNDR_H_VERSION__
#error this stub requires an updated version of <rpcndr.h>
#endif // __RPCNDR_H_VERSION__
#ifndef COM_NO_WINDOWS_H
#include "windows.h"
#include "ole2.h"
#endif /*COM_NO_WINDOWS_H*/
#ifndef __wmdrmsdk_h__
#define __wmdrmsdk_h__
#if defined(_MSC_VER) && (_MSC_VER >= 1020)
#pragma once
#endif
/* Forward Declarations */
#ifndef __IDRMStatusCallback_FWD_DEFINED__
#define __IDRMStatusCallback_FWD_DEFINED__
typedef interface IDRMStatusCallback IDRMStatusCallback;
#endif /* __IDRMStatusCallback_FWD_DEFINED__ */
#ifndef __IWMDRMEventGenerator_FWD_DEFINED__
#define __IWMDRMEventGenerator_FWD_DEFINED__
typedef interface IWMDRMEventGenerator IWMDRMEventGenerator;
#endif /* __IWMDRMEventGenerator_FWD_DEFINED__ */
#ifndef __IWMDRMProvider_FWD_DEFINED__
#define __IWMDRMProvider_FWD_DEFINED__
typedef interface IWMDRMProvider IWMDRMProvider;
#endif /* __IWMDRMProvider_FWD_DEFINED__ */
#ifndef __IWMDRMSecurity_FWD_DEFINED__
#define __IWMDRMSecurity_FWD_DEFINED__
typedef interface IWMDRMSecurity IWMDRMSecurity;
#endif /* __IWMDRMSecurity_FWD_DEFINED__ */
#ifndef __IWMDRMEncrypt_FWD_DEFINED__
#define __IWMDRMEncrypt_FWD_DEFINED__
typedef interface IWMDRMEncrypt IWMDRMEncrypt;
#endif /* __IWMDRMEncrypt_FWD_DEFINED__ */
#ifndef __IWMDRMEncryptScatter_FWD_DEFINED__
#define __IWMDRMEncryptScatter_FWD_DEFINED__
typedef interface IWMDRMEncryptScatter IWMDRMEncryptScatter;
#endif /* __IWMDRMEncryptScatter_FWD_DEFINED__ */
#ifndef __IWMDRMDecrypt_FWD_DEFINED__
#define __IWMDRMDecrypt_FWD_DEFINED__
typedef interface IWMDRMDecrypt IWMDRMDecrypt;
#endif /* __IWMDRMDecrypt_FWD_DEFINED__ */
#ifndef __IWMDRMLicense_FWD_DEFINED__
#define __IWMDRMLicense_FWD_DEFINED__
typedef interface IWMDRMLicense IWMDRMLicense;
#endif /* __IWMDRMLicense_FWD_DEFINED__ */
#ifndef __IWMDRMLicenseQuery_FWD_DEFINED__
#define __IWMDRMLicenseQuery_FWD_DEFINED__
typedef interface IWMDRMLicenseQuery IWMDRMLicenseQuery;
#endif /* __IWMDRMLicenseQuery_FWD_DEFINED__ */
#ifndef __IWMDRMLicenseManagement_FWD_DEFINED__
#define __IWMDRMLicenseManagement_FWD_DEFINED__
typedef interface IWMDRMLicenseManagement IWMDRMLicenseManagement;
#endif /* __IWMDRMLicenseManagement_FWD_DEFINED__ */
#ifndef __IWMDRMNetReceiver_FWD_DEFINED__
#define __IWMDRMNetReceiver_FWD_DEFINED__
typedef interface IWMDRMNetReceiver IWMDRMNetReceiver;
#endif /* __IWMDRMNetReceiver_FWD_DEFINED__ */
#ifndef __IWMDRMNetReceiver2_FWD_DEFINED__
#define __IWMDRMNetReceiver2_FWD_DEFINED__
typedef interface IWMDRMNetReceiver2 IWMDRMNetReceiver2;
#endif /* __IWMDRMNetReceiver2_FWD_DEFINED__ */
#ifndef __IWMDRMNetTransmitter_FWD_DEFINED__
#define __IWMDRMNetTransmitter_FWD_DEFINED__
typedef interface IWMDRMNetTransmitter IWMDRMNetTransmitter;
#endif /* __IWMDRMNetTransmitter_FWD_DEFINED__ */
#ifndef __IWMDRMNetTransmitter2_FWD_DEFINED__
#define __IWMDRMNetTransmitter2_FWD_DEFINED__
typedef interface IWMDRMNetTransmitter2 IWMDRMNetTransmitter2;
#endif /* __IWMDRMNetTransmitter2_FWD_DEFINED__ */
#ifndef __IWMDRMIndividualizationStatus_FWD_DEFINED__
#define __IWMDRMIndividualizationStatus_FWD_DEFINED__
typedef interface IWMDRMIndividualizationStatus IWMDRMIndividualizationStatus;
#endif /* __IWMDRMIndividualizationStatus_FWD_DEFINED__ */
#ifndef __IWMDRMLicenseBackupRestoreStatus_FWD_DEFINED__
#define __IWMDRMLicenseBackupRestoreStatus_FWD_DEFINED__
typedef interface IWMDRMLicenseBackupRestoreStatus IWMDRMLicenseBackupRestoreStatus;
#endif /* __IWMDRMLicenseBackupRestoreStatus_FWD_DEFINED__ */
#ifndef __IWMDRMNonSilentLicenseAquisition_FWD_DEFINED__
#define __IWMDRMNonSilentLicenseAquisition_FWD_DEFINED__
typedef interface IWMDRMNonSilentLicenseAquisition IWMDRMNonSilentLicenseAquisition;
#endif /* __IWMDRMNonSilentLicenseAquisition_FWD_DEFINED__ */
#ifndef __WMDRMContentEnablerActivate_FWD_DEFINED__
#define __WMDRMContentEnablerActivate_FWD_DEFINED__
#ifdef __cplusplus
typedef class WMDRMContentEnablerActivate WMDRMContentEnablerActivate;
#else
typedef struct WMDRMContentEnablerActivate WMDRMContentEnablerActivate;
#endif /* __cplusplus */
#endif /* __WMDRMContentEnablerActivate_FWD_DEFINED__ */
/* header files for imported files */
#include "oaidl.h"
#include "ocidl.h"
#include "mfobjects.h"
#include "mfidl.h"
#ifdef __cplusplus
extern "C"{
#endif
/* interface __MIDL_itf_wmdrmsdk_0000_0000 */
/* [local] */
EXTERN_C const DECLSPEC_SELECTANY WCHAR *g_wszWMDRM_ACTIONLIST_TAG = L"ACTIONLIST";
EXTERN_C const DECLSPEC_SELECTANY WCHAR *g_wszWMDRM_ACTION_TAG = L"ACTION";
EXTERN_C const DECLSPEC_SELECTANY WCHAR *g_wszWMDRM_RIGHT_PLAYBACK = L"Play";
EXTERN_C const DECLSPEC_SELECTANY WCHAR *g_wszWMDRM_RIGHT_COPY = L"Copy";
EXTERN_C const DECLSPEC_SELECTANY WCHAR *g_wszWMDRM_RIGHT_PLAYLIST_BURN = L"PlaylistBurn";
EXTERN_C const DECLSPEC_SELECTANY WCHAR *g_wszWMDRM_RIGHT_CREATE_THUMBNAIL_IMAGE = L"CreateThumbnailImage";
EXTERN_C const DECLSPEC_SELECTANY WCHAR *g_wszWMDRM_RIGHT_COPY_TO_CD = L"Print.redbook";
EXTERN_C const DECLSPEC_SELECTANY WCHAR *g_wszWMDRM_RIGHT_COPY_TO_SDMI_DEVICE = L"Transfer.SDMI";
EXTERN_C const DECLSPEC_SELECTANY WCHAR *g_wszWMDRM_RIGHT_COPY_TO_NON_SDMI_DEVICE = L"Transfer.NONSDMI";
EXTERN_C const DECLSPEC_SELECTANY WCHAR *g_wszWMDRM_RIGHT_BACKUP = L"Backup";
EXTERN_C const DECLSPEC_SELECTANY WCHAR *g_wszWMDRM_RIGHT_COLLABORATIVE_PLAY = L"CollaborativePlay";
EXTERN_C const DECLSPEC_SELECTANY WCHAR *g_wszWMDRM_ActionAllowed = L"ActionAllowed.";
EXTERN_C const DECLSPEC_SELECTANY WCHAR *g_wszWMDRM_ActionAllowed_Playback = L"ActionAllowed.Play";
EXTERN_C const DECLSPEC_SELECTANY WCHAR *g_wszWMDRM_ActionAllowed_Copy = L"ActionAllowed.Copy";
EXTERN_C const DECLSPEC_SELECTANY WCHAR *g_wszWMDRM_ActionAllowed_PlaylistBurn = L"ActionAllowed.PlaylistBurn";
EXTERN_C const DECLSPEC_SELECTANY WCHAR *g_wszWMDRM_ActionAllowed_CreateThumbnailImage = L"ActionAllowed.CreateThumbnailImage";
EXTERN_C const DECLSPEC_SELECTANY WCHAR *g_wszWMDRM_ActionAllowed_CopyToCD = L"ActionAllowed.Print.redbook";
EXTERN_C const DECLSPEC_SELECTANY WCHAR *g_wszWMDRM_ActionAllowed_CopyToSDMIDevice = L"ActionAllowed.Transfer.SDMI";
EXTERN_C const DECLSPEC_SELECTANY WCHAR *g_wszWMDRM_ActionAllowed_CopyToNonSDMIDevice = L"ActionAllowed.Transfer.NONSDMI";
EXTERN_C const DECLSPEC_SELECTANY WCHAR *g_wszWMDRM_ActionAllowed_Backup = L"ActionAllowed.Backup";
EXTERN_C const DECLSPEC_SELECTANY WCHAR *g_wszWMDRM_ActionAllowed_CollaborativePlay = L"ActionAllowed.CollaborativePlay";
EXTERN_C const DECLSPEC_SELECTANY WCHAR *g_wszWMDRM_LicenseState = L"LicenseStateData.";
EXTERN_C const DECLSPEC_SELECTANY WCHAR *g_wszWMDRM_LicenseState_Playback = L"LicenseStateData.Play";
EXTERN_C const DECLSPEC_SELECTANY WCHAR *g_wszWMDRM_LicenseState_Copy = L"LicenseStateData.Copy";
EXTERN_C const DECLSPEC_SELECTANY WCHAR *g_wszWMDRM_LicenseState_PlaylistBurn = L"LicenseStateData.PlaylistBurn";
EXTERN_C const DECLSPEC_SELECTANY WCHAR *g_wszWMDRM_LicenseState_CreateThumbnailImage = L"LicenseStateData.CreateThumbnailImage";
EXTERN_C const DECLSPEC_SELECTANY WCHAR *g_wszWMDRM_LicenseState_CopyToCD = L"LicenseStateData.Print.redbook";
EXTERN_C const DECLSPEC_SELECTANY WCHAR *g_wszWMDRM_LicenseState_CopyToSDMIDevice = L"LicenseStateData.Transfer.SDMI";
EXTERN_C const DECLSPEC_SELECTANY WCHAR *g_wszWMDRM_LicenseState_CopyToNonSDMIDevice = L"LicenseStateData.Transfer.NONSDMI";
EXTERN_C const DECLSPEC_SELECTANY WCHAR *g_wszWMDRM_LicenseState_Backup = L"LicenseStateData.Backup";
EXTERN_C const DECLSPEC_SELECTANY WCHAR *g_wszWMDRM_LicenseState_CollaborativePlay = L"LicenseStateData.CollaborativePlay";
EXTERN_C const DECLSPEC_SELECTANY WCHAR *g_wszWMDRMNET_Revocation = L"WMDRMNET_REVOCATION";
EXTERN_C const DECLSPEC_SELECTANY WCHAR *g_wszWMDRM_SAPLEVEL = L"SAPLEVEL";
EXTERN_C const DECLSPEC_SELECTANY WCHAR *g_wszWMDRM_SAPRequired = L"SAPRequired";
EXTERN_C const DECLSPEC_SELECTANY WCHAR *g_wszWMDRM_SOURCEID = L"SOURCEID";
EXTERN_C const DECLSPEC_SELECTANY WCHAR *g_wszWMDRM_PRIORITY = L"PRIORITY";
EXTERN_C const DECLSPEC_SELECTANY WCHAR *g_wszWMDRM_ISSUEDATE = L"ISSUEDATE";
EXTERN_C const DECLSPEC_SELECTANY WCHAR *g_wszWMDRM_UplinkID = L"UplinkID";
EXTERN_C const DECLSPEC_SELECTANY WCHAR *g_wszWMDRM_REVINFOVERSION = L"REVINFOVERSION";
#define DRM_LICENSE_STATE_DATA_VAGUE 1
#define DRM_LICENSE_STATE_DATA_OPL_PRESENT 2
#define DRM_LICENSE_STATE_DATA_SAP_PRESENT 4
#define WMDRM_BACKUP_OVERWRITE ((DWORD) 0x00000001)
#define WMDRM_RESTORE_INDIVIDUALIZE ((DWORD) 0x00000002)
#define WMDRM_SECURITY_PERFORM_INDIV 0x00000001L
#define WMDRM_SECURITY_PERFORM_REVOCATION_REFRESH 0x00000002L
#define WMDRM_SECURITY_PERFORM_FORCE_INDIV 0x00000004L
#define WMDRM_LICENSE_TYPE_XML 0x00000001L
#define WMDRM_LICENSE_TYPE_XMR 0x00000002L
#define WMDRM_CERTIFICATE_TYPE_V1 0x00000001L
#define WMDRM_CERTIFICATE_TYPE_V2 0x00000002L
#define WMDRM_ACQUIRE_LICENSE_SILENT 0x00000001L
#define WMDRM_ACQUIRE_LICENSE_NONSILENT 0x00000002L
#define WMDRM_ACQUIRE_LICENSE_LEGACY_NONSILENT 0x00000004L
#define WMDRM_DELETE_LICENSE_IMMEDIATELY 0x00000001L
#define WMDRM_DELETE_LICENSE_MARK_FOR_PURGE 0x00000002L
#define WMDRM_CLEAN_LICENSE_STORE_SYNC 0x00000001L
#define WMDRM_CLEAN_LICENSE_STORE_ASYNC 0x00000002L
#define WMDRM_CERTIFICATE_TYPE_XML 1
#define WMDRM_PROTECTION_TYPE_RC4 1
EXTERN_GUID( WMDRM_REVOCATIONTYPE_APP, 0x90A37313, 0x0ECF, 0x4CAA, 0xA9, 0x06, 0xB1, 0x88, 0xF6, 0x12, 0x93, 0x00 );
EXTERN_GUID( WMDRM_REVOCATIONTYPE_DEVICE, 0x3129E375, 0xCEB0, 0x47D5, 0x9C, 0xCA, 0x9D, 0xB7, 0x4C, 0xFD, 0x43, 0x32 );
EXTERN_GUID( WMDRM_REVOCATIONTYPE_CARDEA, 0xCD75E604, 0x543D, 0x4A9C, 0x9F, 0x09, 0xFE, 0x6D, 0x24, 0xE8, 0xBF, 0x90 );
EXTERN_GUID( WMDRM_REVOCATIONTYPE_REVINFO, 0xCCDE5A55, 0xA688, 0x4405, 0xA8, 0x8B, 0xD1, 0x3F, 0x90, 0xD5, 0xBA, 0x3E );
EXTERN_GUID( WMDRM_REVOCATIONTYPE_GRL, 0xa2190240, 0xb2ca, 0x40b3, 0xb4, 0x8d, 0x9b, 0xc4, 0xc2, 0xdc, 0x42, 0x8d );
EXTERN_GUID( WMDRM_REVOCATIONTYPE_HDCP, 0xe627553a, 0x820f, 0x40fd, 0xb4, 0x65, 0xa4, 0x28, 0x30, 0xa5, 0x74, 0xc9 );
typedef
enum DRM_CRYPTO_TYPE
{ CRYPTO_TYPE_MCE = 0
} DRM_CRYPTO_TYPE;
#if !DRM_LICENSE_STATE_TYPES_DEFINED
#define DRM_LICENSE_STATE_TYPES_DEFINED 1
typedef
enum DRM_LICENSE_STATE_CATEGORY
{ WM_DRM_LICENSE_STATE_NORIGHT = 0,
WM_DRM_LICENSE_STATE_UNLIM = ( WM_DRM_LICENSE_STATE_NORIGHT + 1 ) ,
WM_DRM_LICENSE_STATE_COUNT = ( WM_DRM_LICENSE_STATE_UNLIM + 1 ) ,
WM_DRM_LICENSE_STATE_FROM = ( WM_DRM_LICENSE_STATE_COUNT + 1 ) ,
WM_DRM_LICENSE_STATE_UNTIL = ( WM_DRM_LICENSE_STATE_FROM + 1 ) ,
WM_DRM_LICENSE_STATE_FROM_UNTIL = ( WM_DRM_LICENSE_STATE_UNTIL + 1 ) ,
WM_DRM_LICENSE_STATE_COUNT_FROM = ( WM_DRM_LICENSE_STATE_FROM_UNTIL + 1 ) ,
WM_DRM_LICENSE_STATE_COUNT_UNTIL = ( WM_DRM_LICENSE_STATE_COUNT_FROM + 1 ) ,
WM_DRM_LICENSE_STATE_COUNT_FROM_UNTIL = ( WM_DRM_LICENSE_STATE_COUNT_UNTIL + 1 ) ,
WM_DRM_LICENSE_STATE_EXPIRATION_AFTER_FIRSTUSE = ( WM_DRM_LICENSE_STATE_COUNT_FROM_UNTIL + 1 )
} DRM_LICENSE_STATE_CATEGORY;
typedef struct _DRM_LICENSE_STATE_DATA
{
DWORD dwStreamId;
DRM_LICENSE_STATE_CATEGORY dwCategory;
DWORD dwNumCounts;
DWORD dwCount[ 4 ];
DWORD dwNumDates;
FILETIME datetime[ 4 ];
DWORD dwVague;
} DRM_LICENSE_STATE_DATA;
#endif
typedef
enum MSDRM_STATUS
{ DRM_ERROR = 0,
DRM_INFORMATION = 1,
DRM_BACKUPRESTORE_BEGIN = 2,
DRM_BACKUPRESTORE_END = 3,
DRM_BACKUPRESTORE_CONNECTING = 4,
DRM_BACKUPRESTORE_DISCONNECTING = 5,
DRM_ERROR_WITHURL = 6,
DRM_RESTRICTED_LICENSE = 7,
DRM_NEEDS_INDIVIDUALIZATION = 8,
DRM_PLAY_OPL_NOTIFICATION = 9,
DRM_COPY_OPL_NOTIFICATION = 10,
DRM_REFRESHCRL_COMPLETE = 11
} MSDRM_STATUS;
typedef
enum DRM_ATTR_DATATYPE
{ DRM_TYPE_DWORD = 0,
DRM_TYPE_STRING = 1,
DRM_TYPE_BINARY = 2,
DRM_TYPE_BOOL = 3,
DRM_TYPE_QWORD = 4,
DRM_TYPE_WORD = 5,
DRM_TYPE_GUID = 6
} DRM_ATTR_DATATYPE;
typedef
enum DRM_HTTP_STATUS
{ HTTP_NOTINITIATED = 0,
HTTP_CONNECTING = ( HTTP_NOTINITIATED + 1 ) ,
HTTP_REQUESTING = ( HTTP_CONNECTING + 1 ) ,
HTTP_RECEIVING = ( HTTP_REQUESTING + 1 ) ,
HTTP_COMPLETED = ( HTTP_RECEIVING + 1 )
} DRM_HTTP_STATUS;
typedef
enum DRM_INDIVIDUALIZATION_STATUS
{ INDI_UNDEFINED = 0,
INDI_BEGIN = 0x1,
INDI_SUCCEED = 0x2,
INDI_FAIL = 0x4,
INDI_CANCEL = 0x8,
INDI_DOWNLOAD = 0x10,
INDI_INSTALL = 0x20
} DRM_INDIVIDUALIZATION_STATUS;
typedef
enum _DRM_ACTION_ALLOWED_QUERY_RESULTS
{ DRM_ACTION_ALLOWED_QUERY_NOT_ENABLED = 0x1,
DRM_ACTION_ALLOWED_QUERY_NOT_ENABLED_NO_LICENSE = 0x2,
DRM_ACTION_ALLOWED_QUERY_NOT_ENABLED_NO_RIGHT = 0x4,
DRM_ACTION_ALLOWED_QUERY_NOT_ENABLED_EXHAUSTED = 0x8,
DRM_ACTION_ALLOWED_QUERY_NOT_ENABLED_EXPIRED = 0x10,
DRM_ACTION_ALLOWED_QUERY_NOT_ENABLED_NOT_STARTED = 0x20,
DRM_ACTION_ALLOWED_QUERY_NOT_ENABLED_APPSEC_TOO_LOW = 0x40,
DRM_ACTION_ALLOWED_QUERY_NOT_ENABLED_REQ_INDIV = 0x80,
DRM_ACTION_ALLOWED_QUERY_NOT_ENABLED_COPY_OPL_TOO_LOW = 0x100,
DRM_ACTION_ALLOWED_QUERY_NOT_ENABLED_COPY_OPL_EXCLUDED = 0x200,
DRM_ACTION_ALLOWED_QUERY_NOT_ENABLED_NO_CLOCK_SUPPORT = 0x400,
DRM_ACTION_ALLOWED_QUERY_NOT_ENABLED_NO_METERING_SUPPORT = 0x800,
DRM_ACTION_ALLOWED_QUERY_NOT_ENABLED_CHAIN_DEPTH_TOO_HIGH = 0x1000
} DRM_ACTION_ALLOWED_QUERY_RESULTS;
typedef struct _WMDRMCryptoData
{
DRM_CRYPTO_TYPE cryptoType;
unsigned __int64 qwCounterID;
unsigned __int64 qwOffset;
} WMDRMCryptoData;
typedef struct _WMIndividualizeStatus
{
HRESULT hr;
DRM_INDIVIDUALIZATION_STATUS enIndiStatus;
LPSTR pszIndiRespUrl;
DWORD dwHTTPRequest;
DRM_HTTP_STATUS enHTTPStatus;
DWORD dwHTTPReadProgress;
DWORD dwHTTPReadTotal;
} WM_INDIVIDUALIZE_STATUS;
typedef struct _WMBackupRestoreData
{
MSDRM_STATUS eStatus;
BSTR bstrError;
} WM_BACKUP_RESTORE_STATUS;
#ifndef DRM_OPL_TYPES
#define DRM_OPL_TYPES 1
#define WMDRM_OPL_PLAY ((DWORD) 0x00000001)
#define WMDRM_OPL_COPY ((DWORD) 0x00000002)
typedef struct __tagDRM_MINIMUM_OUTPUT_PROTECTION_LEVELS
{
WORD wCompressedDigitalVideo;
WORD wUncompressedDigitalVideo;
WORD wAnalogVideo;
WORD wCompressedDigitalAudio;
WORD wUncompressedDigitalAudio;
} DRM_MINIMUM_OUTPUT_PROTECTION_LEVELS;
typedef struct __tagDRM_OPL_OUTPUT_IDS
{
WORD cIds;
GUID *rgIds;
} DRM_OPL_OUTPUT_IDS;
#define VER_DRM_PLAY_OPL_V1 1
#define VER_DRM_PLAY_OPL 2
#define VER_DRM_VIDEO_OUTPUT_PROTECTION 2
typedef struct __tagDRM_OUTPUT_PROTECTION
{
GUID guidId;
BYTE bConfigData;
} DRM_OUTPUT_PROTECTION;
typedef struct __tagDRM_OUTPUT_PROTECTION_EX
{
DWORD dwVersion;
GUID guidId;
DWORD dwConfigData;
} DRM_OUTPUT_PROTECTION_EX;
typedef DRM_OUTPUT_PROTECTION DRM_AUDIO_OUTPUT_PROTECTION;
typedef DRM_OUTPUT_PROTECTION DRM_VIDEO_OUTPUT_PROTECTION;
typedef DRM_OUTPUT_PROTECTION_EX DRM_AUDIO_OUTPUT_PROTECTION_EX;
typedef DRM_OUTPUT_PROTECTION_EX DRM_VIDEO_OUTPUT_PROTECTION_EX;
typedef struct __tagDRM_VIDEO_OUTPUT_PROTECTION_IDS
{
WORD cEntries;
DRM_VIDEO_OUTPUT_PROTECTION *rgVop;
} DRM_VIDEO_OUTPUT_PROTECTION_IDS;
typedef struct __tagDRM_VIDEO_OUTPUT_PROTECTION_IDS_EX
{
DWORD dwVersion;
WORD cEntries;
DRM_VIDEO_OUTPUT_PROTECTION_EX *rgVop;
} DRM_VIDEO_OUTPUT_PROTECTION_IDS_EX;
typedef struct __tagDRM_AUDIO_OUTPUT_PROTECTION_IDS
{
WORD cEntries;
DRM_AUDIO_OUTPUT_PROTECTION *rgAop;
} DRM_AUDIO_OUTPUT_PROTECTION_IDS;
typedef struct __tagDRM_AUDIO_OUTPUT_PROTECTION_IDS_EX
{
DWORD dwVersion;
WORD cEntries;
DRM_AUDIO_OUTPUT_PROTECTION_EX *rgAop;
} DRM_AUDIO_OUTPUT_PROTECTION_IDS_EX;
typedef struct __tagDRM_PLAY_OPL
{
DRM_MINIMUM_OUTPUT_PROTECTION_LEVELS minOPL;
DRM_OPL_OUTPUT_IDS oplIdReserved;
DRM_VIDEO_OUTPUT_PROTECTION_IDS vopi;
} DRM_PLAY_OPL;
typedef struct __tagDRM_PLAY_OPL_EX
{
DWORD dwVersion;
DRM_MINIMUM_OUTPUT_PROTECTION_LEVELS minOPL;
DRM_OPL_OUTPUT_IDS oplIdReserved;
DRM_VIDEO_OUTPUT_PROTECTION_IDS_EX vopi;
} DRM_PLAY_OPL_EX;
typedef struct __tagDRM_COPY_OPL
{
WORD wMinimumCopyLevel;
DRM_OPL_OUTPUT_IDS oplIdIncludes;
DRM_OPL_OUTPUT_IDS oplIdExcludes;
} DRM_COPY_OPL;
#endif // DRM_OPL_TYPES
typedef struct _WMDRMOutputProtectionLevels
{
WORD wCompressedDigitalVideo;
WORD wUncompressedDigitalVideo;
WORD wAnalogVideo;
WORD wCompressedDigitalAudio;
WORD wUncompressedDigitalAudio;
WORD wMinimumCopyProtectionLevel;
} WMDRM_OUTPUT_PROTECTION_LEVELS;
typedef struct _WMDRMAnalogVideoRestrictions
{
GUID guidRestrictionID;
DWORD dwRestrictionData;
} WMDRM_ANALOG_VIDEO_RESTRICTIONS;
typedef struct _WMDRMAnalogVideoRestrictionsEx
{
DWORD dwVersion;
GUID guidRestrictionID;
DWORD cbRestrictionData;
BYTE *pbRestrictionData;
} WMDRM_ANALOG_VIDEO_RESTRICTIONS_EX;
typedef
enum _WMDRMNET_POLICY_TYPE
{ WMDRMNET_POLICY_TYPE_UNDEFINED = 0,
WMDRMNET_POLICY_TYPE_TRANSCRYPTPLAY = 0x1
} WMDRMNET_POLICY_TYPE;
typedef struct _tagWMDRMNET_POLICY
{
WMDRMNET_POLICY_TYPE ePolicyType;
BYTE *pbPolicy;
} WMDRMNET_POLICY;
typedef struct _WMDRMNET_POLICY_TRANSCRYPTPLAY
{
DWORD cbData;
BYTE *pbData;
} WMDRMNET_POLICY_TRANSCRYPTPLAY;
typedef struct _WMDRM_ENCRYPT_SCATTER_INFO
{
DWORD dwStreamID;
DWORD dwSampleProtectionVersion;
DWORD cbProtectionInfo;
BYTE *pbProtectionInfo;
} WMDRM_ENCRYPT_SCATTER_INFO;
typedef struct WMDRM_ENCRYPT_SCATTER_BLOCK
{
DWORD dwStreamID;
DWORD cbBlock;
BYTE *pbBlock;
} WMDRM_ENCRYPT_SCATTER_BLOCK;
EXTERN_C HRESULT STDMETHODCALLTYPE WMDRMStartup( );
EXTERN_C HRESULT STDMETHODCALLTYPE WMDRMShutdown( );
EXTERN_C HRESULT STDMETHODCALLTYPE WMDRMCreateProvider( OUT IWMDRMProvider **ppDRMProvider );
//
// WMDRMCreateProtectedProvider is only available via a Microsoft issued WMDRMSDK stub library
//
EXTERN_C HRESULT STDMETHODCALLTYPE WMDRMCreateProtectedProvider( OUT IWMDRMProvider **ppDRMProvider );
extern RPC_IF_HANDLE __MIDL_itf_wmdrmsdk_0000_0000_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_wmdrmsdk_0000_0000_v0_0_s_ifspec;
#ifndef __IDRMStatusCallback_INTERFACE_DEFINED__
#define __IDRMStatusCallback_INTERFACE_DEFINED__
/* interface IDRMStatusCallback */
/* [local][unique][helpstring][uuid][object] */
EXTERN_C const IID IID_IDRMStatusCallback;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("08548704-75B1-4982-9B26-FB385DEE741D")
IDRMStatusCallback : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE OnStatus(
/* [in] */ MSDRM_STATUS Status,
/* [in] */ HRESULT hr,
/* [in] */ DRM_ATTR_DATATYPE dwType,
/* [in] */ BYTE *pValue,
/* [in] */ void *pvContext) = 0;
};
#else /* C style interface */
typedef struct IDRMStatusCallbackVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IDRMStatusCallback * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IDRMStatusCallback * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IDRMStatusCallback * This);
HRESULT ( STDMETHODCALLTYPE *OnStatus )(
IDRMStatusCallback * This,
/* [in] */ MSDRM_STATUS Status,
/* [in] */ HRESULT hr,
/* [in] */ DRM_ATTR_DATATYPE dwType,
/* [in] */ BYTE *pValue,
/* [in] */ void *pvContext);
END_INTERFACE
} IDRMStatusCallbackVtbl;
interface IDRMStatusCallback
{
CONST_VTBL struct IDRMStatusCallbackVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IDRMStatusCallback_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IDRMStatusCallback_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IDRMStatusCallback_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IDRMStatusCallback_OnStatus(This,Status,hr,dwType,pValue,pvContext) \
( (This)->lpVtbl -> OnStatus(This,Status,hr,dwType,pValue,pvContext) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IDRMStatusCallback_INTERFACE_DEFINED__ */
#ifndef __IWMDRMEventGenerator_INTERFACE_DEFINED__
#define __IWMDRMEventGenerator_INTERFACE_DEFINED__
/* interface IWMDRMEventGenerator */
/* [local][unique][helpstring][uuid][object] */
EXTERN_C const IID IID_IWMDRMEventGenerator;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("CE11CC91-E615-4E0B-BE1F-09B5AEC033F2")
IWMDRMEventGenerator : public IMFMediaEventGenerator
{
public:
virtual HRESULT STDMETHODCALLTYPE CancelAsyncOperation(
/* [in] */ IUnknown *punkCancelationCookie) = 0;
virtual HRESULT STDMETHODCALLTYPE Shutdown( void) = 0;
};
#else /* C style interface */
typedef struct IWMDRMEventGeneratorVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IWMDRMEventGenerator * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IWMDRMEventGenerator * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IWMDRMEventGenerator * This);
HRESULT ( STDMETHODCALLTYPE *GetEvent )(
IWMDRMEventGenerator * This,
/* [in] */ DWORD dwFlags,
/* [out] */ IMFMediaEvent **ppEvent);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *BeginGetEvent )(
IWMDRMEventGenerator * This,
/* [in] */ IMFAsyncCallback *pCallback,
/* [in] */ IUnknown *punkState);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *EndGetEvent )(
IWMDRMEventGenerator * This,
/* [in] */ IMFAsyncResult *pResult,
/* [annotation][out] */
__out IMFMediaEvent **ppEvent);
HRESULT ( STDMETHODCALLTYPE *QueueEvent )(
IWMDRMEventGenerator * This,
/* [in] */ MediaEventType met,
/* [in] */ REFGUID guidExtendedType,
/* [in] */ HRESULT hrStatus,
/* [unique][in] */ const PROPVARIANT *pvValue);
HRESULT ( STDMETHODCALLTYPE *CancelAsyncOperation )(
IWMDRMEventGenerator * This,
/* [in] */ IUnknown *punkCancelationCookie);
HRESULT ( STDMETHODCALLTYPE *Shutdown )(
IWMDRMEventGenerator * This);
END_INTERFACE
} IWMDRMEventGeneratorVtbl;
interface IWMDRMEventGenerator
{
CONST_VTBL struct IWMDRMEventGeneratorVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IWMDRMEventGenerator_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IWMDRMEventGenerator_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IWMDRMEventGenerator_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IWMDRMEventGenerator_GetEvent(This,dwFlags,ppEvent) \
( (This)->lpVtbl -> GetEvent(This,dwFlags,ppEvent) )
#define IWMDRMEventGenerator_BeginGetEvent(This,pCallback,punkState) \
( (This)->lpVtbl -> BeginGetEvent(This,pCallback,punkState) )
#define IWMDRMEventGenerator_EndGetEvent(This,pResult,ppEvent) \
( (This)->lpVtbl -> EndGetEvent(This,pResult,ppEvent) )
#define IWMDRMEventGenerator_QueueEvent(This,met,guidExtendedType,hrStatus,pvValue) \
( (This)->lpVtbl -> QueueEvent(This,met,guidExtendedType,hrStatus,pvValue) )
#define IWMDRMEventGenerator_CancelAsyncOperation(This,punkCancelationCookie) \
( (This)->lpVtbl -> CancelAsyncOperation(This,punkCancelationCookie) )
#define IWMDRMEventGenerator_Shutdown(This) \
( (This)->lpVtbl -> Shutdown(This) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IWMDRMEventGenerator_INTERFACE_DEFINED__ */
#ifndef __IWMDRMProvider_INTERFACE_DEFINED__
#define __IWMDRMProvider_INTERFACE_DEFINED__
/* interface IWMDRMProvider */
/* [local][unique][helpstring][uuid][object] */
EXTERN_C const IID IID_IWMDRMProvider;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("98DC8917-8640-4b1d-9F1E-A590D40357EE")
IWMDRMProvider : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE CreateObject(
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject) = 0;
};
#else /* C style interface */
typedef struct IWMDRMProviderVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IWMDRMProvider * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IWMDRMProvider * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IWMDRMProvider * This);
HRESULT ( STDMETHODCALLTYPE *CreateObject )(
IWMDRMProvider * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject);
END_INTERFACE
} IWMDRMProviderVtbl;
interface IWMDRMProvider
{
CONST_VTBL struct IWMDRMProviderVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IWMDRMProvider_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IWMDRMProvider_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IWMDRMProvider_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IWMDRMProvider_CreateObject(This,riid,ppvObject) \
( (This)->lpVtbl -> CreateObject(This,riid,ppvObject) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IWMDRMProvider_INTERFACE_DEFINED__ */
#ifndef __IWMDRMSecurity_INTERFACE_DEFINED__
#define __IWMDRMSecurity_INTERFACE_DEFINED__
/* interface IWMDRMSecurity */
/* [local][unique][helpstring][uuid][object] */
EXTERN_C const IID IID_IWMDRMSecurity;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("70800F56-5239-4a0b-A8B8-D53C6BAE4171")
IWMDRMSecurity : public IWMDRMEventGenerator
{
public:
virtual HRESULT STDMETHODCALLTYPE GetSecurityVersion(
/* [out] */ BSTR *pbstrVersion) = 0;
virtual HRESULT STDMETHODCALLTYPE GetMachineCertificate(
/* [in] */ DWORD dwCertificateType,
/* [out] */ BYTE rgbVersion[ 4 ],
/* [size_is][size_is][out] */ BYTE **ppbCertificate,
/* [out] */ DWORD *pcbCertificate) = 0;
virtual HRESULT STDMETHODCALLTYPE PerformSecurityUpdate(
/* [in] */ DWORD dwFlags,
/* [out] */ IUnknown **ppunkCancelationCookie) = 0;
virtual HRESULT STDMETHODCALLTYPE SetRevocationData(
/* [in] */ REFGUID guidRevocationType,
/* [size_is][in] */ BYTE *pbCRL,
/* [in] */ DWORD cbCRL) = 0;
virtual HRESULT STDMETHODCALLTYPE GetRevocationData(
/* [in] */ REFGUID guidRevocationType,
/* [size_is][out] */ BYTE *pbCRL,
/* [out][in] */ DWORD *pcbCRL) = 0;
virtual HRESULT STDMETHODCALLTYPE GetRevocationDataVersion(
/* [in] */ REFGUID guidRevocationType,
/* [out] */ ULONGLONG *pdwCRLVersion) = 0;
virtual HRESULT STDMETHODCALLTYPE CheckCertForRevocation(
/* [in] */ REFGUID rguidRevocationList,
/* [size_is][in] */ BYTE *pbCert,
/* [in] */ DWORD cbCert,
/* [out] */ BOOL *pfRevoked) = 0;
virtual HRESULT STDMETHODCALLTYPE GetContentEnablersForRevocations(
/* [size_is][in] */ BYTE **rgpbCerts,
/* [size_is][in] */ DWORD *rgpdwCertSizes,
/* [size_is][in] */ GUID **rgpguidCerts,
/* [in] */ DWORD cCerts,
/* [in] */ HRESULT hResultHint,
/* [size_is][out] */ IMFContentEnabler **prgContentEnablers,
/* [out][in] */ DWORD *pcContentEnablers) = 0;
virtual HRESULT STDMETHODCALLTYPE GetContentEnablersFromHashes(
/* [size_is][in] */ BSTR *rgpbCertHashes,
/* [in] */ DWORD cCerts,
/* [in] */ HRESULT hResultHint,
/* [size_is][out] */ IMFContentEnabler **prgContentEnablers,
/* [out][in] */ DWORD *pcContentEnablers) = 0;
};
#else /* C style interface */
typedef struct IWMDRMSecurityVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IWMDRMSecurity * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IWMDRMSecurity * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IWMDRMSecurity * This);
HRESULT ( STDMETHODCALLTYPE *GetEvent )(
IWMDRMSecurity * This,
/* [in] */ DWORD dwFlags,
/* [out] */ IMFMediaEvent **ppEvent);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *BeginGetEvent )(
IWMDRMSecurity * This,
/* [in] */ IMFAsyncCallback *pCallback,
/* [in] */ IUnknown *punkState);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *EndGetEvent )(
IWMDRMSecurity * This,
/* [in] */ IMFAsyncResult *pResult,
/* [annotation][out] */
__out IMFMediaEvent **ppEvent);
HRESULT ( STDMETHODCALLTYPE *QueueEvent )(
IWMDRMSecurity * This,
/* [in] */ MediaEventType met,
/* [in] */ REFGUID guidExtendedType,
/* [in] */ HRESULT hrStatus,
/* [unique][in] */ const PROPVARIANT *pvValue);
HRESULT ( STDMETHODCALLTYPE *CancelAsyncOperation )(
IWMDRMSecurity * This,
/* [in] */ IUnknown *punkCancelationCookie);
HRESULT ( STDMETHODCALLTYPE *Shutdown )(
IWMDRMSecurity * This);
HRESULT ( STDMETHODCALLTYPE *GetSecurityVersion )(
IWMDRMSecurity * This,
/* [out] */ BSTR *pbstrVersion);
HRESULT ( STDMETHODCALLTYPE *GetMachineCertificate )(
IWMDRMSecurity * This,
/* [in] */ DWORD dwCertificateType,
/* [out] */ BYTE rgbVersion[ 4 ],
/* [size_is][size_is][out] */ BYTE **ppbCertificate,
/* [out] */ DWORD *pcbCertificate);
HRESULT ( STDMETHODCALLTYPE *PerformSecurityUpdate )(
IWMDRMSecurity * This,
/* [in] */ DWORD dwFlags,
/* [out] */ IUnknown **ppunkCancelationCookie);
HRESULT ( STDMETHODCALLTYPE *SetRevocationData )(
IWMDRMSecurity * This,
/* [in] */ REFGUID guidRevocationType,
/* [size_is][in] */ BYTE *pbCRL,
/* [in] */ DWORD cbCRL);
HRESULT ( STDMETHODCALLTYPE *GetRevocationData )(
IWMDRMSecurity * This,
/* [in] */ REFGUID guidRevocationType,
/* [size_is][out] */ BYTE *pbCRL,
/* [out][in] */ DWORD *pcbCRL);
HRESULT ( STDMETHODCALLTYPE *GetRevocationDataVersion )(
IWMDRMSecurity * This,
/* [in] */ REFGUID guidRevocationType,
/* [out] */ ULONGLONG *pdwCRLVersion);
HRESULT ( STDMETHODCALLTYPE *CheckCertForRevocation )(
IWMDRMSecurity * This,
/* [in] */ REFGUID rguidRevocationList,
/* [size_is][in] */ BYTE *pbCert,
/* [in] */ DWORD cbCert,
/* [out] */ BOOL *pfRevoked);
HRESULT ( STDMETHODCALLTYPE *GetContentEnablersForRevocations )(
IWMDRMSecurity * This,
/* [size_is][in] */ BYTE **rgpbCerts,
/* [size_is][in] */ DWORD *rgpdwCertSizes,
/* [size_is][in] */ GUID **rgpguidCerts,
/* [in] */ DWORD cCerts,
/* [in] */ HRESULT hResultHint,
/* [size_is][out] */ IMFContentEnabler **prgContentEnablers,
/* [out][in] */ DWORD *pcContentEnablers);
HRESULT ( STDMETHODCALLTYPE *GetContentEnablersFromHashes )(
IWMDRMSecurity * This,
/* [size_is][in] */ BSTR *rgpbCertHashes,
/* [in] */ DWORD cCerts,
/* [in] */ HRESULT hResultHint,
/* [size_is][out] */ IMFContentEnabler **prgContentEnablers,
/* [out][in] */ DWORD *pcContentEnablers);
END_INTERFACE
} IWMDRMSecurityVtbl;
interface IWMDRMSecurity
{
CONST_VTBL struct IWMDRMSecurityVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IWMDRMSecurity_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IWMDRMSecurity_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IWMDRMSecurity_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IWMDRMSecurity_GetEvent(This,dwFlags,ppEvent) \
( (This)->lpVtbl -> GetEvent(This,dwFlags,ppEvent) )
#define IWMDRMSecurity_BeginGetEvent(This,pCallback,punkState) \
( (This)->lpVtbl -> BeginGetEvent(This,pCallback,punkState) )
#define IWMDRMSecurity_EndGetEvent(This,pResult,ppEvent) \
( (This)->lpVtbl -> EndGetEvent(This,pResult,ppEvent) )
#define IWMDRMSecurity_QueueEvent(This,met,guidExtendedType,hrStatus,pvValue) \
( (This)->lpVtbl -> QueueEvent(This,met,guidExtendedType,hrStatus,pvValue) )
#define IWMDRMSecurity_CancelAsyncOperation(This,punkCancelationCookie) \
( (This)->lpVtbl -> CancelAsyncOperation(This,punkCancelationCookie) )
#define IWMDRMSecurity_Shutdown(This) \
( (This)->lpVtbl -> Shutdown(This) )
#define IWMDRMSecurity_GetSecurityVersion(This,pbstrVersion) \
( (This)->lpVtbl -> GetSecurityVersion(This,pbstrVersion) )
#define IWMDRMSecurity_GetMachineCertificate(This,dwCertificateType,rgbVersion,ppbCertificate,pcbCertificate) \
( (This)->lpVtbl -> GetMachineCertificate(This,dwCertificateType,rgbVersion,ppbCertificate,pcbCertificate) )
#define IWMDRMSecurity_PerformSecurityUpdate(This,dwFlags,ppunkCancelationCookie) \
( (This)->lpVtbl -> PerformSecurityUpdate(This,dwFlags,ppunkCancelationCookie) )
#define IWMDRMSecurity_SetRevocationData(This,guidRevocationType,pbCRL,cbCRL) \
( (This)->lpVtbl -> SetRevocationData(This,guidRevocationType,pbCRL,cbCRL) )
#define IWMDRMSecurity_GetRevocationData(This,guidRevocationType,pbCRL,pcbCRL) \
( (This)->lpVtbl -> GetRevocationData(This,guidRevocationType,pbCRL,pcbCRL) )
#define IWMDRMSecurity_GetRevocationDataVersion(This,guidRevocationType,pdwCRLVersion) \
( (This)->lpVtbl -> GetRevocationDataVersion(This,guidRevocationType,pdwCRLVersion) )
#define IWMDRMSecurity_CheckCertForRevocation(This,rguidRevocationList,pbCert,cbCert,pfRevoked) \
( (This)->lpVtbl -> CheckCertForRevocation(This,rguidRevocationList,pbCert,cbCert,pfRevoked) )
#define IWMDRMSecurity_GetContentEnablersForRevocations(This,rgpbCerts,rgpdwCertSizes,rgpguidCerts,cCerts,hResultHint,prgContentEnablers,pcContentEnablers) \
( (This)->lpVtbl -> GetContentEnablersForRevocations(This,rgpbCerts,rgpdwCertSizes,rgpguidCerts,cCerts,hResultHint,prgContentEnablers,pcContentEnablers) )
#define IWMDRMSecurity_GetContentEnablersFromHashes(This,rgpbCertHashes,cCerts,hResultHint,prgContentEnablers,pcContentEnablers) \
( (This)->lpVtbl -> GetContentEnablersFromHashes(This,rgpbCertHashes,cCerts,hResultHint,prgContentEnablers,pcContentEnablers) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IWMDRMSecurity_INTERFACE_DEFINED__ */
#ifndef __IWMDRMEncrypt_INTERFACE_DEFINED__
#define __IWMDRMEncrypt_INTERFACE_DEFINED__
/* interface IWMDRMEncrypt */
/* [local][unique][helpstring][uuid][object] */
EXTERN_C const IID IID_IWMDRMEncrypt;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("C9E0A5F4-DD22-4dc4-B795-88FA91F0516B")
IWMDRMEncrypt : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE Encrypt(
/* [size_is][out][in] */ BYTE *pbData,
/* [in] */ DWORD cbData,
/* [in] */ WMDRMCryptoData *pWMCryptoData) = 0;
};
#else /* C style interface */
typedef struct IWMDRMEncryptVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IWMDRMEncrypt * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IWMDRMEncrypt * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IWMDRMEncrypt * This);
HRESULT ( STDMETHODCALLTYPE *Encrypt )(
IWMDRMEncrypt * This,
/* [size_is][out][in] */ BYTE *pbData,
/* [in] */ DWORD cbData,
/* [in] */ WMDRMCryptoData *pWMCryptoData);
END_INTERFACE
} IWMDRMEncryptVtbl;
interface IWMDRMEncrypt
{
CONST_VTBL struct IWMDRMEncryptVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IWMDRMEncrypt_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IWMDRMEncrypt_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IWMDRMEncrypt_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IWMDRMEncrypt_Encrypt(This,pbData,cbData,pWMCryptoData) \
( (This)->lpVtbl -> Encrypt(This,pbData,cbData,pWMCryptoData) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IWMDRMEncrypt_INTERFACE_DEFINED__ */
#ifndef __IWMDRMEncryptScatter_INTERFACE_DEFINED__
#define __IWMDRMEncryptScatter_INTERFACE_DEFINED__
/* interface IWMDRMEncryptScatter */
/* [local][unique][helpstring][uuid][object] */
EXTERN_C const IID IID_IWMDRMEncryptScatter;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("2662fa39-4c62-481a-956c-7bfcb33c2888")
IWMDRMEncryptScatter : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE InitEncryptScatter(
/* [in] */ DWORD cStreams,
/* [size_is][in] */ WMDRM_ENCRYPT_SCATTER_INFO *rgInfos) = 0;
virtual HRESULT STDMETHODCALLTYPE EncryptScatter(
/* [in] */ DWORD cBlocks,
/* [size_is][in] */ WMDRM_ENCRYPT_SCATTER_BLOCK *rgBlocks,
/* [in] */ WMDRMCryptoData *pWMCryptoData,
/* [in] */ DWORD cbOutput,
/* [size_is][out] */ BYTE *pbOutput) = 0;
};
#else /* C style interface */
typedef struct IWMDRMEncryptScatterVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IWMDRMEncryptScatter * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IWMDRMEncryptScatter * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IWMDRMEncryptScatter * This);
HRESULT ( STDMETHODCALLTYPE *InitEncryptScatter )(
IWMDRMEncryptScatter * This,
/* [in] */ DWORD cStreams,
/* [size_is][in] */ WMDRM_ENCRYPT_SCATTER_INFO *rgInfos);
HRESULT ( STDMETHODCALLTYPE *EncryptScatter )(
IWMDRMEncryptScatter * This,
/* [in] */ DWORD cBlocks,
/* [size_is][in] */ WMDRM_ENCRYPT_SCATTER_BLOCK *rgBlocks,
/* [in] */ WMDRMCryptoData *pWMCryptoData,
/* [in] */ DWORD cbOutput,
/* [size_is][out] */ BYTE *pbOutput);
END_INTERFACE
} IWMDRMEncryptScatterVtbl;
interface IWMDRMEncryptScatter
{
CONST_VTBL struct IWMDRMEncryptScatterVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IWMDRMEncryptScatter_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IWMDRMEncryptScatter_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IWMDRMEncryptScatter_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IWMDRMEncryptScatter_InitEncryptScatter(This,cStreams,rgInfos) \
( (This)->lpVtbl -> InitEncryptScatter(This,cStreams,rgInfos) )
#define IWMDRMEncryptScatter_EncryptScatter(This,cBlocks,rgBlocks,pWMCryptoData,cbOutput,pbOutput) \
( (This)->lpVtbl -> EncryptScatter(This,cBlocks,rgBlocks,pWMCryptoData,cbOutput,pbOutput) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IWMDRMEncryptScatter_INTERFACE_DEFINED__ */
#ifndef __IWMDRMDecrypt_INTERFACE_DEFINED__
#define __IWMDRMDecrypt_INTERFACE_DEFINED__
/* interface IWMDRMDecrypt */
/* [local][unique][helpstring][uuid][object] */
EXTERN_C const IID IID_IWMDRMDecrypt;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("C9E0A5F5-DD22-4dc4-B795-88FA91F0516B")
IWMDRMDecrypt : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE Decrypt(
/* [size_is][out][in] */ BYTE *pbData,
/* [in] */ DWORD cbData,
/* [in] */ WMDRMCryptoData *pWMCryptoData) = 0;
};
#else /* C style interface */
typedef struct IWMDRMDecryptVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IWMDRMDecrypt * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IWMDRMDecrypt * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IWMDRMDecrypt * This);
HRESULT ( STDMETHODCALLTYPE *Decrypt )(
IWMDRMDecrypt * This,
/* [size_is][out][in] */ BYTE *pbData,
/* [in] */ DWORD cbData,
/* [in] */ WMDRMCryptoData *pWMCryptoData);
END_INTERFACE
} IWMDRMDecryptVtbl;
interface IWMDRMDecrypt
{
CONST_VTBL struct IWMDRMDecryptVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IWMDRMDecrypt_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IWMDRMDecrypt_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IWMDRMDecrypt_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IWMDRMDecrypt_Decrypt(This,pbData,cbData,pWMCryptoData) \
( (This)->lpVtbl -> Decrypt(This,pbData,cbData,pWMCryptoData) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IWMDRMDecrypt_INTERFACE_DEFINED__ */
#ifndef __IWMDRMLicense_INTERFACE_DEFINED__
#define __IWMDRMLicense_INTERFACE_DEFINED__
/* interface IWMDRMLicense */
/* [local][unique][helpstring][uuid][object] */
EXTERN_C const IID IID_IWMDRMLicense;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("C9E0A5F3-DD22-4dc4-B795-88FA91F0516B")
IWMDRMLicense : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE ResetEnumeration( void) = 0;
virtual HRESULT STDMETHODCALLTYPE GetNext( void) = 0;
virtual HRESULT STDMETHODCALLTYPE GetLicense(
/* [size_is][size_is][out] */ BYTE **ppbLicense,
/* [out] */ DWORD *pcbLicense,
/* [out] */ DWORD *pdwLicenseType) = 0;
virtual HRESULT STDMETHODCALLTYPE GetLicenseProperty(
/* [in] */ BSTR bstrName,
/* [out] */ PROPVARIANT *ppropVariant) = 0;
virtual HRESULT STDMETHODCALLTYPE CreateDecryptor(
/* [out] */ IWMDRMDecrypt **ppDecryptor) = 0;
virtual HRESULT STDMETHODCALLTYPE CreateSecureDecryptor(
/* [size_is][in] */ BYTE *pbCertificate,
/* [in] */ DWORD cbCertificate,
/* [in] */ DWORD dwCertificateType,
/* [in] */ DWORD dwFlags,
/* [out] */ BYTE *pbInitializationVector,
/* [out] */ DWORD *pcbInitializationVector,
/* [out] */ IWMDRMDecrypt **ppDecryptor) = 0;
virtual HRESULT STDMETHODCALLTYPE CreateEncryptor(
/* [out] */ IWMDRMEncrypt **ppEncryptor) = 0;
virtual HRESULT STDMETHODCALLTYPE PersistLicense( void) = 0;
virtual HRESULT STDMETHODCALLTYPE CanPersist(
/* [out] */ BOOL *pfCanPersist) = 0;
virtual HRESULT STDMETHODCALLTYPE GetAnalogVideoRestrictionLevels(
/* [size_is][out] */ WMDRM_ANALOG_VIDEO_RESTRICTIONS rgAnalogVideoRestrictions[ ],
/* [out][in] */ DWORD *pcRestrictions) = 0;
virtual HRESULT STDMETHODCALLTYPE GetOutputProtectionLevels(
/* [out] */ WMDRM_OUTPUT_PROTECTION_LEVELS *pOPLs) = 0;
virtual HRESULT STDMETHODCALLTYPE GetInclusionList(
/* [size_is][size_is][out] */ GUID **ppGuids,
/* [out] */ DWORD *pcGuids) = 0;
virtual HRESULT STDMETHODCALLTYPE GetPolicy(
/* [size_is][size_is][out] */ BYTE **ppbPolicy,
/* [out] */ DWORD *pcbPolicy) = 0;
};
#else /* C style interface */
typedef struct IWMDRMLicenseVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IWMDRMLicense * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IWMDRMLicense * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IWMDRMLicense * This);
HRESULT ( STDMETHODCALLTYPE *ResetEnumeration )(
IWMDRMLicense * This);
HRESULT ( STDMETHODCALLTYPE *GetNext )(
IWMDRMLicense * This);
HRESULT ( STDMETHODCALLTYPE *GetLicense )(
IWMDRMLicense * This,
/* [size_is][size_is][out] */ BYTE **ppbLicense,
/* [out] */ DWORD *pcbLicense,
/* [out] */ DWORD *pdwLicenseType);
HRESULT ( STDMETHODCALLTYPE *GetLicenseProperty )(
IWMDRMLicense * This,
/* [in] */ BSTR bstrName,
/* [out] */ PROPVARIANT *ppropVariant);
HRESULT ( STDMETHODCALLTYPE *CreateDecryptor )(
IWMDRMLicense * This,
/* [out] */ IWMDRMDecrypt **ppDecryptor);
HRESULT ( STDMETHODCALLTYPE *CreateSecureDecryptor )(
IWMDRMLicense * This,
/* [size_is][in] */ BYTE *pbCertificate,
/* [in] */ DWORD cbCertificate,
/* [in] */ DWORD dwCertificateType,
/* [in] */ DWORD dwFlags,
/* [out] */ BYTE *pbInitializationVector,
/* [out] */ DWORD *pcbInitializationVector,
/* [out] */ IWMDRMDecrypt **ppDecryptor);
HRESULT ( STDMETHODCALLTYPE *CreateEncryptor )(
IWMDRMLicense * This,
/* [out] */ IWMDRMEncrypt **ppEncryptor);
HRESULT ( STDMETHODCALLTYPE *PersistLicense )(
IWMDRMLicense * This);
HRESULT ( STDMETHODCALLTYPE *CanPersist )(
IWMDRMLicense * This,
/* [out] */ BOOL *pfCanPersist);
HRESULT ( STDMETHODCALLTYPE *GetAnalogVideoRestrictionLevels )(
IWMDRMLicense * This,
/* [size_is][out] */ WMDRM_ANALOG_VIDEO_RESTRICTIONS rgAnalogVideoRestrictions[ ],
/* [out][in] */ DWORD *pcRestrictions);
HRESULT ( STDMETHODCALLTYPE *GetOutputProtectionLevels )(
IWMDRMLicense * This,
/* [out] */ WMDRM_OUTPUT_PROTECTION_LEVELS *pOPLs);
HRESULT ( STDMETHODCALLTYPE *GetInclusionList )(
IWMDRMLicense * This,
/* [size_is][size_is][out] */ GUID **ppGuids,
/* [out] */ DWORD *pcGuids);
HRESULT ( STDMETHODCALLTYPE *GetPolicy )(
IWMDRMLicense * This,
/* [size_is][size_is][out] */ BYTE **ppbPolicy,
/* [out] */ DWORD *pcbPolicy);
END_INTERFACE
} IWMDRMLicenseVtbl;
interface IWMDRMLicense
{
CONST_VTBL struct IWMDRMLicenseVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IWMDRMLicense_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IWMDRMLicense_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IWMDRMLicense_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IWMDRMLicense_ResetEnumeration(This) \
( (This)->lpVtbl -> ResetEnumeration(This) )
#define IWMDRMLicense_GetNext(This) \
( (This)->lpVtbl -> GetNext(This) )
#define IWMDRMLicense_GetLicense(This,ppbLicense,pcbLicense,pdwLicenseType) \
( (This)->lpVtbl -> GetLicense(This,ppbLicense,pcbLicense,pdwLicenseType) )
#define IWMDRMLicense_GetLicenseProperty(This,bstrName,ppropVariant) \
( (This)->lpVtbl -> GetLicenseProperty(This,bstrName,ppropVariant) )
#define IWMDRMLicense_CreateDecryptor(This,ppDecryptor) \
( (This)->lpVtbl -> CreateDecryptor(This,ppDecryptor) )
#define IWMDRMLicense_CreateSecureDecryptor(This,pbCertificate,cbCertificate,dwCertificateType,dwFlags,pbInitializationVector,pcbInitializationVector,ppDecryptor) \
( (This)->lpVtbl -> CreateSecureDecryptor(This,pbCertificate,cbCertificate,dwCertificateType,dwFlags,pbInitializationVector,pcbInitializationVector,ppDecryptor) )
#define IWMDRMLicense_CreateEncryptor(This,ppEncryptor) \
( (This)->lpVtbl -> CreateEncryptor(This,ppEncryptor) )
#define IWMDRMLicense_PersistLicense(This) \
( (This)->lpVtbl -> PersistLicense(This) )
#define IWMDRMLicense_CanPersist(This,pfCanPersist) \
( (This)->lpVtbl -> CanPersist(This,pfCanPersist) )
#define IWMDRMLicense_GetAnalogVideoRestrictionLevels(This,rgAnalogVideoRestrictions,pcRestrictions) \
( (This)->lpVtbl -> GetAnalogVideoRestrictionLevels(This,rgAnalogVideoRestrictions,pcRestrictions) )
#define IWMDRMLicense_GetOutputProtectionLevels(This,pOPLs) \
( (This)->lpVtbl -> GetOutputProtectionLevels(This,pOPLs) )
#define IWMDRMLicense_GetInclusionList(This,ppGuids,pcGuids) \
( (This)->lpVtbl -> GetInclusionList(This,ppGuids,pcGuids) )
#define IWMDRMLicense_GetPolicy(This,ppbPolicy,pcbPolicy) \
( (This)->lpVtbl -> GetPolicy(This,ppbPolicy,pcbPolicy) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IWMDRMLicense_INTERFACE_DEFINED__ */
#ifndef __IWMDRMLicenseQuery_INTERFACE_DEFINED__
#define __IWMDRMLicenseQuery_INTERFACE_DEFINED__
/* interface IWMDRMLicenseQuery */
/* [unique][helpstring][uuid][object] */
EXTERN_C const IID IID_IWMDRMLicenseQuery;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("20B970DF-0A58-4d3c-817C-4E3CCBB253AC")
IWMDRMLicenseQuery : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE QueryLicenseState(
/* [in] */ __RPC__in BSTR bstrKID,
/* [in] */ DWORD cActionsToQuery,
/* [size_is][in] */ __RPC__in_ecount_full(cActionsToQuery) BSTR rgbstrActionsToQuery[ ],
/* [size_is][out] */ __RPC__out_ecount_full(cActionsToQuery) DRM_LICENSE_STATE_DATA rgResultStateData[ ]) = 0;
virtual HRESULT STDMETHODCALLTYPE SetActionAllowedQueryParams(
/* [in] */ BOOL fIsMF,
/* [in] */ DWORD dwAppSecLevel,
/* [in] */ BOOL fHasSerialNumber,
/* [in] */ __RPC__in BSTR bstrDeviceCert) = 0;
virtual HRESULT STDMETHODCALLTYPE QueryActionAllowed(
/* [in] */ __RPC__in BSTR bstrKID,
/* [in] */ __RPC__in BSTR bstrMinReqIndivVersion,
/* [in] */ DWORD cActionsToQuery,
/* [size_is][in] */ __RPC__in_ecount_full(cActionsToQuery) BSTR rgbstrActionsToQuery[ ],
/* [size_is][out] */ __RPC__out_ecount_full(cActionsToQuery) DWORD rgdwQueryResult[ ]) = 0;
};
#else /* C style interface */
typedef struct IWMDRMLicenseQueryVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IWMDRMLicenseQuery * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IWMDRMLicenseQuery * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IWMDRMLicenseQuery * This);
HRESULT ( STDMETHODCALLTYPE *QueryLicenseState )(
__RPC__in IWMDRMLicenseQuery * This,
/* [in] */ __RPC__in BSTR bstrKID,
/* [in] */ DWORD cActionsToQuery,
/* [size_is][in] */ __RPC__in_ecount_full(cActionsToQuery) BSTR rgbstrActionsToQuery[ ],
/* [size_is][out] */ __RPC__out_ecount_full(cActionsToQuery) DRM_LICENSE_STATE_DATA rgResultStateData[ ]);
HRESULT ( STDMETHODCALLTYPE *SetActionAllowedQueryParams )(
__RPC__in IWMDRMLicenseQuery * This,
/* [in] */ BOOL fIsMF,
/* [in] */ DWORD dwAppSecLevel,
/* [in] */ BOOL fHasSerialNumber,
/* [in] */ __RPC__in BSTR bstrDeviceCert);
HRESULT ( STDMETHODCALLTYPE *QueryActionAllowed )(
__RPC__in IWMDRMLicenseQuery * This,
/* [in] */ __RPC__in BSTR bstrKID,
/* [in] */ __RPC__in BSTR bstrMinReqIndivVersion,
/* [in] */ DWORD cActionsToQuery,
/* [size_is][in] */ __RPC__in_ecount_full(cActionsToQuery) BSTR rgbstrActionsToQuery[ ],
/* [size_is][out] */ __RPC__out_ecount_full(cActionsToQuery) DWORD rgdwQueryResult[ ]);
END_INTERFACE
} IWMDRMLicenseQueryVtbl;
interface IWMDRMLicenseQuery
{
CONST_VTBL struct IWMDRMLicenseQueryVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IWMDRMLicenseQuery_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IWMDRMLicenseQuery_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IWMDRMLicenseQuery_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IWMDRMLicenseQuery_QueryLicenseState(This,bstrKID,cActionsToQuery,rgbstrActionsToQuery,rgResultStateData) \
( (This)->lpVtbl -> QueryLicenseState(This,bstrKID,cActionsToQuery,rgbstrActionsToQuery,rgResultStateData) )
#define IWMDRMLicenseQuery_SetActionAllowedQueryParams(This,fIsMF,dwAppSecLevel,fHasSerialNumber,bstrDeviceCert) \
( (This)->lpVtbl -> SetActionAllowedQueryParams(This,fIsMF,dwAppSecLevel,fHasSerialNumber,bstrDeviceCert) )
#define IWMDRMLicenseQuery_QueryActionAllowed(This,bstrKID,bstrMinReqIndivVersion,cActionsToQuery,rgbstrActionsToQuery,rgdwQueryResult) \
( (This)->lpVtbl -> QueryActionAllowed(This,bstrKID,bstrMinReqIndivVersion,cActionsToQuery,rgbstrActionsToQuery,rgdwQueryResult) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IWMDRMLicenseQuery_INTERFACE_DEFINED__ */
/* interface __MIDL_itf_wmdrmsdk_0000_0009 */
/* [local] */
typedef struct WMDRM_LICENSE_FILTER
{
DWORD dwVersion;
BSTR bstrKID;
BSTR bstrRights;
BSTR bstrAllowedSourceIDs;
} WMDRM_LICENSE_FILTER;
extern RPC_IF_HANDLE __MIDL_itf_wmdrmsdk_0000_0009_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_wmdrmsdk_0000_0009_v0_0_s_ifspec;
#ifndef __IWMDRMLicenseManagement_INTERFACE_DEFINED__
#define __IWMDRMLicenseManagement_INTERFACE_DEFINED__
/* interface IWMDRMLicenseManagement */
/* [unique][helpstring][uuid][object] */
EXTERN_C const IID IID_IWMDRMLicenseManagement;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("F4828DC7-8945-4D05-AB05-667AB99D29EE")
IWMDRMLicenseManagement : public IWMDRMEventGenerator
{
public:
virtual HRESULT STDMETHODCALLTYPE CreateLicenseEnumeration(
/* [in] */ __RPC__in WMDRM_LICENSE_FILTER *pLicenseFilter,
/* [out] */ __RPC__deref_out_opt IWMDRMLicense **pEnumerator) = 0;
virtual HRESULT STDMETHODCALLTYPE DeleteLicense(
/* [in] */ __RPC__in BSTR bstrKID,
/* [in] */ DWORD dwFlags) = 0;
virtual HRESULT STDMETHODCALLTYPE CleanLicenseStore(
/* [in] */ DWORD dwFlags,
/* [out] */ __RPC__deref_out_opt IUnknown **ppunkCancelationCookie) = 0;
virtual HRESULT STDMETHODCALLTYPE StoreLicense(
/* [in] */ __RPC__in BSTR bstrLicenseResponse) = 0;
virtual HRESULT STDMETHODCALLTYPE AcquireLicense(
/* [in] */ __RPC__in BSTR bstrURL,
/* [in] */ __RPC__in BSTR bstrHeaderData,
/* [in] */ __RPC__in BSTR bstrActions,
/* [in] */ DWORD dwFlags,
/* [out] */ __RPC__deref_out_opt IUnknown **ppunkCancelationCookie) = 0;
virtual HRESULT STDMETHODCALLTYPE MonitorLicenseAcquisition(
/* [in] */ __RPC__in BSTR bstrKID,
/* [in] */ __RPC__in BSTR bstrHeader,
/* [in] */ __RPC__in BSTR bstrActions,
/* [out] */ __RPC__deref_out_opt IUnknown **ppunkCancelationCookie) = 0;
virtual HRESULT STDMETHODCALLTYPE BackupLicenses(
/* [in] */ __RPC__in BSTR bstrBackupDirectory,
/* [in] */ DWORD dwFlags,
/* [out] */ __RPC__deref_out_opt IUnknown **ppunkCancelationCookie) = 0;
virtual HRESULT STDMETHODCALLTYPE RestoreLicenses(
/* [in] */ __RPC__in BSTR bstrBackupDirectory,
/* [in] */ DWORD dwFlags,
/* [out] */ __RPC__deref_out_opt IUnknown **ppunkCancelationCookie) = 0;
virtual HRESULT STDMETHODCALLTYPE CreateLicenseRevocationChallenge(
/* [size_is][in] */ __RPC__in_ecount_full(cbMachineID) BYTE *pbMachineID,
/* [in] */ DWORD cbMachineID,
/* [size_is][in] */ __RPC__in_ecount_full(cbChallenge) BYTE *pbChallenge,
/* [in] */ DWORD cbChallenge,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pcbChallengeOutput) BYTE **ppbChallengeOutput,
/* [out] */ __RPC__out DWORD *pcbChallengeOutput) = 0;
virtual HRESULT STDMETHODCALLTYPE ProcessLicenseRevocationResponse(
/* [size_is][in] */ __RPC__in_ecount_full(cbSignedLRB) BYTE *pbSignedLRB,
/* [in] */ DWORD cbSignedLRB,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pcbSignedACK) BYTE **ppbSignedACK,
/* [out] */ __RPC__out DWORD *pcbSignedACK) = 0;
virtual HRESULT STDMETHODCALLTYPE ProcessLicenseDeletionMessage(
/* [in] */ __RPC__in BSTR bstrDeletionMessage) = 0;
};
#else /* C style interface */
typedef struct IWMDRMLicenseManagementVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
__RPC__in IWMDRMLicenseManagement * This,
/* [in] */ __RPC__in REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
__RPC__in IWMDRMLicenseManagement * This);
ULONG ( STDMETHODCALLTYPE *Release )(
__RPC__in IWMDRMLicenseManagement * This);
HRESULT ( STDMETHODCALLTYPE *GetEvent )(
__RPC__in IWMDRMLicenseManagement * This,
/* [in] */ DWORD dwFlags,
/* [out] */ __RPC__deref_out_opt IMFMediaEvent **ppEvent);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *BeginGetEvent )(
IWMDRMLicenseManagement * This,
/* [in] */ IMFAsyncCallback *pCallback,
/* [in] */ IUnknown *punkState);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *EndGetEvent )(
IWMDRMLicenseManagement * This,
/* [in] */ IMFAsyncResult *pResult,
/* [annotation][out] */
__out IMFMediaEvent **ppEvent);
HRESULT ( STDMETHODCALLTYPE *QueueEvent )(
__RPC__in IWMDRMLicenseManagement * This,
/* [in] */ MediaEventType met,
/* [in] */ __RPC__in REFGUID guidExtendedType,
/* [in] */ HRESULT hrStatus,
/* [unique][in] */ __RPC__in_opt const PROPVARIANT *pvValue);
HRESULT ( STDMETHODCALLTYPE *CancelAsyncOperation )(
__RPC__in IWMDRMLicenseManagement * This,
/* [in] */ __RPC__in_opt IUnknown *punkCancelationCookie);
HRESULT ( STDMETHODCALLTYPE *Shutdown )(
__RPC__in IWMDRMLicenseManagement * This);
HRESULT ( STDMETHODCALLTYPE *CreateLicenseEnumeration )(
__RPC__in IWMDRMLicenseManagement * This,
/* [in] */ __RPC__in WMDRM_LICENSE_FILTER *pLicenseFilter,
/* [out] */ __RPC__deref_out_opt IWMDRMLicense **pEnumerator);
HRESULT ( STDMETHODCALLTYPE *DeleteLicense )(
__RPC__in IWMDRMLicenseManagement * This,
/* [in] */ __RPC__in BSTR bstrKID,
/* [in] */ DWORD dwFlags);
HRESULT ( STDMETHODCALLTYPE *CleanLicenseStore )(
__RPC__in IWMDRMLicenseManagement * This,
/* [in] */ DWORD dwFlags,
/* [out] */ __RPC__deref_out_opt IUnknown **ppunkCancelationCookie);
HRESULT ( STDMETHODCALLTYPE *StoreLicense )(
__RPC__in IWMDRMLicenseManagement * This,
/* [in] */ __RPC__in BSTR bstrLicenseResponse);
HRESULT ( STDMETHODCALLTYPE *AcquireLicense )(
__RPC__in IWMDRMLicenseManagement * This,
/* [in] */ __RPC__in BSTR bstrURL,
/* [in] */ __RPC__in BSTR bstrHeaderData,
/* [in] */ __RPC__in BSTR bstrActions,
/* [in] */ DWORD dwFlags,
/* [out] */ __RPC__deref_out_opt IUnknown **ppunkCancelationCookie);
HRESULT ( STDMETHODCALLTYPE *MonitorLicenseAcquisition )(
__RPC__in IWMDRMLicenseManagement * This,
/* [in] */ __RPC__in BSTR bstrKID,
/* [in] */ __RPC__in BSTR bstrHeader,
/* [in] */ __RPC__in BSTR bstrActions,
/* [out] */ __RPC__deref_out_opt IUnknown **ppunkCancelationCookie);
HRESULT ( STDMETHODCALLTYPE *BackupLicenses )(
__RPC__in IWMDRMLicenseManagement * This,
/* [in] */ __RPC__in BSTR bstrBackupDirectory,
/* [in] */ DWORD dwFlags,
/* [out] */ __RPC__deref_out_opt IUnknown **ppunkCancelationCookie);
HRESULT ( STDMETHODCALLTYPE *RestoreLicenses )(
__RPC__in IWMDRMLicenseManagement * This,
/* [in] */ __RPC__in BSTR bstrBackupDirectory,
/* [in] */ DWORD dwFlags,
/* [out] */ __RPC__deref_out_opt IUnknown **ppunkCancelationCookie);
HRESULT ( STDMETHODCALLTYPE *CreateLicenseRevocationChallenge )(
__RPC__in IWMDRMLicenseManagement * This,
/* [size_is][in] */ __RPC__in_ecount_full(cbMachineID) BYTE *pbMachineID,
/* [in] */ DWORD cbMachineID,
/* [size_is][in] */ __RPC__in_ecount_full(cbChallenge) BYTE *pbChallenge,
/* [in] */ DWORD cbChallenge,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pcbChallengeOutput) BYTE **ppbChallengeOutput,
/* [out] */ __RPC__out DWORD *pcbChallengeOutput);
HRESULT ( STDMETHODCALLTYPE *ProcessLicenseRevocationResponse )(
__RPC__in IWMDRMLicenseManagement * This,
/* [size_is][in] */ __RPC__in_ecount_full(cbSignedLRB) BYTE *pbSignedLRB,
/* [in] */ DWORD cbSignedLRB,
/* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pcbSignedACK) BYTE **ppbSignedACK,
/* [out] */ __RPC__out DWORD *pcbSignedACK);
HRESULT ( STDMETHODCALLTYPE *ProcessLicenseDeletionMessage )(
__RPC__in IWMDRMLicenseManagement * This,
/* [in] */ __RPC__in BSTR bstrDeletionMessage);
END_INTERFACE
} IWMDRMLicenseManagementVtbl;
interface IWMDRMLicenseManagement
{
CONST_VTBL struct IWMDRMLicenseManagementVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IWMDRMLicenseManagement_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IWMDRMLicenseManagement_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IWMDRMLicenseManagement_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IWMDRMLicenseManagement_GetEvent(This,dwFlags,ppEvent) \
( (This)->lpVtbl -> GetEvent(This,dwFlags,ppEvent) )
#define IWMDRMLicenseManagement_BeginGetEvent(This,pCallback,punkState) \
( (This)->lpVtbl -> BeginGetEvent(This,pCallback,punkState) )
#define IWMDRMLicenseManagement_EndGetEvent(This,pResult,ppEvent) \
( (This)->lpVtbl -> EndGetEvent(This,pResult,ppEvent) )
#define IWMDRMLicenseManagement_QueueEvent(This,met,guidExtendedType,hrStatus,pvValue) \
( (This)->lpVtbl -> QueueEvent(This,met,guidExtendedType,hrStatus,pvValue) )
#define IWMDRMLicenseManagement_CancelAsyncOperation(This,punkCancelationCookie) \
( (This)->lpVtbl -> CancelAsyncOperation(This,punkCancelationCookie) )
#define IWMDRMLicenseManagement_Shutdown(This) \
( (This)->lpVtbl -> Shutdown(This) )
#define IWMDRMLicenseManagement_CreateLicenseEnumeration(This,pLicenseFilter,pEnumerator) \
( (This)->lpVtbl -> CreateLicenseEnumeration(This,pLicenseFilter,pEnumerator) )
#define IWMDRMLicenseManagement_DeleteLicense(This,bstrKID,dwFlags) \
( (This)->lpVtbl -> DeleteLicense(This,bstrKID,dwFlags) )
#define IWMDRMLicenseManagement_CleanLicenseStore(This,dwFlags,ppunkCancelationCookie) \
( (This)->lpVtbl -> CleanLicenseStore(This,dwFlags,ppunkCancelationCookie) )
#define IWMDRMLicenseManagement_StoreLicense(This,bstrLicenseResponse) \
( (This)->lpVtbl -> StoreLicense(This,bstrLicenseResponse) )
#define IWMDRMLicenseManagement_AcquireLicense(This,bstrURL,bstrHeaderData,bstrActions,dwFlags,ppunkCancelationCookie) \
( (This)->lpVtbl -> AcquireLicense(This,bstrURL,bstrHeaderData,bstrActions,dwFlags,ppunkCancelationCookie) )
#define IWMDRMLicenseManagement_MonitorLicenseAcquisition(This,bstrKID,bstrHeader,bstrActions,ppunkCancelationCookie) \
( (This)->lpVtbl -> MonitorLicenseAcquisition(This,bstrKID,bstrHeader,bstrActions,ppunkCancelationCookie) )
#define IWMDRMLicenseManagement_BackupLicenses(This,bstrBackupDirectory,dwFlags,ppunkCancelationCookie) \
( (This)->lpVtbl -> BackupLicenses(This,bstrBackupDirectory,dwFlags,ppunkCancelationCookie) )
#define IWMDRMLicenseManagement_RestoreLicenses(This,bstrBackupDirectory,dwFlags,ppunkCancelationCookie) \
( (This)->lpVtbl -> RestoreLicenses(This,bstrBackupDirectory,dwFlags,ppunkCancelationCookie) )
#define IWMDRMLicenseManagement_CreateLicenseRevocationChallenge(This,pbMachineID,cbMachineID,pbChallenge,cbChallenge,ppbChallengeOutput,pcbChallengeOutput) \
( (This)->lpVtbl -> CreateLicenseRevocationChallenge(This,pbMachineID,cbMachineID,pbChallenge,cbChallenge,ppbChallengeOutput,pcbChallengeOutput) )
#define IWMDRMLicenseManagement_ProcessLicenseRevocationResponse(This,pbSignedLRB,cbSignedLRB,ppbSignedACK,pcbSignedACK) \
( (This)->lpVtbl -> ProcessLicenseRevocationResponse(This,pbSignedLRB,cbSignedLRB,ppbSignedACK,pcbSignedACK) )
#define IWMDRMLicenseManagement_ProcessLicenseDeletionMessage(This,bstrDeletionMessage) \
( (This)->lpVtbl -> ProcessLicenseDeletionMessage(This,bstrDeletionMessage) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IWMDRMLicenseManagement_INTERFACE_DEFINED__ */
#ifndef __IWMDRMNetReceiver_INTERFACE_DEFINED__
#define __IWMDRMNetReceiver_INTERFACE_DEFINED__
/* interface IWMDRMNetReceiver */
/* [local][unique][helpstring][uuid][object] */
EXTERN_C const IID IID_IWMDRMNetReceiver;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("F9C074A4-15D6-44C0-8A6D-2446ACC109AE")
IWMDRMNetReceiver : public IWMDRMEventGenerator
{
public:
virtual HRESULT STDMETHODCALLTYPE GetRegistrationChallenge(
/* [size_is][size_is][out] */ BYTE **ppbRegistrationChallenge,
/* [out] */ DWORD *pcbRegistrationChallenge) = 0;
virtual HRESULT STDMETHODCALLTYPE ProcessRegistrationResponse(
/* [size_is][in] */ BYTE *pbRegistrationResponse,
/* [in] */ DWORD cbRegistrationResponse,
/* [out] */ IUnknown **ppunkCancellationCookie) = 0;
virtual HRESULT STDMETHODCALLTYPE GetLicenseChallenge(
/* [in] */ BSTR bstrAction,
/* [size_is][size_is][out] */ BYTE **ppbLicenseChallenge,
/* [out] */ DWORD *pcbLicenseChallenge) = 0;
virtual HRESULT STDMETHODCALLTYPE ProcessLicenseResponse(
/* [size_is][in] */ BYTE *pbLicenseResponse,
/* [in] */ DWORD cbLicenseResponse,
/* [size_is][size_is][out] */ BYTE **ppbWMDRMNetLicenseRepresentation,
/* [out] */ DWORD *pcbWMDRMNetLicenseRepresentation) = 0;
};
#else /* C style interface */
typedef struct IWMDRMNetReceiverVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IWMDRMNetReceiver * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IWMDRMNetReceiver * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IWMDRMNetReceiver * This);
HRESULT ( STDMETHODCALLTYPE *GetEvent )(
IWMDRMNetReceiver * This,
/* [in] */ DWORD dwFlags,
/* [out] */ IMFMediaEvent **ppEvent);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *BeginGetEvent )(
IWMDRMNetReceiver * This,
/* [in] */ IMFAsyncCallback *pCallback,
/* [in] */ IUnknown *punkState);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *EndGetEvent )(
IWMDRMNetReceiver * This,
/* [in] */ IMFAsyncResult *pResult,
/* [annotation][out] */
__out IMFMediaEvent **ppEvent);
HRESULT ( STDMETHODCALLTYPE *QueueEvent )(
IWMDRMNetReceiver * This,
/* [in] */ MediaEventType met,
/* [in] */ REFGUID guidExtendedType,
/* [in] */ HRESULT hrStatus,
/* [unique][in] */ const PROPVARIANT *pvValue);
HRESULT ( STDMETHODCALLTYPE *CancelAsyncOperation )(
IWMDRMNetReceiver * This,
/* [in] */ IUnknown *punkCancelationCookie);
HRESULT ( STDMETHODCALLTYPE *Shutdown )(
IWMDRMNetReceiver * This);
HRESULT ( STDMETHODCALLTYPE *GetRegistrationChallenge )(
IWMDRMNetReceiver * This,
/* [size_is][size_is][out] */ BYTE **ppbRegistrationChallenge,
/* [out] */ DWORD *pcbRegistrationChallenge);
HRESULT ( STDMETHODCALLTYPE *ProcessRegistrationResponse )(
IWMDRMNetReceiver * This,
/* [size_is][in] */ BYTE *pbRegistrationResponse,
/* [in] */ DWORD cbRegistrationResponse,
/* [out] */ IUnknown **ppunkCancellationCookie);
HRESULT ( STDMETHODCALLTYPE *GetLicenseChallenge )(
IWMDRMNetReceiver * This,
/* [in] */ BSTR bstrAction,
/* [size_is][size_is][out] */ BYTE **ppbLicenseChallenge,
/* [out] */ DWORD *pcbLicenseChallenge);
HRESULT ( STDMETHODCALLTYPE *ProcessLicenseResponse )(
IWMDRMNetReceiver * This,
/* [size_is][in] */ BYTE *pbLicenseResponse,
/* [in] */ DWORD cbLicenseResponse,
/* [size_is][size_is][out] */ BYTE **ppbWMDRMNetLicenseRepresentation,
/* [out] */ DWORD *pcbWMDRMNetLicenseRepresentation);
END_INTERFACE
} IWMDRMNetReceiverVtbl;
interface IWMDRMNetReceiver
{
CONST_VTBL struct IWMDRMNetReceiverVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IWMDRMNetReceiver_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IWMDRMNetReceiver_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IWMDRMNetReceiver_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IWMDRMNetReceiver_GetEvent(This,dwFlags,ppEvent) \
( (This)->lpVtbl -> GetEvent(This,dwFlags,ppEvent) )
#define IWMDRMNetReceiver_BeginGetEvent(This,pCallback,punkState) \
( (This)->lpVtbl -> BeginGetEvent(This,pCallback,punkState) )
#define IWMDRMNetReceiver_EndGetEvent(This,pResult,ppEvent) \
( (This)->lpVtbl -> EndGetEvent(This,pResult,ppEvent) )
#define IWMDRMNetReceiver_QueueEvent(This,met,guidExtendedType,hrStatus,pvValue) \
( (This)->lpVtbl -> QueueEvent(This,met,guidExtendedType,hrStatus,pvValue) )
#define IWMDRMNetReceiver_CancelAsyncOperation(This,punkCancelationCookie) \
( (This)->lpVtbl -> CancelAsyncOperation(This,punkCancelationCookie) )
#define IWMDRMNetReceiver_Shutdown(This) \
( (This)->lpVtbl -> Shutdown(This) )
#define IWMDRMNetReceiver_GetRegistrationChallenge(This,ppbRegistrationChallenge,pcbRegistrationChallenge) \
( (This)->lpVtbl -> GetRegistrationChallenge(This,ppbRegistrationChallenge,pcbRegistrationChallenge) )
#define IWMDRMNetReceiver_ProcessRegistrationResponse(This,pbRegistrationResponse,cbRegistrationResponse,ppunkCancellationCookie) \
( (This)->lpVtbl -> ProcessRegistrationResponse(This,pbRegistrationResponse,cbRegistrationResponse,ppunkCancellationCookie) )
#define IWMDRMNetReceiver_GetLicenseChallenge(This,bstrAction,ppbLicenseChallenge,pcbLicenseChallenge) \
( (This)->lpVtbl -> GetLicenseChallenge(This,bstrAction,ppbLicenseChallenge,pcbLicenseChallenge) )
#define IWMDRMNetReceiver_ProcessLicenseResponse(This,pbLicenseResponse,cbLicenseResponse,ppbWMDRMNetLicenseRepresentation,pcbWMDRMNetLicenseRepresentation) \
( (This)->lpVtbl -> ProcessLicenseResponse(This,pbLicenseResponse,cbLicenseResponse,ppbWMDRMNetLicenseRepresentation,pcbWMDRMNetLicenseRepresentation) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IWMDRMNetReceiver_INTERFACE_DEFINED__ */
#ifndef __IWMDRMNetReceiver2_INTERFACE_DEFINED__
#define __IWMDRMNetReceiver2_INTERFACE_DEFINED__
/* interface IWMDRMNetReceiver2 */
/* [local][unique][helpstring][uuid][object] */
EXTERN_C const IID IID_IWMDRMNetReceiver2;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("7B97237F-4B5D-442d-86C7-4F88961AF76B")
IWMDRMNetReceiver2 : public IWMDRMNetReceiver
{
public:
virtual HRESULT STDMETHODCALLTYPE ProcessRegistrationResponseEx(
/* [size_is][in] */ BYTE *pbRegistrationResponse,
/* [in] */ DWORD cbRegistrationResponse,
/* [in] */ DWORD dwLocalIPv6ScopeID,
/* [out] */ IUnknown **ppunkCancellationCookie) = 0;
virtual HRESULT STDMETHODCALLTYPE ProcessLicenseUpdate(
/* [size_is][in] */ BYTE *pbLicenseUpdate,
/* [in] */ DWORD cbLicenseUpdate,
/* [out] */ IWMDRMLicense **ppLicense) = 0;
};
#else /* C style interface */
typedef struct IWMDRMNetReceiver2Vtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IWMDRMNetReceiver2 * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IWMDRMNetReceiver2 * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IWMDRMNetReceiver2 * This);
HRESULT ( STDMETHODCALLTYPE *GetEvent )(
IWMDRMNetReceiver2 * This,
/* [in] */ DWORD dwFlags,
/* [out] */ IMFMediaEvent **ppEvent);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *BeginGetEvent )(
IWMDRMNetReceiver2 * This,
/* [in] */ IMFAsyncCallback *pCallback,
/* [in] */ IUnknown *punkState);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *EndGetEvent )(
IWMDRMNetReceiver2 * This,
/* [in] */ IMFAsyncResult *pResult,
/* [annotation][out] */
__out IMFMediaEvent **ppEvent);
HRESULT ( STDMETHODCALLTYPE *QueueEvent )(
IWMDRMNetReceiver2 * This,
/* [in] */ MediaEventType met,
/* [in] */ REFGUID guidExtendedType,
/* [in] */ HRESULT hrStatus,
/* [unique][in] */ const PROPVARIANT *pvValue);
HRESULT ( STDMETHODCALLTYPE *CancelAsyncOperation )(
IWMDRMNetReceiver2 * This,
/* [in] */ IUnknown *punkCancelationCookie);
HRESULT ( STDMETHODCALLTYPE *Shutdown )(
IWMDRMNetReceiver2 * This);
HRESULT ( STDMETHODCALLTYPE *GetRegistrationChallenge )(
IWMDRMNetReceiver2 * This,
/* [size_is][size_is][out] */ BYTE **ppbRegistrationChallenge,
/* [out] */ DWORD *pcbRegistrationChallenge);
HRESULT ( STDMETHODCALLTYPE *ProcessRegistrationResponse )(
IWMDRMNetReceiver2 * This,
/* [size_is][in] */ BYTE *pbRegistrationResponse,
/* [in] */ DWORD cbRegistrationResponse,
/* [out] */ IUnknown **ppunkCancellationCookie);
HRESULT ( STDMETHODCALLTYPE *GetLicenseChallenge )(
IWMDRMNetReceiver2 * This,
/* [in] */ BSTR bstrAction,
/* [size_is][size_is][out] */ BYTE **ppbLicenseChallenge,
/* [out] */ DWORD *pcbLicenseChallenge);
HRESULT ( STDMETHODCALLTYPE *ProcessLicenseResponse )(
IWMDRMNetReceiver2 * This,
/* [size_is][in] */ BYTE *pbLicenseResponse,
/* [in] */ DWORD cbLicenseResponse,
/* [size_is][size_is][out] */ BYTE **ppbWMDRMNetLicenseRepresentation,
/* [out] */ DWORD *pcbWMDRMNetLicenseRepresentation);
HRESULT ( STDMETHODCALLTYPE *ProcessRegistrationResponseEx )(
IWMDRMNetReceiver2 * This,
/* [size_is][in] */ BYTE *pbRegistrationResponse,
/* [in] */ DWORD cbRegistrationResponse,
/* [in] */ DWORD dwLocalIPv6ScopeID,
/* [out] */ IUnknown **ppunkCancellationCookie);
HRESULT ( STDMETHODCALLTYPE *ProcessLicenseUpdate )(
IWMDRMNetReceiver2 * This,
/* [size_is][in] */ BYTE *pbLicenseUpdate,
/* [in] */ DWORD cbLicenseUpdate,
/* [out] */ IWMDRMLicense **ppLicense);
END_INTERFACE
} IWMDRMNetReceiver2Vtbl;
interface IWMDRMNetReceiver2
{
CONST_VTBL struct IWMDRMNetReceiver2Vtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IWMDRMNetReceiver2_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IWMDRMNetReceiver2_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IWMDRMNetReceiver2_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IWMDRMNetReceiver2_GetEvent(This,dwFlags,ppEvent) \
( (This)->lpVtbl -> GetEvent(This,dwFlags,ppEvent) )
#define IWMDRMNetReceiver2_BeginGetEvent(This,pCallback,punkState) \
( (This)->lpVtbl -> BeginGetEvent(This,pCallback,punkState) )
#define IWMDRMNetReceiver2_EndGetEvent(This,pResult,ppEvent) \
( (This)->lpVtbl -> EndGetEvent(This,pResult,ppEvent) )
#define IWMDRMNetReceiver2_QueueEvent(This,met,guidExtendedType,hrStatus,pvValue) \
( (This)->lpVtbl -> QueueEvent(This,met,guidExtendedType,hrStatus,pvValue) )
#define IWMDRMNetReceiver2_CancelAsyncOperation(This,punkCancelationCookie) \
( (This)->lpVtbl -> CancelAsyncOperation(This,punkCancelationCookie) )
#define IWMDRMNetReceiver2_Shutdown(This) \
( (This)->lpVtbl -> Shutdown(This) )
#define IWMDRMNetReceiver2_GetRegistrationChallenge(This,ppbRegistrationChallenge,pcbRegistrationChallenge) \
( (This)->lpVtbl -> GetRegistrationChallenge(This,ppbRegistrationChallenge,pcbRegistrationChallenge) )
#define IWMDRMNetReceiver2_ProcessRegistrationResponse(This,pbRegistrationResponse,cbRegistrationResponse,ppunkCancellationCookie) \
( (This)->lpVtbl -> ProcessRegistrationResponse(This,pbRegistrationResponse,cbRegistrationResponse,ppunkCancellationCookie) )
#define IWMDRMNetReceiver2_GetLicenseChallenge(This,bstrAction,ppbLicenseChallenge,pcbLicenseChallenge) \
( (This)->lpVtbl -> GetLicenseChallenge(This,bstrAction,ppbLicenseChallenge,pcbLicenseChallenge) )
#define IWMDRMNetReceiver2_ProcessLicenseResponse(This,pbLicenseResponse,cbLicenseResponse,ppbWMDRMNetLicenseRepresentation,pcbWMDRMNetLicenseRepresentation) \
( (This)->lpVtbl -> ProcessLicenseResponse(This,pbLicenseResponse,cbLicenseResponse,ppbWMDRMNetLicenseRepresentation,pcbWMDRMNetLicenseRepresentation) )
#define IWMDRMNetReceiver2_ProcessRegistrationResponseEx(This,pbRegistrationResponse,cbRegistrationResponse,dwLocalIPv6ScopeID,ppunkCancellationCookie) \
( (This)->lpVtbl -> ProcessRegistrationResponseEx(This,pbRegistrationResponse,cbRegistrationResponse,dwLocalIPv6ScopeID,ppunkCancellationCookie) )
#define IWMDRMNetReceiver2_ProcessLicenseUpdate(This,pbLicenseUpdate,cbLicenseUpdate,ppLicense) \
( (This)->lpVtbl -> ProcessLicenseUpdate(This,pbLicenseUpdate,cbLicenseUpdate,ppLicense) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IWMDRMNetReceiver2_INTERFACE_DEFINED__ */
#ifndef __IWMDRMNetTransmitter_INTERFACE_DEFINED__
#define __IWMDRMNetTransmitter_INTERFACE_DEFINED__
/* interface IWMDRMNetTransmitter */
/* [local][unique][helpstring][uuid][object] */
EXTERN_C const IID IID_IWMDRMNetTransmitter;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("F040C12B-4415-4F20-93F0-453EB519A756")
IWMDRMNetTransmitter : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE SetLicenseChallenge(
/* [size_is][in] */ BYTE *pbLicenseChallenge,
/* [in] */ DWORD cbLicenseChallenge) = 0;
virtual HRESULT STDMETHODCALLTYPE GetRootLicenseResponse(
/* [in] */ BSTR bstrKID,
/* [size_is][size_is][out] */ BYTE **ppbLicenseResponse,
/* [out] */ DWORD *pcbLicenseResponse) = 0;
virtual HRESULT STDMETHODCALLTYPE GetLeafLicenseResponse(
/* [in] */ BSTR bstrKID,
/* [in] */ WMDRMNET_POLICY *pPolicy,
/* [out] */ IWMDRMEncrypt **ppIWMDRMEncrypt,
/* [size_is][size_is][out] */ BYTE **ppbLicenseResponse,
/* [out] */ DWORD *pcbLicenseResponse) = 0;
};
#else /* C style interface */
typedef struct IWMDRMNetTransmitterVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IWMDRMNetTransmitter * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IWMDRMNetTransmitter * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IWMDRMNetTransmitter * This);
HRESULT ( STDMETHODCALLTYPE *SetLicenseChallenge )(
IWMDRMNetTransmitter * This,
/* [size_is][in] */ BYTE *pbLicenseChallenge,
/* [in] */ DWORD cbLicenseChallenge);
HRESULT ( STDMETHODCALLTYPE *GetRootLicenseResponse )(
IWMDRMNetTransmitter * This,
/* [in] */ BSTR bstrKID,
/* [size_is][size_is][out] */ BYTE **ppbLicenseResponse,
/* [out] */ DWORD *pcbLicenseResponse);
HRESULT ( STDMETHODCALLTYPE *GetLeafLicenseResponse )(
IWMDRMNetTransmitter * This,
/* [in] */ BSTR bstrKID,
/* [in] */ WMDRMNET_POLICY *pPolicy,
/* [out] */ IWMDRMEncrypt **ppIWMDRMEncrypt,
/* [size_is][size_is][out] */ BYTE **ppbLicenseResponse,
/* [out] */ DWORD *pcbLicenseResponse);
END_INTERFACE
} IWMDRMNetTransmitterVtbl;
interface IWMDRMNetTransmitter
{
CONST_VTBL struct IWMDRMNetTransmitterVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IWMDRMNetTransmitter_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IWMDRMNetTransmitter_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IWMDRMNetTransmitter_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IWMDRMNetTransmitter_SetLicenseChallenge(This,pbLicenseChallenge,cbLicenseChallenge) \
( (This)->lpVtbl -> SetLicenseChallenge(This,pbLicenseChallenge,cbLicenseChallenge) )
#define IWMDRMNetTransmitter_GetRootLicenseResponse(This,bstrKID,ppbLicenseResponse,pcbLicenseResponse) \
( (This)->lpVtbl -> GetRootLicenseResponse(This,bstrKID,ppbLicenseResponse,pcbLicenseResponse) )
#define IWMDRMNetTransmitter_GetLeafLicenseResponse(This,bstrKID,pPolicy,ppIWMDRMEncrypt,ppbLicenseResponse,pcbLicenseResponse) \
( (This)->lpVtbl -> GetLeafLicenseResponse(This,bstrKID,pPolicy,ppIWMDRMEncrypt,ppbLicenseResponse,pcbLicenseResponse) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IWMDRMNetTransmitter_INTERFACE_DEFINED__ */
#ifndef __IWMDRMNetTransmitter2_INTERFACE_DEFINED__
#define __IWMDRMNetTransmitter2_INTERFACE_DEFINED__
/* interface IWMDRMNetTransmitter2 */
/* [local][unique][helpstring][uuid][object] */
EXTERN_C const IID IID_IWMDRMNetTransmitter2;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("26BCB422-30C0-48b4-A641-D9FB1E656265")
IWMDRMNetTransmitter2 : public IWMDRMNetTransmitter
{
public:
virtual HRESULT STDMETHODCALLTYPE GetSimpleLicenseResponse(
/* [in] */ BSTR bstrKID,
/* [in] */ WMDRMNET_POLICY *pPolicy,
/* [out] */ IWMDRMEncrypt **ppIWMDRMEncrypt,
/* [size_is][size_is][out] */ BYTE **ppbLicenseResponse,
/* [out] */ DWORD *pcbLicenseResponse) = 0;
};
#else /* C style interface */
typedef struct IWMDRMNetTransmitter2Vtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IWMDRMNetTransmitter2 * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IWMDRMNetTransmitter2 * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IWMDRMNetTransmitter2 * This);
HRESULT ( STDMETHODCALLTYPE *SetLicenseChallenge )(
IWMDRMNetTransmitter2 * This,
/* [size_is][in] */ BYTE *pbLicenseChallenge,
/* [in] */ DWORD cbLicenseChallenge);
HRESULT ( STDMETHODCALLTYPE *GetRootLicenseResponse )(
IWMDRMNetTransmitter2 * This,
/* [in] */ BSTR bstrKID,
/* [size_is][size_is][out] */ BYTE **ppbLicenseResponse,
/* [out] */ DWORD *pcbLicenseResponse);
HRESULT ( STDMETHODCALLTYPE *GetLeafLicenseResponse )(
IWMDRMNetTransmitter2 * This,
/* [in] */ BSTR bstrKID,
/* [in] */ WMDRMNET_POLICY *pPolicy,
/* [out] */ IWMDRMEncrypt **ppIWMDRMEncrypt,
/* [size_is][size_is][out] */ BYTE **ppbLicenseResponse,
/* [out] */ DWORD *pcbLicenseResponse);
HRESULT ( STDMETHODCALLTYPE *GetSimpleLicenseResponse )(
IWMDRMNetTransmitter2 * This,
/* [in] */ BSTR bstrKID,
/* [in] */ WMDRMNET_POLICY *pPolicy,
/* [out] */ IWMDRMEncrypt **ppIWMDRMEncrypt,
/* [size_is][size_is][out] */ BYTE **ppbLicenseResponse,
/* [out] */ DWORD *pcbLicenseResponse);
END_INTERFACE
} IWMDRMNetTransmitter2Vtbl;
interface IWMDRMNetTransmitter2
{
CONST_VTBL struct IWMDRMNetTransmitter2Vtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IWMDRMNetTransmitter2_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IWMDRMNetTransmitter2_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IWMDRMNetTransmitter2_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IWMDRMNetTransmitter2_SetLicenseChallenge(This,pbLicenseChallenge,cbLicenseChallenge) \
( (This)->lpVtbl -> SetLicenseChallenge(This,pbLicenseChallenge,cbLicenseChallenge) )
#define IWMDRMNetTransmitter2_GetRootLicenseResponse(This,bstrKID,ppbLicenseResponse,pcbLicenseResponse) \
( (This)->lpVtbl -> GetRootLicenseResponse(This,bstrKID,ppbLicenseResponse,pcbLicenseResponse) )
#define IWMDRMNetTransmitter2_GetLeafLicenseResponse(This,bstrKID,pPolicy,ppIWMDRMEncrypt,ppbLicenseResponse,pcbLicenseResponse) \
( (This)->lpVtbl -> GetLeafLicenseResponse(This,bstrKID,pPolicy,ppIWMDRMEncrypt,ppbLicenseResponse,pcbLicenseResponse) )
#define IWMDRMNetTransmitter2_GetSimpleLicenseResponse(This,bstrKID,pPolicy,ppIWMDRMEncrypt,ppbLicenseResponse,pcbLicenseResponse) \
( (This)->lpVtbl -> GetSimpleLicenseResponse(This,bstrKID,pPolicy,ppIWMDRMEncrypt,ppbLicenseResponse,pcbLicenseResponse) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IWMDRMNetTransmitter2_INTERFACE_DEFINED__ */
#ifndef __IWMDRMIndividualizationStatus_INTERFACE_DEFINED__
#define __IWMDRMIndividualizationStatus_INTERFACE_DEFINED__
/* interface IWMDRMIndividualizationStatus */
/* [local][unique][helpstring][uuid][object] */
EXTERN_C const IID IID_IWMDRMIndividualizationStatus;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("7DB091BD-DB6A-4FA4-BCBF-0783E256C78C")
IWMDRMIndividualizationStatus : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE GetStatus(
/* [out] */ WM_INDIVIDUALIZE_STATUS *pStatus) = 0;
};
#else /* C style interface */
typedef struct IWMDRMIndividualizationStatusVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IWMDRMIndividualizationStatus * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IWMDRMIndividualizationStatus * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IWMDRMIndividualizationStatus * This);
HRESULT ( STDMETHODCALLTYPE *GetStatus )(
IWMDRMIndividualizationStatus * This,
/* [out] */ WM_INDIVIDUALIZE_STATUS *pStatus);
END_INTERFACE
} IWMDRMIndividualizationStatusVtbl;
interface IWMDRMIndividualizationStatus
{
CONST_VTBL struct IWMDRMIndividualizationStatusVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IWMDRMIndividualizationStatus_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IWMDRMIndividualizationStatus_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IWMDRMIndividualizationStatus_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IWMDRMIndividualizationStatus_GetStatus(This,pStatus) \
( (This)->lpVtbl -> GetStatus(This,pStatus) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IWMDRMIndividualizationStatus_INTERFACE_DEFINED__ */
#ifndef __IWMDRMLicenseBackupRestoreStatus_INTERFACE_DEFINED__
#define __IWMDRMLicenseBackupRestoreStatus_INTERFACE_DEFINED__
/* interface IWMDRMLicenseBackupRestoreStatus */
/* [local][unique][helpstring][uuid][object] */
EXTERN_C const IID IID_IWMDRMLicenseBackupRestoreStatus;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("F653C5A2-0EB3-4503-9D88-C200552D0D55")
IWMDRMLicenseBackupRestoreStatus : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE GetStatus(
/* [out] */ WM_BACKUP_RESTORE_STATUS *pStatus) = 0;
};
#else /* C style interface */
typedef struct IWMDRMLicenseBackupRestoreStatusVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IWMDRMLicenseBackupRestoreStatus * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IWMDRMLicenseBackupRestoreStatus * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IWMDRMLicenseBackupRestoreStatus * This);
HRESULT ( STDMETHODCALLTYPE *GetStatus )(
IWMDRMLicenseBackupRestoreStatus * This,
/* [out] */ WM_BACKUP_RESTORE_STATUS *pStatus);
END_INTERFACE
} IWMDRMLicenseBackupRestoreStatusVtbl;
interface IWMDRMLicenseBackupRestoreStatus
{
CONST_VTBL struct IWMDRMLicenseBackupRestoreStatusVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IWMDRMLicenseBackupRestoreStatus_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IWMDRMLicenseBackupRestoreStatus_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IWMDRMLicenseBackupRestoreStatus_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IWMDRMLicenseBackupRestoreStatus_GetStatus(This,pStatus) \
( (This)->lpVtbl -> GetStatus(This,pStatus) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IWMDRMLicenseBackupRestoreStatus_INTERFACE_DEFINED__ */
#ifndef __IWMDRMNonSilentLicenseAquisition_INTERFACE_DEFINED__
#define __IWMDRMNonSilentLicenseAquisition_INTERFACE_DEFINED__
/* interface IWMDRMNonSilentLicenseAquisition */
/* [local][unique][helpstring][uuid][object] */
EXTERN_C const IID IID_IWMDRMNonSilentLicenseAquisition;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("8AE059DD-BE6B-481A-863A-59056B50B748")
IWMDRMNonSilentLicenseAquisition : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE GetURL(
/* [out] */ BSTR *pbstrURL) = 0;
virtual HRESULT STDMETHODCALLTYPE GetChallenge(
/* [out] */ BSTR *pbstrChallenge) = 0;
};
#else /* C style interface */
typedef struct IWMDRMNonSilentLicenseAquisitionVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IWMDRMNonSilentLicenseAquisition * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IWMDRMNonSilentLicenseAquisition * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IWMDRMNonSilentLicenseAquisition * This);
HRESULT ( STDMETHODCALLTYPE *GetURL )(
IWMDRMNonSilentLicenseAquisition * This,
/* [out] */ BSTR *pbstrURL);
HRESULT ( STDMETHODCALLTYPE *GetChallenge )(
IWMDRMNonSilentLicenseAquisition * This,
/* [out] */ BSTR *pbstrChallenge);
END_INTERFACE
} IWMDRMNonSilentLicenseAquisitionVtbl;
interface IWMDRMNonSilentLicenseAquisition
{
CONST_VTBL struct IWMDRMNonSilentLicenseAquisitionVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IWMDRMNonSilentLicenseAquisition_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IWMDRMNonSilentLicenseAquisition_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IWMDRMNonSilentLicenseAquisition_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IWMDRMNonSilentLicenseAquisition_GetURL(This,pbstrURL) \
( (This)->lpVtbl -> GetURL(This,pbstrURL) )
#define IWMDRMNonSilentLicenseAquisition_GetChallenge(This,pbstrChallenge) \
( (This)->lpVtbl -> GetChallenge(This,pbstrChallenge) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IWMDRMNonSilentLicenseAquisition_INTERFACE_DEFINED__ */
#ifndef __WMDRMContentEnablerLib_LIBRARY_DEFINED__
#define __WMDRMContentEnablerLib_LIBRARY_DEFINED__
/* library WMDRMContentEnablerLib */
/* [version][uuid] */
EXTERN_C const IID LIBID_WMDRMContentEnablerLib;
EXTERN_C const CLSID CLSID_WMDRMContentEnablerActivate;
#ifdef __cplusplus
class DECLSPEC_UUID("82435bdf-f7c1-4df9-8103-eeabebf3d6e1")
WMDRMContentEnablerActivate;
#endif
#endif /* __WMDRMContentEnablerLib_LIBRARY_DEFINED__ */
/* Additional Prototypes for ALL interfaces */
unsigned long __RPC_USER BSTR_UserSize( __RPC__in unsigned long *, unsigned long , __RPC__in BSTR * );
unsigned char * __RPC_USER BSTR_UserMarshal( __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in BSTR * );
unsigned char * __RPC_USER BSTR_UserUnmarshal(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out BSTR * );
void __RPC_USER BSTR_UserFree( __RPC__in unsigned long *, __RPC__in BSTR * );
unsigned long __RPC_USER BSTR_UserSize64( __RPC__in unsigned long *, unsigned long , __RPC__in BSTR * );
unsigned char * __RPC_USER BSTR_UserMarshal64( __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in BSTR * );
unsigned char * __RPC_USER BSTR_UserUnmarshal64(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out BSTR * );
void __RPC_USER BSTR_UserFree64( __RPC__in unsigned long *, __RPC__in BSTR * );
/* end of Additional Prototypes */
#ifdef __cplusplus
}
#endif
#endif