mirror of https://github.com/tongzx/nt5src
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
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();
|
|
};
|