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