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.

159 lines
3.8 KiB

  1. // ap.idl : IDL source for VMRAllocPresenter.dll
  2. //
  3. // This file will be processed by the MIDL tool to
  4. // produce the type library (ap.tlb) and marshalling code.
  5. //=====================================================================
  6. import "unknwn.idl";
  7. cpp_quote("#ifdef DSHOW_INDEPENDENT")
  8. typedef struct _AMMediaType {
  9. GUID majortype;
  10. GUID subtype;
  11. BOOL bFixedSizeSamples;
  12. BOOL bTemporalCompression;
  13. ULONG lSampleSize;
  14. GUID formattype;
  15. IUnknown *pUnk;
  16. ULONG cbFormat;
  17. [size_is(cbFormat)] BYTE * pbFormat;
  18. } AM_MEDIA_TYPE;
  19. cpp_quote ("#endif")
  20. cpp_quote("#if 0")
  21. // This is temporary hack to get around the fact thatI don't know how to persuade
  22. // MIDL to allow forward declarations.
  23. typedef DOWRD* LPDIRECTDRAW7;
  24. typedef DOWRD* LPDIRECTDRAWSURFACE7;
  25. typedef DWORD* IVMRSurfaceAllocator;
  26. typedef DWORD* IImageSync;
  27. typedef DWORD* IMediaSample;
  28. cpp_quote ("#endif")
  29. cpp_quote("#include <ddraw.h>")
  30. interface IVMRMixerControl;
  31. interface IVMRMixerStream;
  32. import "oaidl.idl";
  33. import "ocidl.idl";
  34. [
  35. object,
  36. uuid(56949f22-aa07-4061-bb8c-10159d8f92e5),
  37. helpstring("IVMRMixerControl Interface"),
  38. pointer_default(unique)
  39. ]
  40. interface IVMRMixerControl : IUnknown
  41. {
  42. HRESULT SetBackEndAllocator(
  43. [in] IVMRSurfaceAllocator* lpAllocator
  44. );
  45. HRESULT SetBackEndImageSync(
  46. [in] IImageSync* lpImageSync
  47. );
  48. HRESULT SetMixerConfiguration(
  49. [in] DWORD dwMaxStreams
  50. );
  51. HRESULT GetMixerConfiguration(
  52. [out] DWORD* lpdwMaxStreams
  53. );
  54. };
  55. [
  56. object,
  57. uuid(43062408-3d55-43cc-9415-0daf218db422),
  58. helpstring("IVMRMixerStream Interface"),
  59. pointer_default(unique)
  60. ]
  61. interface IVMRMixerStream : IUnknown
  62. {
  63. HRESULT QueueStreamMediaSample(
  64. [in] DWORD dwStreamID,
  65. [in] IMediaSample* lpSample
  66. );
  67. HRESULT SetStreamMediaType(
  68. [in] DWORD dwStreamID,
  69. [in] AM_MEDIA_TYPE* pmt
  70. );
  71. HRESULT SetStreamActiveState(
  72. [in] DWORD dwStreamID,
  73. [in] BOOL fActive
  74. );
  75. HRESULT GetStreamActiveState(
  76. [in] DWORD dwStreamID,
  77. [out] BOOL* lpfActive
  78. );
  79. HRESULT SetStreamMode(
  80. [in] DWORD dwStreamID,
  81. [in] DWORD dwMixerMode
  82. );
  83. HRESULT GetStreamMode(
  84. [in] DWORD dwStreamID,
  85. [out] DWORD* lpdwMixerMode
  86. );
  87. HRESULT SetStreamColorKey(
  88. [in] DWORD dwStreamID,
  89. [in] COLORREF Clr
  90. );
  91. HRESULT GetStreamColorKey(
  92. [in] DWORD dwStreamID,
  93. [out] COLORREF* lpClr
  94. );
  95. HRESULT SetStreamAlpha(
  96. [in] DWORD dwStreamID,
  97. [in] DWORD Alpha
  98. );
  99. HRESULT GetStreamAlpha(
  100. [in] DWORD dwStreamID,
  101. [out] DWORD* lpAlpha
  102. );
  103. };
  104. [
  105. uuid(529b581a-2f2c-4a77-be9b-d8866d48dd4c),
  106. version(1.0),
  107. helpstring("Video Mixer 1.0 Type Library")
  108. ]
  109. library VMRMIXERLib
  110. {
  111. importlib("stdole2.tlb");
  112. [
  113. uuid(06b32aee-77da-484b-973b-5d64f47201b0),
  114. helpstring("AllocatorPresenter Class")
  115. ]
  116. coclass VideoMixer
  117. {
  118. [default] interface IVMRMixerControl;
  119. };
  120. [
  121. uuid(B87BEB7B-8D29-423f-AE4D-6582C10175AC),
  122. helpstring("Mixer Filter")
  123. ]
  124. coclass VideoMixingRenderer
  125. {
  126. interface IUnknown;
  127. };
  128. };