1 /*****************************************************************************
\r
2 * axvlc.idl: ActiveX control for VLC
\r
3 *****************************************************************************
\r
4 * Copyright (C) 2005 the VideoLAN team
\r
6 * Authors: Damien Fouilleul <Damien.Fouilleul@laposte.net>
\r
8 * This program is free software; you can redistribute it and/or modify
\r
9 * it under the terms of the GNU General Public License as published by
\r
10 * the Free Software Foundation; either version 2 of the License, or
\r
11 * (at your option) any later version.
\r
13 * This program is distributed in the hope that it will be useful,
\r
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
\r
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
\r
16 * GNU General Public License for more details.
\r
18 * You should have received a copy of the GNU General Public License
\r
19 * along with this program; if not, write to the Free Software
\r
20 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
\r
21 *****************************************************************************/
\r
24 uuid(DF2BBE39-40A8-433b-A279-073F48DA94B6),
\r
26 helpstring("VideoLAN VLC ActiveX Plugin"),
\r
30 importlib("stdole2.tlb");
\r
32 // Forward declare all types defined in this typelib
\r
33 interface IVLCControl;
\r
34 dispinterface DVLCEvents;
\r
36 enum VLCPlaylistMode
\r
38 VLCPlayListInsert = 1,
\r
39 VLCPlayListInsertAndGo = 9,
\r
40 VLCPlayListReplace = 2,
\r
41 VLCPlayListReplaceAndGo = 10,
\r
42 VLCPlayListAppend = 4,
\r
43 VLCPlayListAppendAndGo = 12,
\r
44 VLCPlayListCheckInsert = 16
\r
47 // playlist target position
\r
48 const int VLCPlayListEnd = -666;
\r
50 // DISPID definitions
\r
51 const int DISPID_Visible = 100;
\r
52 const int DISPID_Playing = 101;
\r
53 const int DISPID_Position = 102;
\r
54 const int DISPID_Time = 103;
\r
55 const int DISPID_Length = 104;
\r
56 const int DISPID_Volume = 105;
\r
57 const int DISPID_MRL = 106;
\r
58 const int DISPID_AutoPlay = 107;
\r
59 const int DISPID_AutoLoop = 108;
\r
63 uuid(C2FA41D0-B113-476e-AC8C-9BD14999C1C1),
\r
64 helpstring("VLC Control"),
\r
69 interface IVLCControl : IDispatch
\r
71 [id(DISPID_Visible), propget, bindable, helpstring("Shows or hides plugin.")]
\r
72 HRESULT Visible([out, retval] VARIANT_BOOL* visible);
\r
73 [id(DISPID_Visible), propput, bindable, helpstring("Shows or hides plugin.")]
\r
74 HRESULT Visible([in] VARIANT_BOOL visible);
\r
75 [helpstring("Play current target in playlist.")]
\r
77 [helpstring("Pause playback.")]
\r
79 [helpstring("Stop playback.")]
\r
81 [id(DISPID_Playing), hidden, propget, helpstring("Returns whether VLC is playing.")]
\r
82 HRESULT Playing([out, retval] VARIANT_BOOL* isPlaying);
\r
83 [id(DISPID_Position), propget, helpstring("Specifies playback position within current target in playlist, position is a relative value ranging from 0.0 to 1.0.")]
\r
84 HRESULT Position([out, retval] float* position);
\r
85 [id(DISPID_Position), propput, helpstring("Specifies playback position within current target in playlist, position is a relative value ranging from 0.0 to 1.0.")]
\r
86 HRESULT Position([in] float position);
\r
87 [id(DISPID_Time), propget, helpstring("Specifies playback time relative to the start of current target in playlist.")]
\r
88 HRESULT Time([out, retval] int* seconds);
\r
89 [id(DISPID_Time), propput, helpstring("Specifies playback time relative to the start of current target in playlist.")]
\r
90 HRESULT Time([in] int seconds);
\r
91 [helpstring("Advance or backtrack playback time, relative to current time.")]
\r
92 HRESULT shuttle([in] int seconds);
\r
93 [helpstring("Switch between normal and fullscreen video.")]
\r
94 HRESULT fullscreen();
\r
95 [id(DISPID_Length), propget, hidden, helpstring("Returns total length in seconds of current target in playlist, may be unknown.")]
\r
96 HRESULT Length([out, retval] int* seconds);
\r
97 [helpstring("Increases playback speed, one of 1x, 2x, 4x, 8x.")]
\r
98 HRESULT playFaster();
\r
99 [helpstring("Decreases playback speed, one of 1x, 2x, 4x, 8x.")]
\r
100 HRESULT playSlower();
\r
101 [id(DISPID_Volume), propget, helpstring("Specifies playback sound volume, ranges from 0 to 200%.")]
\r
102 HRESULT Volume([out, retval] int* volume);
\r
103 [id(DISPID_Volume), propput, helpstring("Specifies playback sound volume, ranges from 0 to 200%.")]
\r
104 HRESULT Volume([in] int volume);
\r
105 [helpstring("Mute/unmute playback sound volume.")]
\r
106 HRESULT toggleMute();
\r
107 [helpstring("Set a value to a VLC variable.")]
\r
108 HRESULT setVariable([in] BSTR name, [in] VARIANT value);
\r
109 [helpstring("Retrieve the value of a VLC variable.")]
\r
110 HRESULT getVariable([in] BSTR name, [out, retval] VARIANT *value);
\r
111 [helpstring("Add a target to the current playlist.")]
\r
114 ** use VARIANT rather than a SAFEARRAY as argument type
\r
115 ** for compatibility with some scripting language (JScript)
\r
118 HRESULT addTarget([in] BSTR uri, [in] VARIANT options, [in] enum VLCPlaylistMode mode, [in] int position);
\r
119 [propget, helpstring("Returns index of current target in playlist.")]
\r
120 HRESULT PlaylistIndex([out, retval] int* index);
\r
121 [propget, helpstring("Returns number of items in playlist.")]
\r
122 HRESULT PlaylistCount([out, retval] int* index);
\r
123 [helpstring("Advance to next item in playlist.")]
\r
124 HRESULT playlistNext();
\r
125 [helpstring("Advance to previous item in playlist.")]
\r
126 HRESULT playlistPrev();
\r
127 [helpstring("Remove all items from playlist.")]
\r
128 HRESULT playlistClear();
\r
129 [propget, hidden, helpstring("Returns VLC Version.")]
\r
130 HRESULT VersionInfo([out, retval] BSTR* version);
\r
131 [id(DISPID_MRL), propget, helpstring("Returns initial MRL in default playlist")]
\r
132 HRESULT MRL([out, retval] BSTR* mrl);
\r
133 [id(DISPID_MRL), propput, helpstring("Specifies initial MRL in default playlist")]
\r
134 HRESULT MRL([in] BSTR mrl);
\r
135 [id(DISPID_AutoPlay), propget, helpstring("Specifies whether default playlist is played on startup")]
\r
136 HRESULT AutoPlay([out, retval] VARIANT_BOOL* autoplay);
\r
137 [id(DISPID_AutoPlay), propput, helpstring("Returns whether default playlist is played on startup")]
\r
138 HRESULT AutoPlay([in] VARIANT_BOOL autoplay);
\r
139 [id(DISPID_AutoLoop), propget, helpstring("Specifies whether default playlist is looped")]
\r
140 HRESULT AutoLoop([out, retval] VARIANT_BOOL* autoloop);
\r
141 [id(DISPID_AutoLoop), propput, helpstring("Returns whether default playlist is looped")]
\r
142 HRESULT AutoLoop([in] VARIANT_BOOL autoloop);
\r
145 const int DISPID_PlayEvent = 100;
\r
146 const int DISPID_PauseEvent = 101;
\r
147 const int DISPID_StopEvent = 102;
\r
150 uuid(DF48072F-5EF8-434e-9B40-E2F3AE759B5F),
\r
151 helpstring("Event interface for VLC control"),
\r
154 dispinterface DVLCEvents
\r
158 [id(DISPID_PlayEvent), helpstring("Playback in progress")]
\r
160 [id(DISPID_PauseEvent), helpstring("Playback has paused")]
\r
162 [id(DISPID_StopEvent), helpstring("Playback has stopped")]
\r
167 uuid(E23FE9C6-778E-49D4-B537-38FCDE4887D8),
\r
168 helpstring("VLC control"),
\r
173 [default] interface IVLCControl;
\r
174 [default, source] dispinterface DVLCEvents;
\r