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