Stubbed some interfaces for the FilterGraph CLSID.
diff --git a/include/control.h b/include/control.h new file mode 100644 index 0000000..369c261 --- /dev/null +++ b/include/control.h
@@ -0,0 +1,345 @@ +/* + * 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__ + +#include "windef.h" +#include "wingdi.h" +#include "objbase.h" +#include "oleauto.h" + +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; +ICOM_DEFINE(IMediaControl,IDispatch) +#undef INTERFACE + +#ifdef ICOM_CINTERFACE +/*** 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; +ICOM_DEFINE(IBasicAudio,IDispatch) +#undef INTERFACE + +#ifdef ICOM_CINTERFACE +/*** 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; +ICOM_DEFINE(IBasicVideo,IDispatch) +#undef INTERFACE + +#ifdef ICOM_CINTERFACE +/*** 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; +ICOM_DEFINE(IVideoWindow,IDispatch) +#undef INTERFACE + +#ifdef ICOM_CINTERFACE +/*** 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; +ICOM_DEFINE(IMediaEvent,IDispatch) +#undef INTERFACE + +#ifdef ICOM_CINTERFACE +/*** 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; +ICOM_DEFINE(IMediaEventEx,IMediaEvent) +#undef INTERFACE + +#ifdef ICOM_CINTERFACE +/*** 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__ */