1import "unknwn.idl"; 2 3#define MIXER_DATA_ASPECT_RATIO 0x00000001 4#define MIXER_DATA_NATIVE_SIZE 0x00000002 5#define MIXER_DATA_PALETTE 0x00000004 6#define MIXER_STATE_MASK 0x00000003 7#define MIXER_STATE_UNCONNECTED 0x00000000 8#define MIXER_STATE_CONNECTED_STOPPED 0x00000001 9#define MIXER_STATE_CONNECTED_PAUSED 0x00000002 10#define MIXER_STATE_CONNECTED_PLAYING 0x00000003 11 12interface IMixerOCXNotify; 13interface IMixerOCX; 14 15[ 16 object, 17 uuid(81A3BD31-DEE1-11d1-8508-00A0C91F9CA0), 18 pointer_default(unique) 19] 20interface IMixerOCXNotify : IUnknown 21{ 22 HRESULT OnInvalidateRect([in] LPCRECT lpcRect); 23 HRESULT OnStatusChange([in] ULONG ulStatusFlags); 24 HRESULT OnDataChange([in] ULONG ulDataFlags); 25}; 26 27[ 28 object, 29 uuid(81A3BD32-DEE1-11d1-8508-00A0C91F9CA0), 30 pointer_default(unique) 31] 32interface IMixerOCX : IUnknown 33{ 34 HRESULT OnDisplayChange([in] ULONG ulBitsPerPixel, [in] ULONG ulScreenWidth, [in] ULONG ulScreenHeight); 35 HRESULT GetAspectRatio([out] LPDWORD pdwPictAspectRatioX, [out] LPDWORD pdwPictAspectRatioY); 36 HRESULT GetVideoSize([out] LPDWORD pdwVideoWidth, [out] LPDWORD pdwVideoHeight); 37 HRESULT GetStatus([out] LPDWORD *pdwStatus); 38 HRESULT OnDraw([in] HDC hdcDraw, [in] LPCRECT prcDraw); 39 HRESULT SetDrawRegion([in] LPPOINT lpptTopLeftSC, [in] LPCRECT prcDrawCC, [in] LPCRECT lprcClip); 40 HRESULT Advise([in] IMixerOCXNotify *pmdns); 41 HRESULT UnAdvise(); 42}; 43