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

  1. //
  2. // Microsoft Windows Media Technologies
  3. // Copyright (C) Microsoft Corporation, 1999 - 2001. All rights reserved.
  4. //
  5. cpp_quote("// SCP Data Flags")
  6. cpp_quote("#define WMDM_SCP_EXAMINE_EXTENSION 0x00000001L")
  7. cpp_quote("#define WMDM_SCP_EXAMINE_DATA 0x00000002L")
  8. cpp_quote("#define WMDM_SCP_DECIDE_DATA 0x00000008L")
  9. cpp_quote("#define WMDM_SCP_PROTECTED_OUTPUT 0x00000010L")
  10. cpp_quote("#define WMDM_SCP_UNPROTECTED_OUTPUT 0x00000020L")
  11. cpp_quote("#define WMDM_SCP_RIGHTS_DATA 0x00000040L")
  12. cpp_quote("// SCP Transfer Flags")
  13. cpp_quote("#define WMDM_SCP_TRANSFER_OBJECTDATA 0x00000020L")
  14. cpp_quote("#define WMDM_SCP_NO_MORE_CHANGES 0x00000040L")
  15. interface ISCPSecureExchange;
  16. interface ISCPSecureQuery;
  17. interface ISCPSecureQuery2;
  18. // ISCPSecureAuthenticate
  19. [
  20. object,
  21. uuid(1DCB3A0F-33ED-11d3-8470-00C04F79DBC0),
  22. pointer_default(unique)
  23. ]
  24. interface ISCPSecureAuthenticate : IUnknown
  25. {
  26. HRESULT GetSecureQuery([out] ISCPSecureQuery **ppSecureQuery);
  27. };
  28. // ISCPSecureQuery
  29. [
  30. object,
  31. uuid(1DCB3A0D-33ED-11d3-8470-00C04F79DBC0),
  32. pointer_default(unique)
  33. ]
  34. interface ISCPSecureQuery : IUnknown
  35. {
  36. HRESULT GetDataDemands([out] UINT *pfuFlags,
  37. [out] DWORD *pdwMinRightsData,
  38. [out] DWORD *pdwMinExamineData,
  39. [out] DWORD *pdwMinDecideData,
  40. [in, out] BYTE abMac[WMDM_MAC_LENGTH]);
  41. HRESULT ExamineData([in] UINT fuFlags,
  42. [in, string, unique] LPWSTR pwszExtension,
  43. [in, size_is(dwSize)] BYTE *pData,
  44. [in] DWORD dwSize,
  45. [in, out] BYTE abMac[WMDM_MAC_LENGTH]);
  46. HRESULT MakeDecision([in] UINT fuFlags,
  47. [in, size_is(dwSize)] BYTE *pData,
  48. [in] DWORD dwSize,
  49. [in] DWORD dwAppSec,
  50. [in, size_is(dwSessionKeyLen)] BYTE *pbSPSessionKey,
  51. [in] DWORD dwSessionKeyLen,
  52. [in] IMDSPStorageGlobals *pStorageGlobals,
  53. [out] ISCPSecureExchange **ppExchange,
  54. [in, out] BYTE abMac[WMDM_MAC_LENGTH]);
  55. HRESULT GetRights([in, size_is(dwSize)] BYTE *pData,
  56. [in] DWORD dwSize,
  57. [in, size_is(dwSessionKeyLen)] BYTE *pbSPSessionKey,
  58. [in] DWORD dwSessionKeyLen,
  59. [in] IMDSPStorageGlobals *pStgGlobals,
  60. [out, size_is(, *pnRightsCount)] PWMDMRIGHTS *ppRights,
  61. [out] UINT *pnRightsCount,
  62. [in, out] BYTE abMac[WMDM_MAC_LENGTH]);
  63. };
  64. // ISCPSecureQuery2
  65. [
  66. object,
  67. uuid(EBE17E25-4FD7-4632-AF46-6D93D4FCC72E),
  68. pointer_default(unique)
  69. ]
  70. interface ISCPSecureQuery2 : ISCPSecureQuery
  71. {
  72. HRESULT MakeDecision2([in] UINT fuFlags,
  73. [in, size_is(dwSize)] BYTE *pData,
  74. [in] DWORD dwSize,
  75. [in] DWORD dwAppSec,
  76. [in, size_is(dwSessionKeyLen)] BYTE *pbSPSessionKey,
  77. [in] DWORD dwSessionKeyLen,
  78. [in] IMDSPStorageGlobals *pStorageGlobals,
  79. [in, size_is(dwAppCertAppLen)] BYTE* pAppCertApp,
  80. [in] DWORD dwAppCertAppLen,
  81. [in, size_is(dwAppCertSPLen)] BYTE* pAppCertSP,
  82. [in] DWORD dwAppCertSPLen,
  83. [in, out, string, size_is(, *pdwRevocationURLLen)] LPWSTR* pszRevocationURL,
  84. [in, out, ref] DWORD* pdwRevocationURLLen,
  85. [out] DWORD* pdwRevocationBitFlag,
  86. [in, out, unique] ULONGLONG* pqwFileSize,
  87. [in] IUnknown* pUnknown,
  88. [out] ISCPSecureExchange **ppExchange,
  89. [in, out] BYTE abMac[WMDM_MAC_LENGTH]);
  90. };
  91. // ISCPSecureEchange
  92. [
  93. object,
  94. uuid(1DCB3A0E-33ED-11d3-8470-00C04F79DBC0),
  95. pointer_default(unique)
  96. ]
  97. interface ISCPSecureExchange : IUnknown
  98. {
  99. HRESULT TransferContainerData([in,size_is(dwSize)] BYTE *pData,
  100. [in] DWORD dwSize,
  101. [out] UINT *pfuReadyFlags,
  102. [in, out] BYTE abMac[WMDM_MAC_LENGTH]);
  103. HRESULT ObjectData([out,size_is(*pdwSize)] BYTE *pData,
  104. [in, out] DWORD *pdwSize,
  105. [in, out] BYTE abMac[WMDM_MAC_LENGTH]);
  106. HRESULT TransferComplete();
  107. };