Main Page | Modules | Class Hierarchy | Class List | Directories | File List | Class Members | File Members | Related Pages

axvlc.idl

00001 /*****************************************************************************
00002  * axvlc.idl: ActiveX control for VLC
00003  *****************************************************************************
00004  * Copyright (C) 2005 the VideoLAN team
00005  *
00006  * Authors: Damien Fouilleul <[email protected]>
00007  *
00008  * This program is free software; you can redistribute it and/or modify
00009  * it under the terms of the GNU General Public License as published by
00010  * the Free Software Foundation; either version 2 of the License, or
00011  * (at your option) any later version.
00012  *
00013  * This program is distributed in the hope that it will be useful,
00014  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00015  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00016  * GNU General Public License for more details.
00017  *
00018  * You should have received a copy of the GNU General Public License
00019  * along with this program; if not, write to the Free Software
00020  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
00021  *****************************************************************************/
00022 
00023 [
00024   uuid(DF2BBE39-40A8-433b-A279-073F48DA94B6),
00025   version(1.0),
00026   helpstring("VideoLAN VLC ActiveX Plugin"),
00027 ]
00028 library AXVLC
00029 {
00030     importlib("stdole2.tlb");
00031 
00032     // Forward declare all types defined in this typelib
00033     interface IVLCControl;
00034     dispinterface DVLCEvents;
00035 
00036     enum VLCPlaylistMode
00037     {
00038         VLCPlayListInsert       =  1,
00039         VLCPlayListInsertAndGo  =  9,
00040         VLCPlayListReplace      =  2,
00041         VLCPlayListReplaceAndGo = 10,
00042         VLCPlayListAppend       =  4,
00043         VLCPlayListAppendAndGo  = 12,
00044         VLCPlayListCheckInsert  = 16
00045     };
00046 
00047     // playlist target position
00048     const int VLCPlayListEnd    = -666;
00049 
00050     // DISPID definitions
00051     const int DISPID_Visible    = 100;
00052     const int DISPID_Playing    = 101;
00053     const int DISPID_Position   = 102;
00054     const int DISPID_Time       = 103;
00055     const int DISPID_Length     = 104;
00056     const int DISPID_Volume     = 105;
00057     const int DISPID_MRL        = 106;
00058     const int DISPID_AutoPlay   = 107;
00059     const int DISPID_AutoLoop   = 108;
00060 
00061     [
00062       odl,
00063       uuid(C2FA41D0-B113-476e-AC8C-9BD14999C1C1),
00064       helpstring("VLC Control"),
00065       dual,
00066       hidden,
00067       oleautomation
00068     ]
00069     interface IVLCControl : IDispatch
00070     {
00071         [id(DISPID_Visible), propget, bindable, helpstring("Shows or hides plugin.")]
00072         HRESULT Visible([out, retval] VARIANT_BOOL* visible);
00073         [id(DISPID_Visible), propput, bindable, helpstring("Shows or hides plugin.")]
00074         HRESULT Visible([in] VARIANT_BOOL visible);
00075         [helpstring("Play current target in playlist.")]
00076         HRESULT play();
00077         [helpstring("Pause playback.")]
00078         HRESULT pause();
00079         [helpstring("Stop playback.")]
00080         HRESULT stop();
00081         [id(DISPID_Playing), hidden, propget, helpstring("Returns whether VLC is playing.")]
00082         HRESULT Playing([out, retval] VARIANT_BOOL* isPlaying);
00083         [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.")]
00084         HRESULT Position([out, retval] float* position);
00085         [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.")]
00086         HRESULT Position([in] float position);
00087         [id(DISPID_Time), propget, helpstring("Specifies playback time relative to the start of current target in playlist.")]
00088         HRESULT Time([out, retval] int* seconds);
00089         [id(DISPID_Time), propput, helpstring("Specifies playback time relative to the start of current target in playlist.")]
00090         HRESULT Time([in] int seconds);
00091         [helpstring("Advance or backtrack playback time, relative to current time.")]
00092         HRESULT shuttle([in] int seconds);
00093         [helpstring("Switch between normal and fullscreen video.")]
00094         HRESULT fullscreen();
00095         [id(DISPID_Length), propget, hidden, helpstring("Returns total length in seconds of current target in playlist, may be unknown.")]
00096         HRESULT Length([out, retval] int* seconds);
00097         [helpstring("Increases playback speed, one of 1x, 2x, 4x, 8x.")]
00098         HRESULT playFaster();
00099         [helpstring("Decreases playback speed, one of 1x, 2x, 4x, 8x.")]
00100         HRESULT playSlower();
00101         [id(DISPID_Volume), propget, helpstring("Specifies playback sound volume, ranges from 0 to 200%.")]
00102         HRESULT Volume([out, retval] int* volume);
00103         [id(DISPID_Volume), propput, helpstring("Specifies playback sound volume, ranges from 0 to 200%.")]
00104         HRESULT Volume([in] int volume);
00105         [helpstring("Mute/unmute playback sound volume.")]
00106         HRESULT toggleMute();
00107         [helpstring("Set a value to a VLC variable.")]
00108         HRESULT setVariable([in] BSTR name, [in] VARIANT value);
00109         [helpstring("Retrieve the value of a VLC variable.")]
00110         HRESULT getVariable([in] BSTR name, [out, retval] VARIANT *value);
00111         [helpstring("Add a target to the current playlist.")]
00112 
00113 /*
00114 ** use VARIANT rather than a SAFEARRAY as argument type
00115 ** for compatibility with some scripting language (JScript)
00116 */
00117 
00118         HRESULT addTarget([in] BSTR uri, [in] VARIANT options, [in] enum VLCPlaylistMode mode, [in] int position);
00119         [propget, helpstring("Returns index of current target in playlist.")]
00120         HRESULT PlaylistIndex([out, retval] int* index);
00121         [propget, helpstring("Returns number of items in playlist.")]
00122         HRESULT PlaylistCount([out, retval] int* index);
00123         [helpstring("Advance to next item in playlist.")]
00124         HRESULT playlistNext();
00125         [helpstring("Advance to previous item in playlist.")]
00126         HRESULT playlistPrev();
00127         [helpstring("Remove all items from playlist.")]
00128         HRESULT playlistClear();
00129         [propget, hidden, helpstring("Returns VLC Version.")]
00130         HRESULT VersionInfo([out, retval] BSTR* version);
00131         [id(DISPID_MRL), propget, helpstring("Returns initial MRL in default playlist")]
00132         HRESULT MRL([out, retval] BSTR* mrl);
00133         [id(DISPID_MRL), propput, helpstring("Specifies initial MRL in default playlist")]
00134         HRESULT MRL([in] BSTR mrl);
00135         [id(DISPID_AutoPlay), propget, helpstring("Specifies whether default playlist is played on startup")]
00136         HRESULT AutoPlay([out, retval] VARIANT_BOOL* autoplay);
00137         [id(DISPID_AutoPlay), propput, helpstring("Returns whether default playlist is played on startup")]
00138         HRESULT AutoPlay([in] VARIANT_BOOL autoplay);
00139         [id(DISPID_AutoLoop), propget, helpstring("Specifies whether default playlist is looped")]
00140         HRESULT AutoLoop([out, retval] VARIANT_BOOL* autoloop);
00141         [id(DISPID_AutoLoop), propput, helpstring("Returns whether default playlist is looped")]
00142         HRESULT AutoLoop([in] VARIANT_BOOL autoloop);
00143     };
00144 
00145     const int DISPID_PlayEvent  = 100;
00146     const int DISPID_PauseEvent = 101;
00147     const int DISPID_StopEvent  = 102;
00148 
00149     [
00150       uuid(DF48072F-5EF8-434e-9B40-E2F3AE759B5F),
00151       helpstring("Event interface for VLC control"),
00152       hidden
00153     ]
00154     dispinterface DVLCEvents
00155     {
00156         properties:
00157         methods:
00158             [id(DISPID_PlayEvent), helpstring("Playback in progress")]
00159             void play();
00160             [id(DISPID_PauseEvent), helpstring("Playback has paused")]
00161             void pause();
00162             [id(DISPID_StopEvent), helpstring("Playback has stopped")]
00163             void stop();
00164     };
00165 
00166     [
00167       uuid(E23FE9C6-778E-49D4-B537-38FCDE4887D8),
00168       helpstring("VLC control"),
00169       control
00170     ]
00171     coclass VLCPlugin
00172     {
00173         [default] interface IVLCControl;
00174         [default, source] dispinterface DVLCEvents;
00175     };
00176 };

Generated on Tue Dec 20 10:14:18 2005 for vlc-0.8.4a by  doxygen 1.4.2