]> git.sesse.net Git - vlc/blob - projects/activex/axvlc.idl
4a2371bb304e11de8b14a70a363dc292948e8aca
[vlc] / projects / activex / axvlc.idl
1 /*****************************************************************************\r
2  * axvlc.idl: ActiveX control for VLC\r
3  *****************************************************************************\r
4  * Copyright (C) 2006 the VideoLAN team\r
5  * Copyright (C) 2010 M2X BV\r
6  *\r
7  * Authors: Damien Fouilleul <Damien.Fouilleul@laposte.net>\r
8  *          Jean-Paul Saman <jpsaman _at_ m2x _dot_ nl>\r
9  *\r
10  * This program is free software; you can redistribute it and/or modify\r
11  * it under the terms of the GNU General Public License as published by\r
12  * the Free Software Foundation; either version 2 of the License, or\r
13  * (at your option) any later version.\r
14  *\r
15  * This program is distributed in the hope that it will be useful,\r
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
18  * GNU General Public License for more details.\r
19  *\r
20  * You should have received a copy of the GNU General Public License\r
21  * along with this program; if not, write to the Free Software\r
22  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.\r
23  *****************************************************************************/\r
24 \r
25 // comments terminated by [t] are by tonsofpcs, regarding the string\r
26 // review. April 02, 2006. [t]\r
27 // Possibly change all instances of "the current playlist" to "the\r
28 // playlist" and "current playlist" to "the playlist" [t]\r
29 \r
30 import "ocidl.idl";\r
31 \r
32 [\r
33   uuid(DF2BBE39-40A8-433b-A279-073F48DA94B6),\r
34   version(1.0),\r
35   helpstring("VideoLAN VLC ActiveX Plugin")\r
36 ]\r
37 library AXVLC\r
38 {\r
39     // Forward declare all types defined in this typelib\r
40     interface IVLCControl;\r
41     interface IVLCAudio;\r
42     interface IVLCInput;\r
43     interface IVLCLogo;\r
44     interface IVLCMarquee;\r
45     interface IVLCPlaylist;\r
46     interface IVLCSubtitle;\r
47     interface IVLCVideo;\r
48     interface IVLCControl2;\r
49     dispinterface DVLCEvents;\r
50 \r
51     importlib("stdole2.tlb");\r
52 \r
53     typedef [public] enum VLCPlaylistMode\r
54     {\r
55         VLCPlayListInsert       =  1,\r
56         VLCPlayListInsertAndGo  =  9,\r
57         VLCPlayListReplace      =  2,\r
58         VLCPlayListReplaceAndGo = 10,\r
59         VLCPlayListAppend       =  4,\r
60         VLCPlayListAppendAndGo  = 12,\r
61         VLCPlayListCheckInsert  = 16\r
62     } eVLCPlaylistMode;\r
63 \r
64     // playlist target position\r
65     const int VLCPlayListEnd    = -666;\r
66 \r
67     // DISPID definitions\r
68     const int DISPID_BackColor  = -501;\r
69 \r
70     const int DISPID_Visible    = 100;\r
71     const int DISPID_Playing    = 101;\r
72     const int DISPID_Position   = 102;\r
73     const int DISPID_Time       = 103;\r
74     const int DISPID_Length     = 104;\r
75     const int DISPID_Volume     = 105;\r
76     const int DISPID_MRL        = 106;\r
77     const int DISPID_AutoPlay   = 107;\r
78     const int DISPID_AutoLoop   = 108;\r
79     const int DISPID_StartTime  = 109;\r
80     const int DISPID_BaseURL    = 110;\r
81     const int DISPID_Toolbar     = 111;\r
82 \r
83     [\r
84       odl,\r
85       uuid(C2FA41D0-B113-476e-AC8C-9BD14999C1C1),\r
86       helpstring("VLC Control (deprecated)"),\r
87       dual,\r
88       oleautomation\r
89     ]\r
90     interface IVLCControl : IDispatch\r
91     {\r
92         [id(DISPID_Visible), propget, bindable, helpstring("Returns/sets a value that determines whether viewing area is visible or hidden.")]\r
93         HRESULT Visible([out, retval] VARIANT_BOOL* visible);\r
94         [id(DISPID_Visible), propput, bindable, helpstring("Returns/sets a value that determines whether viewing area is visible or hidden.")]\r
95         HRESULT Visible([in] VARIANT_BOOL visible);\r
96         [helpstring("Play current target in playlist.")]\r
97         HRESULT play();\r
98         [helpstring("Pause playback.")]\r
99         HRESULT pause();\r
100         [helpstring("Stop playback.")]\r
101         HRESULT stop();\r
102         [id(DISPID_Playing), hidden, propget, helpstring("Returns a value that determines whether VLC is currently playing.")]\r
103         HRESULT Playing([out, retval] VARIANT_BOOL* isPlaying);\r
104         [id(DISPID_Position), propget, helpstring("Returns/sets playback position within the current item. Position is a relative value ranging from 0.0 to 1.0.")]\r
105         HRESULT Position([out, retval] float* position);\r
106         [id(DISPID_Position), propput, helpstring("Returns/sets playback position within the current item. Position is a relative value ranging from 0.0 to 1.0.")]\r
107         HRESULT Position([in] float position);\r
108         [id(DISPID_Time), propget, helpstring("Returns/sets playback time relative to the start of the current item.")]\r
109         HRESULT Time([out, retval] int* seconds);\r
110         [id(DISPID_Time), propput, helpstring("Returns/sets playback time relative to the start of the current item.")]\r
111         HRESULT Time([in] int seconds);\r
112         [helpstring("Advance or backtrack playback time, relative to current time.")]  //possibly find a better word to replace 'backtrack' [t]\r
113         HRESULT shuttle([in] int seconds);\r
114         [helpstring("Switch video between normal and fullscreen view modes.")]\r
115         HRESULT fullscreen();\r
116         [id(DISPID_Length), propget, hidden, helpstring("Returns the total length, in seconds, of the current item, may be unknown.")]\r
117         HRESULT Length([out, retval] int* seconds);\r
118         [helpstring("Increases playback speed. Possible speeds are: 1x, 2x, 4x, 8x.")]\r
119         HRESULT playFaster();\r
120         [helpstring("Decreases playback speed. Possible speeds are: 1x, 2x, 4x, 8x.")]\r
121         HRESULT playSlower();\r
122         [id(DISPID_Volume), propget, helpstring("Returns/sets playback volume, ranges from 0 to 200%.")]  //possibly remove % from 'ranges', change to 'values', and specify that 200 is equivilant to 200% (remember, 200% == 2.0, but this gets an int not a float) [t]\r
123         HRESULT Volume([out, retval] int* volume);\r
124         [id(DISPID_Volume), propput, helpstring("Returns/sets playback volume, ranges from 0 to 200%.")]\r
125         HRESULT Volume([in] int volume);\r
126         [helpstring("Mute/unmute playback audio.")]\r
127         HRESULT toggleMute();\r
128         [helpstring("Sets the value of a VLC variable.")]\r
129         HRESULT setVariable([in] BSTR name, [in] VARIANT value);\r
130         [helpstring("Returns the value of a VLC variable.")]\r
131         HRESULT getVariable([in] BSTR name, [out, retval] VARIANT *value);\r
132 \r
133 /*\r
134 ** use VARIANT rather than a SAFEARRAY as argument type\r
135 ** for compatibility with some scripting language (JScript)\r
136 */\r
137 \r
138         [helpstring("Add an item to the playlist.")]\r
139         HRESULT addTarget([in] BSTR uri, [in] VARIANT options, [in] enum VLCPlaylistMode mode, [in] int position);\r
140         [propget, helpstring("Returns index of current item in playlist.")]\r
141         HRESULT PlaylistIndex([out, retval] int* index);\r
142         [propget, helpstring("Returns number of items in playlist.")]\r
143         HRESULT PlaylistCount([out, retval] int* index);\r
144         [helpstring("Advance to next item in playlist.")]\r
145         HRESULT playlistNext();\r
146         [helpstring("Advance to previous item in playlist.")]\r
147         HRESULT playlistPrev();\r
148         [helpstring("Remove all items from playlist.")]\r
149         HRESULT playlistClear();\r
150         [propget, hidden, helpstring("Returns VLC Version.")]\r
151         HRESULT VersionInfo([out, retval] BSTR* version);\r
152         [id(DISPID_MRL), propget, helpstring("Returns/sets the first MRL in playlist, used for AutoPlay")]\r
153         HRESULT MRL([out, retval] BSTR* mrl);\r
154         [id(DISPID_MRL), propput, helpstring("Returns/sets the first MRL in playlist, used for AutoPlay")]\r
155         HRESULT MRL([in] BSTR mrl);\r
156         [id(DISPID_AutoPlay), propget, helpstring("Returns/sets a value that determines whether the playlist is played on startup")]\r
157         HRESULT AutoPlay([out, retval] VARIANT_BOOL* autoplay);\r
158         [id(DISPID_AutoPlay), propput, helpstring("Returns/Sets a value that determines whether the playlist is played on startup")]\r
159         HRESULT AutoPlay([in] VARIANT_BOOL autoplay);\r
160         [id(DISPID_AutoLoop), propget, helpstring("Returns/sets a value that determines whether the playlist is looped")]\r
161         HRESULT AutoLoop([out, retval] VARIANT_BOOL* autoloop);\r
162         [id(DISPID_AutoLoop), propput, helpstring("Returns/sets a value that determines whether the playlist is looped")]\r
163         HRESULT AutoLoop([in] VARIANT_BOOL autoloop);\r
164     };\r
165 \r
166     const int DISPID_PlayEvent  = 100;\r
167     const int DISPID_PauseEvent = 101;\r
168     const int DISPID_StopEvent  = 102;\r
169 \r
170     [\r
171       uuid(DF48072F-5EF8-434e-9B40-E2F3AE759B5F),\r
172       helpstring("Event interface for VLC control"),\r
173     ]\r
174     dispinterface DVLCEvents\r
175     {\r
176         properties:\r
177         methods:\r
178             [id(DISPID_PlayEvent), helpstring("Playing")]\r
179             void play();\r
180             [id(DISPID_PauseEvent), helpstring("Paused")]\r
181             void pause();\r
182             [id(DISPID_StopEvent), helpstring("Stopped")]\r
183             void stop();\r
184     };\r
185 \r
186     [\r
187       odl,\r
188       uuid(9E0BD17B-2D3C-4656-B94D-03084F3FD9D4),\r
189       helpstring("VLC Audio APIs"),\r
190       dual,\r
191       oleautomation\r
192     ]\r
193     interface IVLCAudio : IDispatch\r
194     {\r
195         [propget, helpstring("Returns/sets the audio mute state.")]\r
196         HRESULT mute([out, retval] VARIANT_BOOL* muted);\r
197         [propput, helpstring("Returns/sets the audio mute state.")]\r
198         HRESULT mute([in] VARIANT_BOOL muted);\r
199 \r
200         [propget, helpstring("Returns/sets audio volume as a percent value.")]\r
201         HRESULT volume([out, retval] long* volume);\r
202         [propput, helpstring("Returns/sets audio volume as a percent value.")]\r
203         HRESULT volume([in] long volume);\r
204 \r
205         [helpstring("Mute/unmute audio playback.")]\r
206         HRESULT toggleMute();\r
207 \r
208         [propget, helpstring("Returns/sets audio track used/to use.")]\r
209         HRESULT track([out, retval] long* track);\r
210         [propput, helpstring("Returns/sets audio track used/to use.")]\r
211         HRESULT track([in] long track);\r
212 \r
213         [propget, helpstring("Returns the number of audio tracks available.")]\r
214         HRESULT count([out, retval] long* trackNumber);\r
215         [helpstring("Returns audio track name.")]\r
216         HRESULT description([in] long trackID, [out, retval] BSTR* name);\r
217 \r
218         [propget, helpstring("Returns audio channel [1-5] indicating; stereo, reverse stereo, left, right, dolby.")]\r
219         HRESULT channel([out, retval] long* channel);\r
220         [propput, helpstring("Sets audio channel to [1-5] indicating; stereo, reverse stereo, left, right, dolby.")]\r
221         HRESULT channel([in] long channel);\r
222     };\r
223 \r
224     [\r
225       odl,\r
226       uuid(49E0DBD1-9440-466C-9C97-95C67190C603),\r
227       helpstring("VLC Input APIs"),\r
228       dual,\r
229       oleautomation\r
230     ]\r
231     interface IVLCInput : IDispatch\r
232     {\r
233         [propget, helpstring("Returns the clip length, in milliseconds.")]\r
234         HRESULT length([out, retval] double* length);\r
235 \r
236         [propget, helpstring("Returns/sets playback position in current clip.  Position is ranging from 0.0 to 1.0.")]\r
237         HRESULT position([out, retval] double* position);\r
238         [propput, helpstring("Returns/sets playback position in the current clip.  Position ranging from 0.0 to 1.0.")]\r
239         HRESULT position([in] double position);\r
240 \r
241         [propget, helpstring("Returns/sets playback time in current clip, in milliseconds.")]\r
242         HRESULT time([out, retval] double* time);\r
243         [propput, helpstring("Returns/sets playback time in the current clip, in milliseconds.")]\r
244         HRESULT time([in] double time);\r
245 \r
246         [propget, helpstring("Returns current playback state.")]\r
247         HRESULT state([out, retval] long* state);\r
248 \r
249         [propget, helpstring("Returns/sets current playback rate, normal rate is 1.0 ")]\r
250         HRESULT rate([out, retval] double* rate);\r
251         [propput, helpstring("Returns/sets current playback rate, normal rate is 1.0.")]\r
252         HRESULT rate([in] double rate);\r
253 \r
254         [propget, helpstring("Returns current playback frames per seconds if available.")]\r
255         HRESULT fps([out, retval] double* fps);\r
256 \r
257         [propget, helpstring("Returns whether current playback displays video.")]\r
258         HRESULT hasVout([out, retval] VARIANT_BOOL* hasVout);\r
259     };\r
260 \r
261     [\r
262       odl,\r
263       uuid(FD37FE32-82BC-4A25-B056-315F4DBB194D),\r
264       helpstring("VLC Playlist Items collection"),\r
265       dual,\r
266       oleautomation\r
267     ]\r
268     interface IVLCPlaylistItems : IDispatch\r
269     {\r
270         [propget, helpstring("Returns number of items in playlist.")]\r
271         HRESULT count([out, retval] long* count);\r
272 \r
273         [helpstring("Remove all items from playlist.")]\r
274         HRESULT clear();\r
275 \r
276         [helpstring("remove item from playlist.")]\r
277         HRESULT remove([in] long itemId);\r
278     };\r
279 \r
280     [\r
281       odl,\r
282       uuid(54613049-40BF-4035-9E70-0A9312C0188D),\r
283       helpstring("VLC Playlist APIs"),\r
284       dual,\r
285       oleautomation\r
286     ]\r
287     interface IVLCPlaylist : IDispatch\r
288     {\r
289         [hidden, propget, helpstring("Returns number of items in playlist. (deprecated)")]\r
290         HRESULT itemCount([out, retval] long* count);\r
291 \r
292         [propget, helpstring("Returns whether playback displays video.")]\r
293         HRESULT isPlaying([out, retval] VARIANT_BOOL* playing);\r
294 \r
295         [helpstring("Add a playlist item.")]\r
296         HRESULT add([in] BSTR uri, [in, optional] VARIANT name, [in, optional] VARIANT options, [out, retval] long* itemId);\r
297 \r
298         [helpstring("Play/Resume the playlist.")]\r
299         HRESULT play();\r
300 \r
301         [helpstring("Play item in playlist.")]\r
302         HRESULT playItem([in] long itemId);\r
303 \r
304         [helpstring("Play/Pause current clip.")]\r
305         HRESULT togglePause();\r
306 \r
307         [helpstring("Stop current clip.")]\r
308         HRESULT stop();\r
309 \r
310         [helpstring("Advance to next item in playlist.")]\r
311         HRESULT next();\r
312 \r
313         [helpstring("Advance to previous item in playlist.")]\r
314         HRESULT prev();\r
315 \r
316         [hidden, helpstring("Remove all items from playlist. (deprecated)")]\r
317         HRESULT clear();\r
318 \r
319         [hidden, helpstring("Remove item from playlist. (deprecated)")]\r
320         HRESULT removeItem([in] long item);\r
321 \r
322         [propget, helpstring("Returns the playlist items collection object.")]\r
323         HRESULT items([out, retval] IVLCPlaylistItems** obj);\r
324     };\r
325 \r
326     [\r
327       odl,\r
328       uuid(465E787A-0556-452F-9477-954E4A940003),\r
329       helpstring("VLC Subtitle APIs"),\r
330       dual,\r
331       oleautomation\r
332     ]\r
333     interface IVLCSubtitle : IDispatch\r
334     {\r
335         [propget, helpstring("Returns video subtitle used.")]\r
336         HRESULT track([out, retval] long* spu);\r
337         [propput, helpstring("Sets video subtitle to use.")]\r
338         HRESULT track([in] long spu);\r
339 \r
340         [propget, helpstring("Returns the number of video subtitles available.")]\r
341         HRESULT count([out, retval] long* spuNumber);\r
342         [helpstring("Returns video subtitle name.")]\r
343         HRESULT description([in] long nameID, [out, retval] BSTR* name);\r
344     };\r
345 \r
346     [\r
347       odl,\r
348       uuid(8D076AD6-9B6F-4150-A0FD-5D7E8C8CB02C),\r
349       helpstring("VLC Marquee Filter"),\r
350       dual,\r
351       oleautomation\r
352     ]\r
353     interface IVLCMarquee : IDispatch\r
354     {\r
355         [helpstring("enable Marquee Filter.")]\r
356         HRESULT enable();\r
357         [helpstring("disable Marquee Filter.")]\r
358         HRESULT disable();\r
359 \r
360         [propget, helpstring("Retrieve marquee text.")]\r
361         HRESULT text([out, retval] BSTR* val);\r
362         [propput, helpstring("Change marquee text.")]\r
363         HRESULT text([in] BSTR val);\r
364 \r
365         [propget, helpstring("Retrieve text color.")]\r
366         HRESULT color([out, retval] LONG* val);\r
367         [propput, helpstring("Change text color.")]\r
368         HRESULT color([in] LONG val);\r
369         [propget, helpstring("Retrieve text opacity.")]\r
370         HRESULT opacity([out, retval] LONG* val);\r
371         [propput, helpstring("Set text opacity (0=transparent, 255=opaque).")]\r
372         HRESULT opacity([in] LONG val);\r
373         [propget, helpstring("Retrieve text position.")]\r
374         HRESULT position([out, retval] BSTR* val);\r
375         [propput, helpstring("Text positioning relative to: center, left, right, top, bottom, top-left, top-right, bottom-left, bottom-right.")]\r
376         HRESULT position([in] BSTR val);\r
377         [propget, helpstring("Retrieve text refresh time.")]\r
378         HRESULT refresh([out, retval] LONG* val);\r
379         [propput, helpstring("Set text refresh time.")]\r
380         HRESULT refresh([in] LONG val);\r
381         [propget, helpstring("Retrieve text size.")]\r
382         HRESULT size([out, retval] LONG* val);\r
383         [propput, helpstring("Set text size.")]\r
384         HRESULT size([in] LONG val);\r
385         [propget, helpstring("Retrieve timeout.")]\r
386         HRESULT timeout([out, retval] LONG* val);\r
387         [propput, helpstring("Change timeout.")]\r
388         HRESULT timeout([in] LONG val);\r
389         [propget, helpstring("Retrieve text abcissa.")]\r
390         HRESULT x([out, retval] LONG* val);\r
391         [propput, helpstring("Change text abcissa.")]\r
392         HRESULT x([in] LONG val);\r
393         [propget, helpstring("Retrieve text ordinate.")]\r
394         HRESULT y([out, retval] LONG* val);\r
395         [propput, helpstring("Change text ordinate.")]\r
396         HRESULT y([in] LONG val);\r
397     };\r
398 \r
399     [\r
400       odl,\r
401       uuid(8a4a20c2-93f3-44e8-8644-beb2e3487e84),\r
402       helpstring("VLC Logo Filter"),\r
403       dual,\r
404       oleautomation\r
405     ]\r
406     interface IVLCLogo : IDispatch\r
407     {\r
408         [helpstring("Enable the logo filter.")]\r
409         HRESULT enable();\r
410         [helpstring("Disable the logo filter.")]\r
411         HRESULT disable();\r
412 \r
413         [helpstring("specify input file[[,delay],alpha].")]\r
414         HRESULT file([in] BSTR fname);\r
415 \r
416         [propget, helpstring("")]\r
417         HRESULT delay([out, retval] long* val);\r
418         [propput, helpstring("Set delay-to-next-picture in miliseconds.")]\r
419         HRESULT delay([in] long val);\r
420 \r
421         [propget, helpstring("")]\r
422         HRESULT repeat([out, retval] long* val);\r
423         [propput, helpstring("Repeat: -1 continuous (default), 0 no repeat, ....")]\r
424         HRESULT repeat([in] long val);\r
425 \r
426         [propget, helpstring("Returns the `global' alpha value.")]\r
427         HRESULT opacity([out, retval] long* val);\r
428         [propput, helpstring("Alpha value: 0 opaque to 255 fully transparent")]\r
429         HRESULT opacity([in] long val);\r
430 \r
431         [propget, helpstring("Retrieve picture position.")]\r
432         HRESULT position([out, retval] BSTR* val);\r
433         [propput, helpstring("Picture positioning relative to: center, left, right, top, bottom, top-left, top-right, bottom-left, bottom-right.")]\r
434         HRESULT position([in] BSTR val);\r
435 \r
436         [propget, helpstring("Picture x offset.")]\r
437         HRESULT x([out, retval] long* val);\r
438         [propput, helpstring("Picture x offset.")]\r
439         HRESULT x([in] long val);\r
440         [propget, helpstring("Picture y offset.")]\r
441         HRESULT y([out, retval] long* val);\r
442         [propput, helpstring("Picture y offset.")]\r
443         HRESULT y([in] long val);\r
444 \r
445     };\r
446 \r
447     [\r
448       odl,\r
449       uuid(0AAEDF0B-D333-4B27-A0C6-BBF31413A42E),\r
450       helpstring("VLC Video APIs"),\r
451       dual,\r
452       oleautomation\r
453     ]\r
454     interface IVLCVideo : IDispatch\r
455     {\r
456         [propget, helpstring("Returns/sets the fullscreen state.")]\r
457         HRESULT fullscreen([out, retval] VARIANT_BOOL* fullscreen);\r
458 \r
459         [propput, helpstring("Returns/sets the fullscreen state.")]\r
460         HRESULT fullscreen([in] VARIANT_BOOL fullscreen);\r
461 \r
462         [propget, helpstring("Returns video original width.")]\r
463         HRESULT width([out, retval] long* width);\r
464 \r
465         [propget, helpstring("Returns video original height.")]\r
466         HRESULT height([out, retval] long* height);\r
467 \r
468         [propget, helpstring("Returns video aspect ratio.")]\r
469         HRESULT aspectRatio([out, retval] BSTR* aspect);\r
470         [propput, helpstring("Sets video aspect ratio.")]\r
471         HRESULT aspectRatio([in] BSTR aspect);\r
472 \r
473         [propget, helpstring("Returns video subtitle used.")]\r
474         HRESULT subtitle([out, retval] long* spu);\r
475         [propput, helpstring("Sets video subtitle to use.")]\r
476         HRESULT subtitle([in] long spu);\r
477 \r
478         [propget, helpstring("Returns crop filter geometry.")]\r
479         HRESULT crop([out, retval] BSTR* geometry);\r
480         [propput, helpstring("Sets crop filter geometry.")]\r
481         HRESULT crop([in] BSTR geometry);\r
482 \r
483         [propget, helpstring("Returns teletext page used.")]\r
484         HRESULT teletext([out, retval] long* page);\r
485         [propput, helpstring("Sets teletext page to use.")]\r
486         HRESULT teletext([in] long page);\r
487 \r
488         [helpstring("Enable deinterlace filter.")]\r
489         HRESULT deinterlaceEnable([in] BSTR mode);\r
490         [helpstring("Disable deinterlace filter.")]\r
491         HRESULT deinterlaceDisable();\r
492 \r
493         [helpstring("toggle fullscreen/windowed state.")]\r
494         HRESULT toggleFullscreen();\r
495 \r
496         [helpstring("take video snapshot and save it into picture object.")]\r
497         HRESULT takeSnapshot([out, retval] IPictureDisp** picture);\r
498 \r
499         [helpstring("toggle teletext transparent state.")]\r
500         HRESULT toggleTeletext();\r
501 \r
502         [propget, helpstring("Returns the marquee object.")]\r
503         HRESULT marquee([out, retval] IVLCMarquee** obj);\r
504 \r
505         [propget, helpstring("Returns the logo object.")]\r
506         HRESULT logo([out, retval] IVLCLogo** obj);\r
507     };\r
508 \r
509     [\r
510       odl,\r
511       uuid(2D719729-5333-406C-BF12-8DE787FD65E3),\r
512       helpstring("VLC Control"),\r
513       dual,\r
514       oleautomation\r
515     ]\r
516     interface IVLCControl2 : IDispatch\r
517     {\r
518         [id(DISPID_AutoLoop), propget, helpstring("Returns/sets a value that determines whether the playlist is looped")]\r
519         HRESULT AutoLoop([out, retval] VARIANT_BOOL* autoloop);\r
520         [id(DISPID_AutoLoop), propput, helpstring("Returns/sets a value that determines whether the playlist is looped")]\r
521         HRESULT AutoLoop([in] VARIANT_BOOL autoloop);\r
522 \r
523         [id(DISPID_AutoPlay), propget, helpstring("Returns/sets a value that determines whether the playlist is played on startup")]\r
524         HRESULT AutoPlay([out, retval] VARIANT_BOOL* autoplay);\r
525         [id(DISPID_AutoPlay), propput, helpstring("Returns/Sets a value that determines whether the playlist is played on startup")]\r
526         HRESULT AutoPlay([in] VARIANT_BOOL autoplay);\r
527 \r
528         [id(DISPID_BaseURL), propget, helpstring("Returns/sets the base URL for relative paths")]\r
529         HRESULT BaseURL([out, retval] BSTR* url);\r
530         [id(DISPID_BaseURL), propput, helpstring("Returns/sets the base URL for relative paths")]\r
531         HRESULT BaseURL([in] BSTR url);\r
532 \r
533         [id(DISPID_StartTime), propget, helpstring("Returns/sets playback start time of URL.")]\r
534         HRESULT StartTime([out, retval] long* seconds);\r
535         [id(DISPID_StartTime), propput, helpstring("Returns/sets playback start time of URL.")]\r
536         HRESULT StartTime([in] long seconds);\r
537 \r
538         [id(DISPID_MRL), propget, helpstring("Returns/sets the default MRL in playlist")]\r
539         HRESULT MRL([out, retval] BSTR* mrl);\r
540         [id(DISPID_MRL), propput, helpstring("Returns/sets the default MRL in playlist")]\r
541         HRESULT MRL([in] BSTR mrl);\r
542 \r
543         [propget, helpstring("Returns VLC Version.")]\r
544         HRESULT VersionInfo([out, retval] BSTR* version);\r
545 \r
546         [id(DISPID_Visible), propget, helpstring("Returns/sets a value that determines whether viewing area is visible or hidden.")]\r
547         HRESULT Visible([out, retval] VARIANT_BOOL* visible);\r
548         [id(DISPID_Visible), propput, helpstring("Returns/sets a value that determines whether viewing area is visible or hidden.")]\r
549         HRESULT Visible([in] VARIANT_BOOL visible);\r
550 \r
551         [id(DISPID_Volume), propget, helpstring("Returns/sets default audio volume.")]\r
552         HRESULT Volume([out, retval] long* volume);\r
553         [id(DISPID_Volume), propput, helpstring("Returns/sets default audio volume.")]\r
554         HRESULT Volume([in] long volume);\r
555 \r
556         [id(DISPID_BackColor), propget, helpstring("Returns/sets background color.")]\r
557         HRESULT BackColor([out, retval] OLE_COLOR* backcolor);\r
558         [id(DISPID_BackColor), propput, helpstring("Returns/sets background color.")]\r
559         HRESULT BackColor([in] OLE_COLOR backcolor);\r
560 \r
561         /*\r
562          * caution: vlcobject.toolbar:bool does not yet exists in Firefox\r
563          * plugin. Official usage is through "toolbar" property for now,\r
564          * which is compatibile with Firefox.\r
565          */\r
566         [id(DISPID_Toolbar), propget, helpstring("Returns/sets visibility of the toolbar")]\r
567         HRESULT Toolbar([out, retval] VARIANT_BOOL* visible);\r
568         [id(DISPID_Toolbar), propput, helpstring("Returns/sets visibility of the toolbar")]\r
569         HRESULT Toolbar([in] VARIANT_BOOL visible);\r
570 \r
571         [propget, helpstring("Returns the audio object.")]\r
572         HRESULT audio([out, retval] IVLCAudio** obj);\r
573 \r
574         [propget, helpstring("Returns the audio object.")]\r
575         HRESULT input([out, retval] IVLCInput** obj);\r
576 \r
577         [propget, helpstring("Returns the playlist object.")]\r
578         HRESULT playlist([out, retval] IVLCPlaylist** obj);\r
579 \r
580         [propget, helpstring("Returns the audio object.")]\r
581         HRESULT subtitle([out, retval] IVLCSubtitle** obj);\r
582 \r
583         [propget, helpstring("Returns the audio object.")]\r
584         HRESULT video([out, retval] IVLCVideo** obj);\r
585     };\r
586 \r
587     [\r
588       uuid(E23FE9C6-778E-49D4-B537-38FCDE4887D8),\r
589       helpstring("VLC control (deprecated)"),\r
590       control\r
591     ]\r
592     coclass VLCPlugin\r
593     {\r
594         [default] interface IVLCControl;\r
595         interface IVLCControl2;\r
596         [default, source] dispinterface DVLCEvents;\r
597     };\r
598 \r
599     [\r
600       uuid(9BE31822-FDAD-461B-AD51-BE1D1C159921),\r
601       helpstring("VLC control"),\r
602       control\r
603     ]\r
604     coclass VLCPlugin2\r
605     {\r
606         [default] interface IVLCControl2;\r
607         interface IVLCControl;\r
608     };\r
609 };\r