// 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 ") 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; }; };