diff --git a/dlls/quartz/filtergraph.c b/dlls/quartz/filtergraph.c index 86eb2eb1206..101612151ec 100644 --- a/dlls/quartz/filtergraph.c +++ b/dlls/quartz/filtergraph.c @@ -26,6 +26,7 @@ #include "windef.h" #include "winbase.h" +#include "winuser.h" #include "dshow.h" #include "wine/debug.h" #include "strmif.h" diff --git a/include/.cvsignore b/include/.cvsignore index 2c39d242492..cf258c71ed7 100644 --- a/include/.cvsignore +++ b/include/.cvsignore @@ -5,6 +5,7 @@ amvideo.h austream.h comcat.h config.h +control.h ddstream.h dispex.h docobj.h diff --git a/include/Makefile.in b/include/Makefile.in index 22d5934258c..0dfc0fa2da1 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -10,6 +10,7 @@ IDL_SRCS = \ amvideo.idl \ austream.idl \ comcat.idl \ + control.idl \ ddstream.idl \ dispex.idl \ docobj.idl \ @@ -52,7 +53,6 @@ WINDOWS_INCLUDES = \ commctrl.h \ commdlg.h \ compobj.h \ - control.h \ cpl.h \ custcntl.h \ cvconst.h \ @@ -145,7 +145,6 @@ WINDOWS_INCLUDES = \ mciavi.h \ mcx.h \ mediaerr.h \ - mediaobj.h \ minmax.h \ mmddk.h \ mmreg.h \ diff --git a/include/control.h b/include/control.h deleted file mode 100644 index 2aa3a732437..00000000000 --- a/include/control.h +++ /dev/null @@ -1,340 +0,0 @@ -/* - * Copyright (C) 2002 Lionel Ulmer - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#ifndef __CONTROL_INCLUDED__ -#define __CONTROL_INCLUDED__ - -typedef struct IMediaControl IMediaControl; -typedef struct IBasicAudio IBasicAudio; -typedef struct IBasicVideo IBasicVideo; -typedef struct IVideoWindow IVideoWindow; -typedef struct IMediaEvent IMediaEvent; -typedef struct IMediaEventEx IMediaEventEx; - -typedef long OAFilterState; -typedef LONG_PTR OAHWND; -typedef LONG_PTR OAEVENT; - -#define INTERFACE IMediaControl -#define IMediaControl_METHODS \ - IDispatch_METHODS \ - STDMETHOD(Run)(THIS) PURE; \ - STDMETHOD(Pause)(THIS) PURE; \ - STDMETHOD(Stop)(THIS) PURE; \ - STDMETHOD(GetState)(THIS_ LONG msTimeout, OAFilterState * pfs) PURE; \ - STDMETHOD(RenderFile)(THIS_ BSTR strFilename) PURE; \ - STDMETHOD(AddSourceFilter)(THIS_ BSTR strFilename, IDispatch ** ppUnk) PURE; \ - STDMETHOD(get_FilterCollection)(THIS_ IDispatch ** ppUnk) PURE; \ - STDMETHOD(get_RegFilterCollection)(THIS_ IDispatch ** ppUnk) PURE; \ - STDMETHOD(StopWhenReady)(THIS) PURE; -DECLARE_INTERFACE_(IMediaControl,IDispatch) { IMediaControl_METHODS }; -#undef INTERFACE - -#ifdef COBJMACROS -/*** IUnknown methods ***/ -#define IMediaControl_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) -#define IMediaControl_AddRef(p) (p)->lpVtbl->AddRef(p) -#define IMediaControl_Release(p) (p)->lpVtbl->Release(p) -/*** IDispatch methods ***/ -#define IMediaControl_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a) -#define IMediaControl_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c) -#define IMediaControl_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e) -#define IMediaControl_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h) -/*** IMediaControl methods ***/ -#define IMediaControl_Run(p) (p)->lpVtbl->Run(p) -#define IMediaControl_Pause(p) (p)->lpVtbl->Pause(p) -#define IMediaControl_Stop(p) (p)->lpVtbl->Stop(p) -#define IMediaControl_GetState(p,a,b) (p)->lpVtbl->GetState(p,a,b) -#define IMediaControl_RenderFile(p,a) (p)->lpVtbl->RenderFile(p,a) -#define IMediaControl_AddSourceFilter(p,a,b) (p)->lpVtbl->AddSourceFilter(p,a,b) -#define IMediaControl_get_FilterCollection(p,a) (p)->lpVtbl->get_FilterCollection(p,a) -#define IMediaControl_get_RegFilterCollection(p,a) (p)->lpVtbl->get_RegFilterCollection(p,a) -#define IMediaControl_StopWhenReady(p) (p)->lpVtbl->StopWhenReady(p) -#endif - -#define INTERFACE IBasicAudio -#define IBasicAudio_METHODS \ - IDispatch_METHODS \ - STDMETHOD(put_Volume)(THIS_ long lVolume) PURE; \ - STDMETHOD(get_Volume)(THIS_ long * plVolume) PURE; \ - STDMETHOD(put_Balance)(THIS_ long lBalance) PURE; \ - STDMETHOD(get_Balance)(THIS_ long * plBalance) PURE; -DECLARE_INTERFACE_(IBasicAudio,IDispatch) { IBasicAudio_METHODS }; -#undef INTERFACE - -#ifdef COBJMACROS -/*** IUnknown methods ***/ -#define IBasicAudio_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) -#define IBasicAudio_AddRef(p) (p)->lpVtbl->AddRef(p) -#define IBasicAudio_Release(p) (p)->lpVtbl->Release(p) -/*** IDispatch methods ***/ -#define IBasicAudio_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a) -#define IBasicAudio_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c) -#define IBasicAudio_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e) -#define IBasicAudio_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h) -/*** IBasicAudio methods ***/ -#define IBasicAudio_get_Volume(p,a) (p)->lpVtbl->get_Volume(p,a) -#define IBasicAudio_put_Volume(p,a) (p)->lpVtbl->put_Volume(p,a) -#define IBasicAudio_get_Balance(p,a) (p)->lpVtbl->get_Balance(p,a) -#define IBasicAudio_put_Balance(p,a) (p)->lpVtbl->put_Balance(p,a) -#endif - -#define INTERFACE IBasicVideo -#define IBasicVideo_METHODS \ - IDispatch_METHODS \ - STDMETHOD(get_AvgTimePerFrame)(THIS_ REFTIME * pAvgTimePerFrame) PURE; \ - STDMETHOD(get_BitRate)(THIS_ long * pBitRate) PURE; \ - STDMETHOD(get_BitErrorRate)(THIS_ long * pBitErrorRate) PURE; \ - STDMETHOD(get_VideoWidth)(THIS_ long * pVideoWidth) PURE; \ - STDMETHOD(get_VideoHeight)(THIS_ long * pVideoHeight) PURE; \ - STDMETHOD(put_SourceLeft)(THIS_ long SourceLeft) PURE; \ - STDMETHOD(get_SourceLeft)(THIS_ long * pSourceLeft) PURE; \ - STDMETHOD(put_SourceWidth)(THIS_ long SourceWidth) PURE; \ - STDMETHOD(get_SourceWidth)(THIS_ long * pSourceWidth) PURE; \ - STDMETHOD(put_SourceTop)(THIS_ long SourceTop) PURE; \ - STDMETHOD(get_SourceTop)(THIS_ long * pSourceTop) PURE; \ - STDMETHOD(put_SourceHeight)(THIS_ long SourceHeight) PURE; \ - STDMETHOD(get_SourceHeight)(THIS_ long * pSourceHeight) PURE; \ - STDMETHOD(put_DestinationLeft)(THIS_ long DestinationLeft) PURE; \ - STDMETHOD(get_DestinationLeft)(THIS_ long * pDestinationLeft) PURE; \ - STDMETHOD(put_DestinationWidth)(THIS_ long DestinationWidth) PURE; \ - STDMETHOD(get_DestinationWidth)(THIS_ long * pDestinationWidth) PURE; \ - STDMETHOD(put_DestinationTop)(THIS_ long DestinationTop) PURE; \ - STDMETHOD(get_DestinationTop)(THIS_ long * pDestinationTop) PURE; \ - STDMETHOD(put_DestinationHeight)(THIS_ long DestinationHeight) PURE; \ - STDMETHOD(get_DestinationHeight)(THIS_ long * pDestinationHeight) PURE; \ - STDMETHOD(SetSourcePosition)(THIS_ long Left, long Top, long Width, long Height) PURE; \ - STDMETHOD(GetSourcePosition)(THIS_ long * pLeft, long * pTop, long * pWidth, long * pHeight) PURE; \ - STDMETHOD(SetDefaultSourcePosition)(THIS) PURE; \ - STDMETHOD(SetDestinationPosition)(THIS_ long Left, long Top, long Width, long Height) PURE; \ - STDMETHOD(GetDestinationPosition)(THIS_ long * pLeft, long * pTop, long * pWidth, long * pHeight) PURE; \ - STDMETHOD(SetDefaultDestinationPosition)(THIS) PURE; \ - STDMETHOD(GetVideoSize)(THIS_ long * pWidth, long * pHeight) PURE; \ - STDMETHOD(GetVideoPaletteEntries)(THIS_ long StartIndex, long Entries, long * pRetrieved, long * pPalette) PURE; \ - STDMETHOD(GetCurrentImage)(THIS_ long * pBufferSize, long * pDIBImage) PURE; \ - STDMETHOD(IsUsingDefaultSource)(THIS) PURE; \ - STDMETHOD(IsUsingDefaultDestination)(THIS) PURE; -DECLARE_INTERFACE_(IBasicVideo,IDispatch) { IBasicVideo_METHODS }; -#undef INTERFACE - -#ifdef COBJMACROS -/*** IUnknown methods ***/ -#define IBasicVideo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) -#define IBasicVideo_AddRef(p) (p)->lpVtbl->AddRef(p) -#define IBasicVideo_Release(p) (p)->lpVtbl->Release(p) -/*** IDispatch methods ***/ -#define IBasicVideo_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a) -#define IBasicVideo_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c) -#define IBasicVideo_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e) -#define IBasicVideo_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h) -/*** IBasicVideo methods ***/ -#define IBasicVideo_get_AvgTimePerFrame(p,a) (p)->lpVtbl->get_AvgTimePerFrame(p,a) -#define IBasicVideo_get_BitRate(p,a) (p)->lpVtbl->get_BitRate(p,a) -#define IBasicVideo_get_BitErrorRate(p,a) (p)->lpVtbl->get_BitErrorRate(p,a) -#define IBasicVideo_get_VideoWidth(p,a) (p)->lpVtbl->get_VideoWidth(p,a) -#define IBasicVideo_get_VideoHeight(p,a) (p)->lpVtbl->get_VideoHeight(p,a) -#define IBasicVideo_put_SourceLeft(p,a) (p)->lpVtbl->put_SourceLeft(p,a) -#define IBasicVideo_get_SourceLeft(p,a) (p)->lpVtbl->get_SourceLeft(p,a) -#define IBasicVideo_put_SourceWidth(p,a) (p)->lpVtbl->put_SourceWidth(p,a) -#define IBasicVideo_get_SourceWidth(p,a) (p)->lpVtbl->get_SourceWidth(p,a) -#define IBasicVideo_put_SourceTop(p,a) (p)->lpVtbl->put_SourceTop(p,a) -#define IBasicVideo_get_SourceTop(p,a) (p)->lpVtbl->get_SourceTop(p,a) -#define IBasicVideo_put_SourceHeight(p,a) (p)->lpVtbl->put_SourceHeight(p,a) -#define IBasicVideo_get_SourceHeight(p,a) (p)->lpVtbl->get_SourceHeight(p,a) -#define IBasicVideo_put_DestinationLeft(p,a) (p)->lpVtbl->put_DestinationLeft(p,a) -#define IBasicVideo_get_DestinationLeft(p,a) (p)->lpVtbl->get_DestinationLeft(p,a) -#define IBasicVideo_put_DestinationWidth(p,a) (p)->lpVtbl->put_DestinationWidth(p,a) -#define IBasicVideo_get_DestinationWidth(p,a) (p)->lpVtbl->get_DestinationWidth(p,a) -#define IBasicVideo_put_DestinationTop(p,a) (p)->lpVtbl->put_DestinationTop(p,a) -#define IBasicVideo_get_DestinationTop(p,a) (p)->lpVtbl->get_DestinationTop(p,a) -#define IBasicVideo_put_DestinationHeight(p,a) (p)->lpVtbl->put_DestinationHeight(p,a) -#define IBasicVideo_get_DestinationHeight(p,a) (p)->lpVtbl->get_DestinationHeight(p,a) -#define IBasicVideo_SetSourcePosition(p,a,b,c,d) (p)->lpVtbl->SetSourcePosition(p,a,b,c,d) -#define IBasicVideo_GetSourcePosition(p,a,b,c,d) (p)->lpVtbl->GetSourcePosition(p,a,b,c,d) -#define IBasicVideo_SetDefaultSourcePosition(p) (p)->lpVtbl->SetDefaultSourcePosition(p) -#define IBasicVideo_SetDestinationPosition(p,a,b,c,d) (p)->lpVtbl->SetDestinationPosition(p,a,b,c,d) -#define IBasicVideo_GetDestinationPosition(p,a,b,c,d) (p)->lpVtbl->GetDestinationPosition(p,a,b,c,d) -#define IBasicVideo_SetDefaultDestinationPosition(p) (p)->lpVtbl->SetDefaultDestinationPosition(p) -#define IBasicVideo_GetVideoSize(p,a,b) (p)->lpVtbl->GetVideoSize(p,a,b) -#define IBasicVideo_GetVideoPaletteEntries(p,a,b,c,d) (p)->lpVtbl->GetVideoPaletteEntries(p,a,b,c,d) -#define IBasicVideo_GetCurrentImage(p,a,b) (p)->lpVtbl->GetCurrentImage(p,a,b) -#define IBasicVideo_IsUsingDefaultSource(p) (p)->lpVtbl->IsUsingDefaultSource(p) -#define IBasicVideo_IsUsingDefaultDestination(p) (p)->lpVtbl->IsUsingDefaultDestination(p) -#endif - -#define INTERFACE IVideoWindow -#define IVideoWindow_METHODS \ - IDispatch_METHODS \ - STDMETHOD(put_Caption)(THIS_ BSTR strCaption) PURE; \ - STDMETHOD(get_Caption)(THIS_ BSTR * strCaption) PURE; \ - STDMETHOD(put_WindowStyle)(THIS_ long WindowStyle) PURE; \ - STDMETHOD(get_WindowStyle)(THIS_ long * WindowStyle) PURE; \ - STDMETHOD(put_WindowStyleEx)(THIS_ long WindowStyleEx) PURE; \ - STDMETHOD(get_WindowStyleEx)(THIS_ long * WindowStyleEx) PURE; \ - STDMETHOD(put_AutoShow)(THIS_ long AutoShow) PURE; \ - STDMETHOD(get_AutoShow)(THIS_ long * AutoShow) PURE; \ - STDMETHOD(put_WindowState)(THIS_ long WindowState) PURE; \ - STDMETHOD(get_WindowState)(THIS_ long * WindowState) PURE; \ - STDMETHOD(put_BackgroundPalette)(THIS_ long BackgroundPalette) PURE; \ - STDMETHOD(get_BackgroundPalette)(THIS_ long * pBackgroundPalette) PURE; \ - STDMETHOD(put_Visible)(THIS_ long Visible) PURE; \ - STDMETHOD(get_Visible)(THIS_ long * pVisible) PURE; \ - STDMETHOD(put_Left)(THIS_ long Left) PURE; \ - STDMETHOD(get_Left)(THIS_ long * pLeft) PURE; \ - STDMETHOD(put_Width)(THIS_ long Width) PURE; \ - STDMETHOD(get_Width)(THIS_ long * pWidth) PURE; \ - STDMETHOD(put_Top)(THIS_ long Top) PURE; \ - STDMETHOD(get_Top)(THIS_ long * pTop) PURE; \ - STDMETHOD(put_Height)(THIS_ long Height) PURE; \ - STDMETHOD(get_Height)(THIS_ long * pHeight) PURE; \ - STDMETHOD(put_Owner)(THIS_ OAHWND Owner) PURE; \ - STDMETHOD(get_Owner)(THIS_ OAHWND * Owner) PURE; \ - STDMETHOD(put_MessageDrain)(THIS_ OAHWND Drain) PURE; \ - STDMETHOD(get_MessageDrain)(THIS_ OAHWND * Drain) PURE; \ - STDMETHOD(get_BorderColor)(THIS_ long * Color) PURE; \ - STDMETHOD(put_BorderColor)(THIS_ long Color) PURE; \ - STDMETHOD(get_FullScreenMode)(THIS_ long * FullScreenMode) PURE; \ - STDMETHOD(put_FullScreenMode)(THIS_ long FullScreenMode) PURE; \ - STDMETHOD(SetWindowForeground)(THIS_ long Focus) PURE; \ - STDMETHOD(NotifyOwnerMessage)(THIS_ OAHWND hwnd, long uMsg, LONG_PTR wParam, LONG_PTR lParam) PURE; \ - STDMETHOD(SetWindowPosition)(THIS_ long Left, long Top, long Width, long Height) PURE; \ - STDMETHOD(GetWindowPosition)(THIS_ long * pLeft, long * pTop, long * pWidth, long * pHeight) PURE; \ - STDMETHOD(GetMinIdealImageSize)(THIS_ long * pWidth, long * pHeight) PURE; \ - STDMETHOD(GetMaxIdealImageSize)(THIS_ long * pWidth, long * pHeight) PURE; \ - STDMETHOD(GetRestorePosition)(THIS_ long * pLeft, long * pTop, long * pWidth, long * pHeight) PURE; \ - STDMETHOD(HideCursor)(THIS_ long HideCursor) PURE; \ - STDMETHOD(IsCursorHidden)(THIS_ long * CursorHidden) PURE; -DECLARE_INTERFACE_(IVideoWindow,IDispatch) { IVideoWindow_METHODS }; -#undef INTERFACE - -#ifdef COBJMACROS -/*** IUnknown methods ***/ -#define IVideoWindow_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) -#define IVideoWindow_AddRef(p) (p)->lpVtbl->AddRef(p) -#define IVideoWindow_Release(p) (p)->lpVtbl->Release(p) -/*** IDispatch methods ***/ -#define IVideoWindow_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a) -#define IVideoWindow_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c) -#define IVideoWindow_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e) -#define IVideoWindow_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h) -/*** IVideoWindow methods ***/ -#define IVideoWindow_put_Caption(p,a) (p)->lpVtbl->put_Caption(p,a) -#define IVideoWindow_get_Caption(p,a) (p)->lpVtbl->get_Caption(p,a) -#define IVideoWindow_put_WindowStyle(p,a) (p)->lpVtbl->put_WindowStyle(p,a) -#define IVideoWindow_get_WindowStyle(p,a) (p)->lpVtbl->get_WindowStyle(p,a) -#define IVideoWindow_put_WindowStyleEx(p,a) (p)->lpVtbl->put_WindowStyleEx(p,a) -#define IVideoWindow_get_WindowStyleEx(p,a) (p)->lpVtbl->get_WindowStyleEx(p,a) -#define IVideoWindow_put_AutoShow(p,a) (p)->lpVtbl->put_AutoShow(p,a) -#define IVideoWindow_get_AutoShow(p,a) (p)->lpVtbl->get_AutoShow(p,a) -#define IVideoWindow_put_WindowState(p,a) (p)->lpVtbl->put_WindowState(p,a) -#define IVideoWindow_get_WindowState(p,a) (p)->lpVtbl->get_WindowState(p,a) -#define IVideoWindow_put_BackgroundPalette(p,a) (p)->lpVtbl->put_BackgroundPalette(p,a) -#define IVideoWindow_get_BackgroundPalette(p,a) (p)->lpVtbl->get_BackgroundPalette(p,a) -#define IVideoWindow_put_Visible(p,a) (p)->lpVtbl->put_Visible(p,a) -#define IVideoWindow_get_Visible(p,a) (p)->lpVtbl->get_Visible(p,a) -#define IVideoWindow_put_Left(p,a) (p)->lpVtbl->put_Left(p,a) -#define IVideoWindow_get_Left(p,a) (p)->lpVtbl->get_Left(p,a) -#define IVideoWindow_put_Width(p,a) (p)->lpVtbl->put_Width(p,a) -#define IVideoWindow_get_Width(p,a) (p)->lpVtbl->get_Width(p,a) -#define IVideoWindow_put_Top(p,a) (p)->lpVtbl->put_Top(p,a) -#define IVideoWindow_get_Top(p,a) (p)->lpVtbl->get_Top(p,a) -#define IVideoWindow_put_Height(p,a) (p)->lpVtbl->put_Height(p,a) -#define IVideoWindow_get_Height(p,a) (p)->lpVtbl->get_Height(p,a) -#define IVideoWindow_put_Owner(p,a) (p)->lpVtbl->put_Owner(p,a) -#define IVideoWindow_get_Owner(p,a) (p)->lpVtbl->get_Owner(p,a) -#define IVideoWindow_put_MessageDrain(p,a) (p)->lpVtbl->put_MessageDrain(p,a) -#define IVideoWindow_get_MessageDrain(p,a) (p)->lpVtbl->get_MessageDrain(p,a) -#define IVideoWindow_get_BorderColor(p,a) (p)->lpVtbl->get_BorderColor(p,a) -#define IVideoWindow_put_BorderColor(p,a) (p)->lpVtbl->put_BorderColor(p,a) -#define IVideoWindow_get_FullScreenMode(p,a) (p)->lpVtbl->get_FullScreenMode(p,a) -#define IVideoWindow_put_FullScreenMode(p,a) (p)->lpVtbl->put_FullScreenMode(p,a) -#define IVideoWindow_SetWindowForeground(p,a) (p)->lpVtbl->SetWindowForeground(p,a) -#define IVideoWindow_NotifyOwnerMessage(p,a,b,c,d) (p)->lpVtbl->NotifyOwnerMessage(p,a,b,c,d) -#define IVideoWindow_SetWindowPosition(p,a,b,c,d) (p)->lpVtbl->SetWindowPosition(p,a,b,c,d) -#define IVideoWindow_GetWindowPosition(p,a,b,c,d) (p)->lpVtbl->GetWindowPosition(p,a,b,c,d) -#define IVideoWindow_GetMinIdealImageSize(p,a,b) (p)->lpVtbl->GetMinIdealImageSize(p,a,b) -#define IVideoWindow_GetMaxIdealImageSize(p,a,b) (p)->lpVtbl->GetMaxIdealImageSize(p,a,b) -#define IVideoWindow_GetRestorePosition(p,a,b,c,d) (p)->lpVtbl->GetRestorePosition(p,a,b,c,d) -#define IVideoWindow_HideCursor(p,a) (p)->lpVtbl->HideCursor(p,a) -#define IVideoWindow_IsCursorHidden(p,a) (p)->lpVtbl->IsCursorHidden(p,a) -#endif - -#define INTERFACE IMediaEvent -#define IMediaEvent_METHODS \ - IDispatch_METHODS \ - STDMETHOD(GetEventHandle)(THIS_ OAEVENT * hEvent) PURE; \ - STDMETHOD(GetEvent)(THIS_ long * lEventCode, LONG_PTR * lParam1, LONG_PTR * lParam2, long msTimeout) PURE; \ - STDMETHOD(WaitForCompletion)(THIS_ long msTimeout, long * pEvCode) PURE; \ - STDMETHOD(CancelDefaultHandling)(THIS_ long lEvCode) PURE; \ - STDMETHOD(RestoreDefaultHandling)(THIS_ long lEvCode) PURE; \ - STDMETHOD(FreeEventParams)(THIS_ long lEvCode, LONG_PTR lParam1, LONG_PTR lParam2) PURE; -DECLARE_INTERFACE_(IMediaEvent,IDispatch) { IMediaEvent_METHODS }; -#undef INTERFACE - -#ifdef COBJMACROS -/*** IUnknown methods ***/ -#define IMediaEvent_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) -#define IMediaEvent_AddRef(p) (p)->lpVtbl->AddRef(p) -#define IMediaEvent_Release(p) (p)->lpVtbl->Release(p) -/*** IDispatch methods ***/ -#define IMediaEvent_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a) -#define IMediaEvent_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c) -#define IMediaEvent_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e) -#define IMediaEvent_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h) -/*** IMediaEvent methods ***/ -#define IMediaEvent_GetEventHandle(p,a) (p)->lpVtbl->GetEventHandle(p,a) -#define IMediaEvent_GetEvent(p,a,b,c,d) (p)->lpVtbl->GetEvent(p,a,b,c,d) -#define IMediaEvent_WaitForCompletion(p,a,b) (p)->lpVtbl->WaitForCompletion(p,a,b) -#define IMediaEvent_CancelDefaultHandling(p,a) (p)->lpVtbl->CancelDefaultHandling(p,a) -#define IMediaEvent_RestoreDefaultHandling(p,a) (p)->lpVtbl->RestoreDefaultHandling(p,a) -#define IMediaEvent_FreeEventParams(p,a,b,c) (p)->lpVtbl->FreeEventParams(p,a,b,c) -#endif - -#define INTERFACE IMediaEventEx -#define IMediaEventEx_METHODS \ - IMediaEvent_METHODS \ - STDMETHOD(SetNotifyWindow)(THIS_ OAHWND hwnd, long lMsg, LONG_PTR lInstanceData) PURE; \ - STDMETHOD(SetNotifyFlags)(THIS_ long lNoNotifyFlags) PURE; \ - STDMETHOD(GetNotifyFlags)(THIS_ long * lplNoNotifyFlags) PURE; -DECLARE_INTERFACE_(IMediaEventEx,IMediaEvent) { IMediaEventEx_METHODS }; -#undef INTERFACE - -#ifdef COBJMACROS -/*** IUnknown methods ***/ -#define IMediaEventEx_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) -#define IMediaEventEx_AddRef(p) (p)->lpVtbl->AddRef(p) -#define IMediaEventEx_Release(p) (p)->lpVtbl->Release(p) -/*** IDispatch methods ***/ -#define IMediaEventEx_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a) -#define IMediaEventEx_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c) -#define IMediaEventEx_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e) -#define IMediaEventEx_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h) -/*** IMediaEvent methods ***/ -#define IMediaEventEx_GetEventHandle(p,a) (p)->lpVtbl->GetEventHandle(p,a) -#define IMediaEventEx_GetEvent(p,a,b,c,d) (p)->lpVtbl->GetEvent(p,a,b,c,d) -#define IMediaEventEx_WaitForCompletion(p,a,b) (p)->lpVtbl->WaitForCompletion(p,a,b) -#define IMediaEventEx_CancelDefaultHandling(p,a) (p)->lpVtbl->CancelDefaultHandling(p,a) -#define IMediaEventEx_RestoreDefaultHandling(p,a) (p)->lpVtbl->RestoreDefaultHandling(p,a) -#define IMediaEventEx_FreeEventParams(p,a,b,c) (p)->lpVtbl->FreeEventParams(p,a,b,c) -/*** IMediaEventEx methods ***/ -#define IMediaEventEx_SetNotifyWindow(p,a,b,c) (p)->lpVtbl->SetNotifyWindow(p,a,b,c) -#define IMediaEventEx_SetNotifyFlags(p,a) (p)->lpVtbl->SetNotifyFlags(p,a) -#define IMediaEventEx_GetNotifyFlags(p,a) (p)->lpVtbl->GetNotifyFlags(p,a) -#endif - -#endif /* __CONTROL_INCLUDED__ */ diff --git a/include/control.idl b/include/control.idl new file mode 100644 index 00000000000..af03e067bef --- /dev/null +++ b/include/control.idl @@ -0,0 +1,208 @@ +/* + * Copyright (C) 2002 Lionel Ulmer + * Copyright (C) 2004 Alexandre Julliard + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +cpp_quote("#if 0"); /* FIXME: these files are not included on Windows */ +import "shldisp.idl"; +import "strmif.idl"; +cpp_quote("#endif"); + +interface IMediaControl; +interface IBasicAudio; +interface IBasicVideo; +interface IVideoWindow; +interface IMediaEvent; +interface IMediaEventEx; + +typedef long OAFilterState; +typedef LONG_PTR OAHWND; +typedef LONG_PTR OAEVENT; + +/***************************************************************************** + * IMediaControl interface + */ +[ + object, + uuid(56a868b1-0ad4-11ce-b03a-0020af0ba770), + pointer_default(unique) +] +interface IMediaControl : IDispatch +{ + HRESULT Run(); + HRESULT Pause(); + HRESULT Stop(); + HRESULT GetState( [in] LONG msTimeout, [out] OAFilterState *pfs ); + HRESULT RenderFile( [in] BSTR strFilename ); + HRESULT AddSourceFilter( [in] BSTR strFilename, [out] IDispatch **ppUnk ); + [propget] HRESULT FilterCollection( [out] IDispatch **ppUnk ); + [propget] HRESULT RegFilterCollection( [out] IDispatch **ppUnk ); + HRESULT StopWhenReady(); +} + + +/***************************************************************************** + * IBasicAudio interface + */ +[ + object, + uuid(56a868b3-0ad4-11ce-b03a-0020af0ba770), + pointer_default(unique) +] +interface IBasicAudio : IDispatch +{ + [propput] HRESULT Volume( [in] long lVolume ); + [propget] HRESULT Volume( [out] long *plVolume ); + [propput] HRESULT Balance( [in] long lBalance ); + [propget] HRESULT Balance( [out] long *plBalance ); +} + + +/***************************************************************************** + * IVideoWindow interface + */ +[ + object, + uuid(56a868b4-0ad4-11ce-b03a-0020af0ba770), + pointer_default(unique) +] +interface IVideoWindow : IDispatch +{ + [propput] HRESULT Caption( [in] BSTR strCaption ); + [propget] HRESULT Caption( [out] BSTR *strCaption ); + [propput] HRESULT WindowStyle( [in] long WindowStyle ); + [propget] HRESULT WindowStyle( [out] long *WindowStyle ); + [propput] HRESULT WindowStyleEx( [in] long WindowStyleEx ); + [propget] HRESULT WindowStyleEx( [out] long *WindowStyleEx ); + [propput] HRESULT AutoShow( [in] long AutoShow ); + [propget] HRESULT AutoShow( [out] long *AutoShow ); + [propput] HRESULT WindowState( [in] long WindowState ); + [propget] HRESULT WindowState( [out] long *WindowState ); + [propput] HRESULT BackgroundPalette( [in] long BackgroundPalette ); + [propget] HRESULT BackgroundPalette( [out] long *pBackgroundPalette ); + [propput] HRESULT Visible( [in] long Visible ); + [propget] HRESULT Visible( [out] long *pVisible ); + [propput] HRESULT Left( [in] long Left ); + [propget] HRESULT Left( [out] long *pLeft ); + [propput] HRESULT Width( [in] long Width ); + [propget] HRESULT Width( [out] long *pWidth ); + [propput] HRESULT Top( [in] long Top ); + [propget] HRESULT Top( [out] long *pTop ); + [propput] HRESULT Height( [in] long Height ); + [propget] HRESULT Height( [out] long *pHeight ); + [propput] HRESULT Owner( [in] OAHWND Owner ); + [propget] HRESULT Owner( [out] OAHWND *Owner ); + [propput] HRESULT MessageDrain( [in] OAHWND Drain ); + [propget] HRESULT MessageDrain( [out] OAHWND *Drain ); + [propget] HRESULT BorderColor( [out] long *Color ); + [propput] HRESULT BorderColor( [in] long Color ); + [propget] HRESULT FullScreenMode( [out] long *FullScreenMode ); + [propput] HRESULT FullScreenMode( [in] long FullScreenMode ); + HRESULT SetWindowForeground( [in] long Focus ); + HRESULT NotifyOwnerMessage( [in] OAHWND hwnd, [in] long uMsg, [in] LONG_PTR wParam, [in] LONG_PTR lParam ); + HRESULT SetWindowPosition( [in] long Left, [in] long Top, [in] long Width, [in] long Height ); + HRESULT GetWindowPosition( [out] long *pLeft, [out] long *pTop, [out] long *pWidth, [out] long *pHeight ); + HRESULT GetMinIdealImageSize( [out] long *pWidth, [out] long *pHeight ); + HRESULT GetMaxIdealImageSize( [out] long *pWidth, [out] long *pHeight ); + HRESULT GetRestorePosition( [out] long *pLeft, [out] long *pTop, [out] long *pWidth, [out] long *pHeight ); + HRESULT HideCursor( [in] long HideCursor ); + HRESULT IsCursorHidden( [out] long *CursorHidden ); +} + + +/***************************************************************************** + * IBasicVideo interface + */ +[ + object, + uuid(56a868b5-0ad4-11ce-b03a-0020af0ba770), + pointer_default(unique) +] +interface IBasicVideo : IDispatch +{ + [propget] HRESULT AvgTimePerFrame( [out] REFTIME *pAvgTimePerFrame ); + [propget] HRESULT BitRate( [out] long *pBitRate ); + [propget] HRESULT BitErrorRate( [out] long *pBitErrorRate ); + [propget] HRESULT VideoWidth( [out] long *pVideoWidth ); + [propget] HRESULT VideoHeight( [out] long *pVideoHeight ); + [propput] HRESULT SourceLeft( [in] long SourceLeft ); + [propget] HRESULT SourceLeft( [out] long *pSourceLeft ); + [propput] HRESULT SourceWidth( [in] long SourceWidth ); + [propget] HRESULT SourceWidth( [out] long *pSourceWidth ); + [propput] HRESULT SourceTop( [in] long SourceTop ); + [propget] HRESULT SourceTop( [out] long *pSourceTop ); + [propput] HRESULT SourceHeight( [in] long SourceHeight ); + [propget] HRESULT SourceHeight( [out] long *pSourceHeight ); + [propput] HRESULT DestinationLeft( [in] long DestinationLeft ); + [propget] HRESULT DestinationLeft( [out] long *pDestinationLeft ); + [propput] HRESULT DestinationWidth( [in] long DestinationWidth ); + [propget] HRESULT DestinationWidth( [out] long *pDestinationWidth ); + [propput] HRESULT DestinationTop( [in] long DestinationTop ); + [propget] HRESULT DestinationTop( [out] long *pDestinationTop ); + [propput] HRESULT DestinationHeight( [in] long DestinationHeight ); + [propget] HRESULT DestinationHeight( [out] long *pDestinationHeight ); + HRESULT SetSourcePosition( [in] long Left, [in] long Top, [in] long Width, [in] long Height ); + HRESULT GetSourcePosition( [out] long *pLeft, [out] long *pTop, [out] long *pWidth, [out] long *pHeight ); + HRESULT SetDefaultSourcePosition(); + HRESULT SetDestinationPosition( [in] long Left, [in] long Top, [in] long Width, [in] long Height ); + HRESULT GetDestinationPosition( [out] long *pLeft, [out] long *pTop, [out] long *pWidth, [out] long *pHeight ); + HRESULT SetDefaultDestinationPosition(); + HRESULT GetVideoSize( [out] long *pWidth, [out] long *pHeight ); + HRESULT GetVideoPaletteEntries( [in] long StartIndex, + [in] long Entries, + [out] long *pRetrieved, + [out, size_is(Entries), length_is(*pRetrieved)] long *pPalette ); + HRESULT GetCurrentImage( [in, out] long *pBufferSize, + [out, size_is(*pBufferSize), length_is(*pBufferSize)] long *pDIBImage ); + HRESULT IsUsingDefaultSource(); + HRESULT IsUsingDefaultDestination(); +} + + +/***************************************************************************** + * IMediaEvent interface + */ +[ + object, + uuid(56a868b6-0ad4-11ce-b03a-0020af0ba770), + pointer_default(unique) +] +interface IMediaEvent : IDispatch +{ + HRESULT GetEventHandle( [out] OAEVENT *hEvent ); + HRESULT GetEvent( [out] long *lEventCode, [out] LONG_PTR *lParam1, [out] LONG_PTR *lParam2, [in] long msTimeout ); + HRESULT WaitForCompletion( [in] long msTimeout, [out] long *pEvCode ); + HRESULT CancelDefaultHandling( [in] long lEvCode ); + HRESULT RestoreDefaultHandling( [in] long lEvCode ); + HRESULT FreeEventParams( [in] long lEvCode, [in] LONG_PTR lParam1, [in] LONG_PTR lParam2 ); +} + + +/***************************************************************************** + * IMediaEventEx interface + */ +[ + object, + uuid(56a868c0-0ad4-11ce-b03a-0020af0ba770), + pointer_default(unique) +] +interface IMediaEventEx : IMediaEvent +{ + HRESULT SetNotifyWindow( [in] OAHWND hwnd, [in] long lMsg, [in] LONG_PTR lInstanceData ); + HRESULT SetNotifyFlags( [in] long lNoNotifyFlags ); + HRESULT GetNotifyFlags( [out] long *lplNoNotifyFlags ); +} diff --git a/include/uuids.h b/include/uuids.h index 9026446612e..bcd2a9658f5 100644 --- a/include/uuids.h +++ b/include/uuids.h @@ -271,11 +271,5 @@ OUR_GUID_ENTRY(CLSID_CameraControlPropertyPage, 0x71f96465, 0x78f3, 0x11d0, OUR_GUID_ENTRY(CLSID_AnalogVideoDecoderPropertyPage, 0x71f96466, 0x78f3, 0x11d0, 0xa1, 0x8c, 0x00, 0xa0, 0xc9, 0x11, 0x89, 0x56) OUR_GUID_ENTRY(CLSID_VideoStreamConfigPropertyPage, 0x71f96467, 0x78f3, 0x11d0, 0xa1, 0x8c, 0x00, 0xa0, 0xc9, 0x11, 0x89, 0x56) OUR_GUID_ENTRY(CLSID_HTMLDocument, 0x25336920, 0x03f9, 0x11cf, 0x8f, 0xd0, 0x00, 0xaa, 0x00, 0x68, 0x6f, 0x13) -OUR_GUID_ENTRY(IID_IMediaControl, 0x56a868b1, 0x0ad4, 0x11ce, 0xb0, 0x3a, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) -OUR_GUID_ENTRY(IID_IBasicVideo, 0x56a868b5, 0x0ad4, 0x11ce, 0xb0, 0x3a, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) -OUR_GUID_ENTRY(IID_IVideoWindow, 0x56a868b4, 0x0ad4, 0x11ce, 0xb0, 0x3a, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) -OUR_GUID_ENTRY(IID_IMediaEvent, 0x56a868b6, 0x0ad4, 0x11ce, 0xb0, 0x3a, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) -OUR_GUID_ENTRY(IID_IMediaEventEx, 0x56a868c0, 0x0ad4, 0x11ce, 0xb0, 0x3a, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) -OUR_GUID_ENTRY(IID_IBasicAudio, 0x56a868b3, 0x0ad4, 0x11ce, 0xb0, 0x3a, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70) #undef OUR_GUID_ENTRY