windows-nt/Source/XPSP1/NT/multimedia/published/dxmdev/dshowdev/idl/mixer.idl
2020-09-26 16:20:57 +08:00

160 lines
3.8 KiB
Plaintext

// ap.idl : IDL source for VMRAllocPresenter.dll
//
// This file will be processed by the MIDL tool to
// produce the type library (ap.tlb) and marshalling code.
//=====================================================================
import "unknwn.idl";
cpp_quote("#ifdef DSHOW_INDEPENDENT")
typedef struct _AMMediaType {
GUID majortype;
GUID subtype;
BOOL bFixedSizeSamples;
BOOL bTemporalCompression;
ULONG lSampleSize;
GUID formattype;
IUnknown *pUnk;
ULONG cbFormat;
[size_is(cbFormat)] BYTE * pbFormat;
} AM_MEDIA_TYPE;
cpp_quote ("#endif")
cpp_quote("#if 0")
// This is temporary hack to get around the fact thatI don't know how to persuade
// MIDL to allow forward declarations.
typedef DOWRD* LPDIRECTDRAW7;
typedef DOWRD* LPDIRECTDRAWSURFACE7;
typedef DWORD* IVMRSurfaceAllocator;
typedef DWORD* IImageSync;
typedef DWORD* IMediaSample;
cpp_quote ("#endif")
cpp_quote("#include <ddraw.h>")
interface IVMRMixerControl;
interface IVMRMixerStream;
import "oaidl.idl";
import "ocidl.idl";
[
object,
uuid(56949f22-aa07-4061-bb8c-10159d8f92e5),
helpstring("IVMRMixerControl Interface"),
pointer_default(unique)
]
interface IVMRMixerControl : IUnknown
{
HRESULT SetBackEndAllocator(
[in] IVMRSurfaceAllocator* lpAllocator
);
HRESULT SetBackEndImageSync(
[in] IImageSync* lpImageSync
);
HRESULT SetMixerConfiguration(
[in] DWORD dwMaxStreams
);
HRESULT GetMixerConfiguration(
[out] DWORD* lpdwMaxStreams
);
};
[
object,
uuid(43062408-3d55-43cc-9415-0daf218db422),
helpstring("IVMRMixerStream Interface"),
pointer_default(unique)
]
interface IVMRMixerStream : IUnknown
{
HRESULT QueueStreamMediaSample(
[in] DWORD dwStreamID,
[in] IMediaSample* lpSample
);
HRESULT SetStreamMediaType(
[in] DWORD dwStreamID,
[in] AM_MEDIA_TYPE* pmt
);
HRESULT SetStreamActiveState(
[in] DWORD dwStreamID,
[in] BOOL fActive
);
HRESULT GetStreamActiveState(
[in] DWORD dwStreamID,
[out] BOOL* lpfActive
);
HRESULT SetStreamMode(
[in] DWORD dwStreamID,
[in] DWORD dwMixerMode
);
HRESULT GetStreamMode(
[in] DWORD dwStreamID,
[out] DWORD* lpdwMixerMode
);
HRESULT SetStreamColorKey(
[in] DWORD dwStreamID,
[in] COLORREF Clr
);
HRESULT GetStreamColorKey(
[in] DWORD dwStreamID,
[out] COLORREF* lpClr
);
HRESULT SetStreamAlpha(
[in] DWORD dwStreamID,
[in] DWORD Alpha
);
HRESULT GetStreamAlpha(
[in] DWORD dwStreamID,
[out] DWORD* lpAlpha
);
};
[
uuid(529b581a-2f2c-4a77-be9b-d8866d48dd4c),
version(1.0),
helpstring("Video Mixer 1.0 Type Library")
]
library VMRMIXERLib
{
importlib("stdole2.tlb");
[
uuid(06b32aee-77da-484b-973b-5d64f47201b0),
helpstring("AllocatorPresenter Class")
]
coclass VideoMixer
{
[default] interface IVMRMixerControl;
};
[
uuid(B87BEB7B-8D29-423f-AE4D-6582C10175AC),
helpstring("Mixer Filter")
]
coclass VideoMixingRenderer
{
interface IUnknown;
};
};