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