Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

115 lines
4.4 KiB

//
// Microsoft Windows Media Technologies
// Copyright (C) Microsoft Corporation, 1999 - 2001. All rights reserved.
//
cpp_quote("// SCP Data Flags")
cpp_quote("#define WMDM_SCP_EXAMINE_EXTENSION 0x00000001L")
cpp_quote("#define WMDM_SCP_EXAMINE_DATA 0x00000002L")
cpp_quote("#define WMDM_SCP_DECIDE_DATA 0x00000008L")
cpp_quote("#define WMDM_SCP_PROTECTED_OUTPUT 0x00000010L")
cpp_quote("#define WMDM_SCP_UNPROTECTED_OUTPUT 0x00000020L")
cpp_quote("#define WMDM_SCP_RIGHTS_DATA 0x00000040L")
cpp_quote("// SCP Transfer Flags")
cpp_quote("#define WMDM_SCP_TRANSFER_OBJECTDATA 0x00000020L")
cpp_quote("#define WMDM_SCP_NO_MORE_CHANGES 0x00000040L")
interface ISCPSecureExchange;
interface ISCPSecureQuery;
interface ISCPSecureQuery2;
// ISCPSecureAuthenticate
[
object,
uuid(1DCB3A0F-33ED-11d3-8470-00C04F79DBC0),
pointer_default(unique)
]
interface ISCPSecureAuthenticate : IUnknown
{
HRESULT GetSecureQuery([out] ISCPSecureQuery **ppSecureQuery);
};
// ISCPSecureQuery
[
object,
uuid(1DCB3A0D-33ED-11d3-8470-00C04F79DBC0),
pointer_default(unique)
]
interface ISCPSecureQuery : IUnknown
{
HRESULT GetDataDemands([out] UINT *pfuFlags,
[out] DWORD *pdwMinRightsData,
[out] DWORD *pdwMinExamineData,
[out] DWORD *pdwMinDecideData,
[in, out] BYTE abMac[WMDM_MAC_LENGTH]);
HRESULT ExamineData([in] UINT fuFlags,
[in, string, unique] LPWSTR pwszExtension,
[in, size_is(dwSize)] BYTE *pData,
[in] DWORD dwSize,
[in, out] BYTE abMac[WMDM_MAC_LENGTH]);
HRESULT MakeDecision([in] UINT fuFlags,
[in, size_is(dwSize)] BYTE *pData,
[in] DWORD dwSize,
[in] DWORD dwAppSec,
[in, size_is(dwSessionKeyLen)] BYTE *pbSPSessionKey,
[in] DWORD dwSessionKeyLen,
[in] IMDSPStorageGlobals *pStorageGlobals,
[out] ISCPSecureExchange **ppExchange,
[in, out] BYTE abMac[WMDM_MAC_LENGTH]);
HRESULT GetRights([in, size_is(dwSize)] BYTE *pData,
[in] DWORD dwSize,
[in, size_is(dwSessionKeyLen)] BYTE *pbSPSessionKey,
[in] DWORD dwSessionKeyLen,
[in] IMDSPStorageGlobals *pStgGlobals,
[out, size_is(, *pnRightsCount)] PWMDMRIGHTS *ppRights,
[out] UINT *pnRightsCount,
[in, out] BYTE abMac[WMDM_MAC_LENGTH]);
};
// ISCPSecureQuery2
[
object,
uuid(EBE17E25-4FD7-4632-AF46-6D93D4FCC72E),
pointer_default(unique)
]
interface ISCPSecureQuery2 : ISCPSecureQuery
{
HRESULT MakeDecision2([in] UINT fuFlags,
[in, size_is(dwSize)] BYTE *pData,
[in] DWORD dwSize,
[in] DWORD dwAppSec,
[in, size_is(dwSessionKeyLen)] BYTE *pbSPSessionKey,
[in] DWORD dwSessionKeyLen,
[in] IMDSPStorageGlobals *pStorageGlobals,
[in, size_is(dwAppCertAppLen)] BYTE* pAppCertApp,
[in] DWORD dwAppCertAppLen,
[in, size_is(dwAppCertSPLen)] BYTE* pAppCertSP,
[in] DWORD dwAppCertSPLen,
[in, out, string, size_is(, *pdwRevocationURLLen)] LPWSTR* pszRevocationURL,
[in, out, ref] DWORD* pdwRevocationURLLen,
[out] DWORD* pdwRevocationBitFlag,
[in, out, unique] ULONGLONG* pqwFileSize,
[in] IUnknown* pUnknown,
[out] ISCPSecureExchange **ppExchange,
[in, out] BYTE abMac[WMDM_MAC_LENGTH]);
};
// ISCPSecureEchange
[
object,
uuid(1DCB3A0E-33ED-11d3-8470-00C04F79DBC0),
pointer_default(unique)
]
interface ISCPSecureExchange : IUnknown
{
HRESULT TransferContainerData([in,size_is(dwSize)] BYTE *pData,
[in] DWORD dwSize,
[out] UINT *pfuReadyFlags,
[in, out] BYTE abMac[WMDM_MAC_LENGTH]);
HRESULT ObjectData([out,size_is(*pdwSize)] BYTE *pData,
[in, out] DWORD *pdwSize,
[in, out] BYTE abMac[WMDM_MAC_LENGTH]);
HRESULT TransferComplete();
};