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.

88 lines
2.9 KiB

  1. //
  2. // Copyright (c) Microsoft Corporation. All rights reserved.
  3. cpp_quote("/* Copyright (c) Microsoft Corporation. All rights reserved. */")
  4. #ifndef __TAPI3DS_IDL__
  5. #define __TAPI3DS_IDL__
  6. import "oaidl.idl";
  7. import "strmif.idl";
  8. // this is exposed by the Media Streaming Terminal (MST) samples
  9. [
  10. uuid( 0364EB00-4A77-11D1-A671-006097C9A2E8 ),
  11. helpstring("TAPI 3.0 ITAMMediaFormat interface"),
  12. ]
  13. interface ITAMMediaFormat : IUnknown
  14. {
  15. [propget, id(1), helpstring("property Media Format")]
  16. HRESULT MediaFormat(
  17. [out, retval] AM_MEDIA_TYPE **ppmt
  18. );
  19. [propput, id(1), helpstring("property Media Format")]
  20. HRESULT MediaFormat(
  21. [in] const AM_MEDIA_TYPE *pmt
  22. );
  23. };
  24. // exposes the allocator properties of the Media Streaming Terminal (MST)
  25. // to a user. A user only needs to use this interface when he needs to
  26. // use his own buffers or needs to operate with a fixed set of samples
  27. [
  28. uuid( C1BC3C90-BCFE-11D1-9745-00C04FD91AC0 ),
  29. helpstring("TAPI 3.0 ITAllocatorProperties interface"),
  30. ]
  31. interface ITAllocatorProperties : IUnknown
  32. {
  33. // this method may only be called before connection and will
  34. // force the MST to use these values during filter negotiation
  35. // if the connecting filter doesn't accept these, the connection
  36. // shall not be established
  37. [id(1), helpstring("method SetAllocatorProperties")]
  38. HRESULT SetAllocatorProperties(
  39. [in] ALLOCATOR_PROPERTIES *pAllocProperties
  40. );
  41. // gets current values for the allocator properties
  42. // after connection, this provides the negotiated values
  43. // it is invalid before connection. The MST will accept
  44. // any values suggested by the filters it connects to
  45. [id(2), helpstring("method GetAllocatorProperties")]
  46. HRESULT GetAllocatorProperties(
  47. [out] ALLOCATOR_PROPERTIES *pAllocProperties
  48. );
  49. // TRUE by default. when set to FALSE, the sample allocated
  50. // by the MST don't have any buffers and they must be supplied
  51. // before Update is called on the samples
  52. [id(3), helpstring("method SetAllocateBuffers")]
  53. HRESULT SetAllocateBuffers(
  54. [in] BOOL bAllocBuffers
  55. );
  56. // returns the current value of this boolean configuration parameter
  57. [id(4), helpstring("method GetAllocateBuffers")]
  58. HRESULT GetAllocateBuffers(
  59. [out] BOOL *pbAllocBuffers
  60. );
  61. // this size is used for allocating buffers when AllocateSample is
  62. // called. this is only valid when we have been told to allocate buffers
  63. [id(5), helpstring("method SetBufferSize")]
  64. HRESULT SetBufferSize(
  65. [in] DWORD BufferSize
  66. );
  67. // returns the value used to allocate buffers when AllocateSample is
  68. // called. this is only valid when we have been told to allocate buffers
  69. [id(6), helpstring("method GetBufferSize")]
  70. HRESULT GetBufferSize(
  71. [out] DWORD *pBufferSize
  72. );
  73. };
  74. #endif