/* 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 version is high enough to compile this file*/ #ifndef __REQUIRED_RPCNDR_H_VERSION__ #define __REQUIRED_RPCNDR_H_VERSION__ 500 #endif /* verify that the 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 #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