2 * Copyright (C) 2002 Lionel Ulmer
3 * Copyright (C) 2004 Alexandre Julliard
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.
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.
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
24 uuid(56a868b0
-0ad4
-11ce
-b03a
-0020af0ba770
)
28 importlib
("stdole2.tlb");
30 typedef LONG OAFilterState
;
31 typedef LONG_PTR OAHWND
;
32 typedef LONG_PTR OAEVENT
;
34 cpp_quote
("#ifndef REFTIME_DEFINED")
35 cpp_quote
("#define REFTIME_DEFINED")
36 typedef DOUBLE REFTIME
;
39 /***************************************************************************
40 * IMediaControl interface
44 uuid(56a868b1
-0ad4
-11ce
-b03a
-0020af0ba770
),
45 pointer_default(unique)
47 interface IMediaControl
: IDispatch
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
();
61 /***************************************************************************
62 * IBasicAudio interface
66 uuid(56a868b3
-0ad4
-11ce
-b03a
-0020af0ba770
),
67 pointer_default(unique)
69 interface IBasicAudio
: IDispatch
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
);
78 /***************************************************************************
79 * IVideoWindow interface
83 uuid(56a868b4
-0ad4
-11ce
-b03a
-0020af0ba770
),
84 pointer_default(unique)
86 interface IVideoWindow
: IDispatch
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
);
130 /***************************************************************************
131 * IBasicVideo interface
135 uuid(56a868b5
-0ad4
-11ce
-b03a
-0020af0ba770
),
136 pointer_default(unique)
138 interface IBasicVideo
: IDispatch
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
,
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
();
179 uuid(329bb360
-f6ea
-11d1
-9038-00a0c9697298
),
180 helpstring("IBasicVideo2"),
184 interface IBasicVideo2
: IBasicVideo
186 HRESULT GetPreferredAspectRatio
([out] LONG *plAspectX
, [out] LONG *plAspectY
);
190 /***************************************************************************
191 * IMediaEvent interface
195 uuid(56a868b6
-0ad4
-11ce
-b03a
-0020af0ba770
),
196 pointer_default(unique)
198 interface IMediaEvent
: IDispatch
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
);
209 /***************************************************************************
210 * IMediaEventEx interface
214 uuid(56a868c0
-0ad4
-11ce
-b03a
-0020af0ba770
),
215 pointer_default(unique)
217 interface IMediaEventEx
: IMediaEvent
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
);
225 /***************************************************************************
226 * IMediaPosition interface
230 uuid(56a868b2
-0ad4
-11ce
-b03a
-0020af0ba770
),
231 pointer_default(unique)
233 interface IMediaPosition
: IDispatch
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
);
248 } /* library QuartzTypeLib */