1/* 2 * Copyright (C) 2002 Lionel Ulmer 3 * Copyright (C) 2004 Alexandre Julliard 4 * 5 * This library is free software; you can redistribute it and/or 6 * modify it under the terms of the GNU Lesser General Public 7 * License as published by the Free Software Foundation; either 8 * version 2.1 of the License, or (at your option) any later version. 9 * 10 * This library is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 * Lesser General Public License for more details. 14 * 15 * You should have received a copy of the GNU Lesser General Public 16 * License along with this library; if not, write to the Free Software 17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 18 */ 19 20import "oaidl.idl"; 21 22[ 23 version(1.0), 24 uuid(56a868b0-0ad4-11ce-b03a-0020af0ba770) 25] 26library QuartzTypeLib 27{ 28 importlib("stdole2.tlb"); 29 30 typedef LONG OAFilterState; 31 typedef LONG_PTR OAHWND; 32 typedef LONG_PTR OAEVENT; 33 34 cpp_quote("#ifndef REFTIME_DEFINED") 35 cpp_quote("#define REFTIME_DEFINED") 36 typedef DOUBLE REFTIME; 37 cpp_quote("#endif") 38 39 /*************************************************************************** 40 * IMediaControl interface 41 */ 42 [ 43 object, 44 uuid(56a868b1-0ad4-11ce-b03a-0020af0ba770), 45 pointer_default(unique) 46 ] 47 interface IMediaControl : IDispatch 48 { 49 HRESULT Run(); 50 HRESULT Pause(); 51 HRESULT Stop(); 52 HRESULT GetState( [in] LONG msTimeout, [out] OAFilterState *pfs ); 53 HRESULT RenderFile( [in] BSTR strFilename ); 54 HRESULT AddSourceFilter( [in] BSTR strFilename, [out] IDispatch **ppUnk ); 55 [propget] HRESULT FilterCollection( [out] IDispatch **ppUnk ); 56 [propget] HRESULT RegFilterCollection( [out] IDispatch **ppUnk ); 57 HRESULT StopWhenReady(); 58 } 59 60 61 /*************************************************************************** 62 * IBasicAudio interface 63 */ 64 [ 65 object, 66 uuid(56a868b3-0ad4-11ce-b03a-0020af0ba770), 67 pointer_default(unique) 68 ] 69 interface IBasicAudio : IDispatch 70 { 71 [propput] HRESULT Volume( [in] LONG lVolume ); 72 [propget] HRESULT Volume( [out, retval] LONG *plVolume ); 73 [propput] HRESULT Balance( [in] LONG lBalance ); 74 [propget] HRESULT Balance( [out, retval] LONG *plBalance ); 75 } 76 77 78 /*************************************************************************** 79 * IVideoWindow interface 80 */ 81 [ 82 object, 83 uuid(56a868b4-0ad4-11ce-b03a-0020af0ba770), 84 pointer_default(unique) 85 ] 86 interface IVideoWindow : IDispatch 87 { 88 [propput] HRESULT Caption( [in] BSTR strCaption ); 89 [propget] HRESULT Caption( [out, retval] BSTR *strCaption ); 90 [propput] HRESULT WindowStyle( [in] LONG WindowStyle ); 91 [propget] HRESULT WindowStyle( [out, retval] LONG *WindowStyle ); 92 [propput] HRESULT WindowStyleEx( [in] LONG WindowStyleEx ); 93 [propget] HRESULT WindowStyleEx( [out, retval] LONG *WindowStyleEx ); 94 [propput] HRESULT AutoShow( [in] LONG AutoShow ); 95 [propget] HRESULT AutoShow( [out, retval] LONG *AutoShow ); 96 [propput] HRESULT WindowState( [in] LONG WindowState ); 97 [propget] HRESULT WindowState( [out, retval] LONG *WindowState ); 98 [propput] HRESULT BackgroundPalette( [in] LONG BackgroundPalette ); 99 [propget] HRESULT BackgroundPalette( [out, retval] LONG *pBackgroundPalette ); 100 [propput] HRESULT Visible( [in] LONG Visible ); 101 [propget] HRESULT Visible( [out, retval] LONG *pVisible ); 102 [propput] HRESULT Left( [in] LONG Left ); 103 [propget] HRESULT Left( [out, retval] LONG *pLeft ); 104 [propput] HRESULT Width( [in] LONG Width ); 105 [propget] HRESULT Width( [out, retval] LONG *pWidth ); 106 [propput] HRESULT Top( [in] LONG Top ); 107 [propget] HRESULT Top( [out, retval] LONG *pTop ); 108 [propput] HRESULT Height( [in] LONG Height ); 109 [propget] HRESULT Height( [out, retval] LONG *pHeight ); 110 [propput] HRESULT Owner( [in] OAHWND Owner ); 111 [propget] HRESULT Owner( [out, retval] OAHWND *Owner ); 112 [propput] HRESULT MessageDrain( [in] OAHWND Drain ); 113 [propget] HRESULT MessageDrain( [out, retval] OAHWND *Drain ); 114 [propget] HRESULT BorderColor( [out, retval] LONG *Color ); 115 [propput] HRESULT BorderColor( [in] LONG Color ); 116 [propget] HRESULT FullScreenMode( [out, retval] LONG *FullScreenMode ); 117 [propput] HRESULT FullScreenMode( [in] LONG FullScreenMode ); 118 HRESULT SetWindowForeground( [in] LONG Focus ); 119 HRESULT NotifyOwnerMessage( [in] OAHWND hwnd, [in] LONG uMsg, [in] LONG_PTR wParam, [in] LONG_PTR lParam ); 120 HRESULT SetWindowPosition( [in] LONG Left, [in] LONG Top, [in] LONG Width, [in] LONG Height ); 121 HRESULT GetWindowPosition( [out] LONG *pLeft, [out] LONG *pTop, [out] LONG *pWidth, [out] LONG *pHeight ); 122 HRESULT GetMinIdealImageSize( [out] LONG *pWidth, [out] LONG *pHeight ); 123 HRESULT GetMaxIdealImageSize( [out] LONG *pWidth, [out] LONG *pHeight ); 124 HRESULT GetRestorePosition( [out] LONG *pLeft, [out] LONG *pTop, [out] LONG *pWidth, [out] LONG *pHeight ); 125 HRESULT HideCursor( [in] LONG HideCursor ); 126 HRESULT IsCursorHidden( [out] LONG *CursorHidden ); 127 } 128 129 130 /*************************************************************************** 131 * IBasicVideo interface 132 */ 133 [ 134 object, 135 uuid(56a868b5-0ad4-11ce-b03a-0020af0ba770), 136 pointer_default(unique) 137 ] 138 interface IBasicVideo : IDispatch 139 { 140 [propget] HRESULT AvgTimePerFrame( [out, retval] REFTIME *pAvgTimePerFrame ); 141 [propget] HRESULT BitRate( [out, retval] LONG *pBitRate ); 142 [propget] HRESULT BitErrorRate( [out, retval] LONG *pBitErrorRate ); 143 [propget] HRESULT VideoWidth( [out, retval] LONG *pVideoWidth ); 144 [propget] HRESULT VideoHeight( [out, retval] LONG *pVideoHeight ); 145 [propput] HRESULT SourceLeft( [in] LONG SourceLeft ); 146 [propget] HRESULT SourceLeft( [out, retval] LONG *pSourceLeft ); 147 [propput] HRESULT SourceWidth( [in] LONG SourceWidth ); 148 [propget] HRESULT SourceWidth( [out, retval] LONG *pSourceWidth ); 149 [propput] HRESULT SourceTop( [in] LONG SourceTop ); 150 [propget] HRESULT SourceTop( [out, retval] LONG *pSourceTop ); 151 [propput] HRESULT SourceHeight( [in] LONG SourceHeight ); 152 [propget] HRESULT SourceHeight( [out, retval] LONG *pSourceHeight ); 153 [propput] HRESULT DestinationLeft( [in] LONG DestinationLeft ); 154 [propget] HRESULT DestinationLeft( [out, retval] LONG *pDestinationLeft ); 155 [propput] HRESULT DestinationWidth( [in] LONG DestinationWidth ); 156 [propget] HRESULT DestinationWidth( [out, retval] LONG *pDestinationWidth ); 157 [propput] HRESULT DestinationTop( [in] LONG DestinationTop ); 158 [propget] HRESULT DestinationTop( [out, retval] LONG *pDestinationTop ); 159 [propput] HRESULT DestinationHeight( [in] LONG DestinationHeight ); 160 [propget] HRESULT DestinationHeight( [out, retval] LONG *pDestinationHeight ); 161 HRESULT SetSourcePosition( [in] LONG Left, [in] LONG Top, [in] LONG Width, [in] LONG Height ); 162 HRESULT GetSourcePosition( [out] LONG *pLeft, [out] LONG *pTop, [out] LONG *pWidth, [out] LONG *pHeight ); 163 HRESULT SetDefaultSourcePosition(); 164 HRESULT SetDestinationPosition( [in] LONG Left, [in] LONG Top, [in] LONG Width, [in] LONG Height ); 165 HRESULT GetDestinationPosition( [out] LONG *pLeft, [out] LONG *pTop, [out] LONG *pWidth, [out] LONG *pHeight ); 166 HRESULT SetDefaultDestinationPosition(); 167 HRESULT GetVideoSize( [out] LONG *pWidth, [out] LONG *pHeight ); 168 HRESULT GetVideoPaletteEntries( [in] LONG StartIndex, 169 [in] LONG Entries, 170 [out] LONG *pRetrieved, 171 [out, size_is(Entries), length_is(*pRetrieved)] LONG *pPalette ); 172 HRESULT GetCurrentImage( [in, out] LONG *pBufferSize, 173 [out, size_is(*pBufferSize), length_is(*pBufferSize)] LONG *pDIBImage ); 174 HRESULT IsUsingDefaultSource(); 175 HRESULT IsUsingDefaultDestination(); 176 } 177 178 [ 179 uuid(329bb360-f6ea-11d1-9038-00a0c9697298), 180 helpstring("IBasicVideo2"), 181 odl 182 ] 183 184 interface IBasicVideo2 : IBasicVideo 185 { 186 HRESULT GetPreferredAspectRatio([out] LONG *plAspectX, [out] LONG *plAspectY); 187 } 188 189 190 /*************************************************************************** 191 * IMediaEvent interface 192 */ 193 [ 194 object, 195 uuid(56a868b6-0ad4-11ce-b03a-0020af0ba770), 196 pointer_default(unique) 197 ] 198 interface IMediaEvent : IDispatch 199 { 200 HRESULT GetEventHandle( [out] OAEVENT *hEvent ); 201 HRESULT GetEvent( [out] LONG *lEventCode, [out] LONG_PTR *lParam1, [out] LONG_PTR *lParam2, [in] LONG msTimeout ); 202 HRESULT WaitForCompletion( [in] LONG msTimeout, [out] LONG *pEvCode ); 203 HRESULT CancelDefaultHandling( [in] LONG lEvCode ); 204 HRESULT RestoreDefaultHandling( [in] LONG lEvCode ); 205 HRESULT FreeEventParams( [in] LONG lEvCode, [in] LONG_PTR lParam1, [in] LONG_PTR lParam2 ); 206 } 207 208 209 /*************************************************************************** 210 * IMediaEventEx interface 211 */ 212 [ 213 object, 214 uuid(56a868c0-0ad4-11ce-b03a-0020af0ba770), 215 pointer_default(unique) 216 ] 217 interface IMediaEventEx : IMediaEvent 218 { 219 HRESULT SetNotifyWindow( [in] OAHWND hwnd, [in] LONG lMsg, [in] LONG_PTR lInstanceData ); 220 HRESULT SetNotifyFlags( [in] LONG lNoNotifyFlags ); 221 HRESULT GetNotifyFlags( [out] LONG *lplNoNotifyFlags ); 222 } 223 224 225 /*************************************************************************** 226 * IMediaPosition interface 227 */ 228 [ 229 object, 230 uuid(56a868b2-0ad4-11ce-b03a-0020af0ba770), 231 pointer_default(unique) 232 ] 233 interface IMediaPosition : IDispatch 234 { 235 HRESULT get_Duration( [out] REFTIME *plength ); 236 HRESULT put_CurrentPosition( [in] REFTIME llTime ); 237 HRESULT get_CurrentPosition( [out] REFTIME *pllTime ); 238 HRESULT get_StopTime( [out] REFTIME *pllTime ); 239 HRESULT put_StopTime( [in] REFTIME llTime ); 240 HRESULT get_PrerollTime( [out] REFTIME *pllTime ); 241 HRESULT put_PrerollTime( [in] REFTIME llTime ); 242 HRESULT put_Rate( [in] double dRate ); 243 HRESULT get_Rate( [out] double *pdRate ); 244 HRESULT CanSeekForward( [out] LONG *pCanSeekForward ); 245 HRESULT CanSeekBackward( [out] LONG *pCanSeekBackward ); 246 } 247 248} /* library QuartzTypeLib */ 249