00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
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
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
00048 const int VLCPlayListEnd = -666;
00049
00050
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
00115
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 };