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