X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=activex%2Faxvlc.idl;h=5f0f3e63ea379c5fbb1320c6cc0b36fc2806eec6;hb=99f6722d6c42bd408e50c43e7ab397cbb0b33667;hp=0d1e683f78386f14144f13c23615dc4a31c73856;hpb=85b29bdc288a1573d43bd524908be5748a9b3640;p=vlc diff --git a/activex/axvlc.idl b/activex/axvlc.idl index 0d1e683f78..5f0f3e63ea 100644 --- a/activex/axvlc.idl +++ b/activex/axvlc.idl @@ -1,9 +1,10 @@ /***************************************************************************** * axvlc.idl: ActiveX control for VLC ***************************************************************************** - * Copyright (C) 2005 VideoLAN (Centrale Réseaux) and its contributors + * Copyright (C) 2006 the VideoLAN team * * Authors: Damien Fouilleul + * Jean-Paul Saman * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -17,58 +18,77 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. *****************************************************************************/ +//comments terminated by [t] are by tonsofpcs, regarding the string review. April 02, 2006. [t] +//Possibly change all instances of "the current playlist" to "the playlist" and "current playlist" to "the playlist" [t] + +import "ocidl.idl"; + [ uuid(DF2BBE39-40A8-433b-A279-073F48DA94B6), version(1.0), - helpstring("VideoLAN VLC ActiveX Plugin"), + helpstring("VideoLAN VLC ActiveX Plugin") ] library AXVLC { - importlib("stdole2.tlb"); - // Forward declare all types defined in this typelib interface IVLCControl; + interface IVLCAudio; + interface IVLCInput; + interface IVLCLog; + interface IVLCMessage; + interface IVLCMessageIterator; + interface IVLCMessages; + interface IVLCPlaylist; + interface IVLCVideo; + interface IVLCControl2; dispinterface DVLCEvents; - enum VLCPlaylistMode { + importlib("stdole2.tlb"); + + typedef [public] enum VLCPlaylistMode + { VLCPlayListInsert = 1, + VLCPlayListInsertAndGo = 9, VLCPlayListReplace = 2, + VLCPlayListReplaceAndGo = 10, VLCPlayListAppend = 4, - VLCPlayListGo = 8, + VLCPlayListAppendAndGo = 12, VLCPlayListCheckInsert = 16 - }; + } eVLCPlaylistMode; // playlist target position const int VLCPlayListEnd = -666; // DISPID definitions - const int DISPID_Visible = 1; - const int DISPID_Playing = 2; - const int DISPID_Position = 3; - const int DISPID_Time = 4; - const int DISPID_Length = 5; - const int DISPID_Volume = 6; + const int DISPID_BackColor = -501; - const int DISPID_PlayEvent = 1; - const int DISPID_PauseEvent = 2; - const int DISPID_StopEvent = 3; + const int DISPID_Visible = 100; + const int DISPID_Playing = 101; + const int DISPID_Position = 102; + const int DISPID_Time = 103; + const int DISPID_Length = 104; + const int DISPID_Volume = 105; + const int DISPID_MRL = 106; + const int DISPID_AutoPlay = 107; + const int DISPID_AutoLoop = 108; + const int DISPID_StartTime = 109; + const int DISPID_BaseURL = 110; [ odl, uuid(C2FA41D0-B113-476e-AC8C-9BD14999C1C1), - helpstring("VLC Control"), + helpstring("VLC Control (deprecated)"), dual, - hidden, oleautomation ] - interface IVLCControl : IDispatch { - - [id(DISPID_Visible), propget, bindable, helpstring("Shows or hides plugin.")] + interface IVLCControl : IDispatch + { + [id(DISPID_Visible), propget, bindable, helpstring("Returns/sets a value that determines whether viewing area is visible or hidden.")] HRESULT Visible([out, retval] VARIANT_BOOL* visible); - [id(DISPID_Visible), propput, bindable, helpstring("Shows or hides plugin.")] + [id(DISPID_Visible), propput, bindable, helpstring("Returns/sets a value that determines whether viewing area is visible or hidden.")] HRESULT Visible([in] VARIANT_BOOL visible); [helpstring("Play current target in playlist.")] HRESULT play(); @@ -76,39 +96,37 @@ library AXVLC HRESULT pause(); [helpstring("Stop playback.")] HRESULT stop(); - [id(DISPID_Playing), bindable, propget, helpstring("Specifies whether VLC is playing.")] + [id(DISPID_Playing), hidden, propget, helpstring("Returns a value that determines whether VLC is currently playing.")] HRESULT Playing([out, retval] VARIANT_BOOL* isPlaying); - [id(DISPID_Playing), bindable, propput, helpstring("Specifies whether VLC is playing.")] - HRESULT Playing([in] VARIANT_BOOL isPlaying); - [id(DISPID_Position), bindable, propget, helpstring("Specifies playback position within current target in playlist, position is a relative value ranging from 0.0 to 1.0.")] + [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.")] HRESULT Position([out, retval] float* position); - [id(DISPID_Position), bindable, propput, helpstring("Specifies playback position within current target in playlist, position is a relative value ranging from 0.0 to 1.0.")] + [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.")] HRESULT Position([in] float position); - [id(DISPID_Time), propget, helpstring("Specifies playback time relative to the start of current target in playlist.")] + [id(DISPID_Time), propget, helpstring("Returns/sets playback time relative to the start of the current item.")] HRESULT Time([out, retval] int* seconds); - [id(DISPID_Time), propput, helpstring("Specifies playback time relative to the start of current target in playlist.")] + [id(DISPID_Time), propput, helpstring("Returns/sets playback time relative to the start of the current item.")] HRESULT Time([in] int seconds); - [helpstring("Advance or backtrack playback time, relative to current time.")] + [helpstring("Advance or backtrack playback time, relative to current time.")] //possibly find a better word to replace 'backtrack' [t] HRESULT shuttle([in] int seconds); - [helpstring("Switch between normal and fullscreen video.")] + [helpstring("Switch video between normal and fullscreen view modes.")] HRESULT fullscreen(); - [id(DISPID_Length), bindable, propget, helpstring("Returns total length in seconds of current target in playlist, may be unknown.")] + [id(DISPID_Length), propget, hidden, helpstring("Returns the total length, in seconds, of the current item, may be unknown.")] HRESULT Length([out, retval] int* seconds); - [helpstring("Increases playback speed, one of 1x, 2x, 4x, 8x.")] + [helpstring("Increases playback speed. Possible speeds are: 1x, 2x, 4x, 8x.")] HRESULT playFaster(); - [helpstring("Decreases playback speed, one of 1x, 2x, 4x, 8x.")] + [helpstring("Decreases playback speed. Possible speeds are: 1x, 2x, 4x, 8x.")] HRESULT playSlower(); - [id(DISPID_Volume), bindable, propget, helpstring("Specifies playback sound volume, ranges from 0 to 200%.")] + [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] HRESULT Volume([out, retval] int* volume); - [id(DISPID_Volume), bindable, propput, helpstring("Specifies playback sound volume, ranges from 0 to 200%.")] + [id(DISPID_Volume), propput, helpstring("Returns/sets playback volume, ranges from 0 to 200%.")] HRESULT Volume([in] int volume); - [helpstring("Mute/unmute playback sound volume.")] + [helpstring("Mute/unmute playback audio.")] HRESULT toggleMute(); - [helpstring("Set a value to a VLC variable.")] + [helpstring("Sets the value of a VLC variable.")] HRESULT setVariable([in] BSTR name, [in] VARIANT value); - [helpstring("Retrieve the value of a VLC variable.")] + [helpstring("Returns the value of a VLC variable.")] HRESULT getVariable([in] BSTR name, [out, retval] VARIANT *value); - [helpstring("Add a target to the current playlist.")] + [helpstring("Add an item to the playlist.")] /* ** use VARIANT rather than a SAFEARRAY as argument type @@ -116,7 +134,7 @@ library AXVLC */ HRESULT addTarget([in] BSTR uri, [in] VARIANT options, [in] enum VLCPlaylistMode mode, [in] int position); - [propget, helpstring("Returns index of current target in playlist.")] + [propget, helpstring("Returns index of current item in playlist.")] HRESULT PlaylistIndex([out, retval] int* index); [propget, helpstring("Returns number of items in playlist.")] HRESULT PlaylistCount([out, retval] int* index); @@ -126,33 +144,399 @@ library AXVLC HRESULT playlistPrev(); [helpstring("Remove all items from playlist.")] HRESULT playlistClear(); - [propget, helpstring("Returns VLC Version.")] + [propget, hidden, helpstring("Returns VLC Version.")] HRESULT VersionInfo([out, retval] BSTR* version); + [id(DISPID_MRL), propget, helpstring("Returns/sets the first MRL in playlist, used for AutoPlay")] + HRESULT MRL([out, retval] BSTR* mrl); + [id(DISPID_MRL), propput, helpstring("Returns/sets the first MRL in playlist, used for AutoPlay")] + HRESULT MRL([in] BSTR mrl); + [id(DISPID_AutoPlay), propget, helpstring("Returns/sets a value that determines whether the playlist is played on startup")] + HRESULT AutoPlay([out, retval] VARIANT_BOOL* autoplay); + [id(DISPID_AutoPlay), propput, helpstring("Returns/Sets a value that determines whether the playlist is played on startup")] + HRESULT AutoPlay([in] VARIANT_BOOL autoplay); + [id(DISPID_AutoLoop), propget, helpstring("Returns/sets a value that determines whether the playlist is looped")] + HRESULT AutoLoop([out, retval] VARIANT_BOOL* autoloop); + [id(DISPID_AutoLoop), propput, helpstring("Returns/sets a value that determines whether the playlist is looped")] + HRESULT AutoLoop([in] VARIANT_BOOL autoloop); }; + const int DISPID_PlayEvent = 100; + const int DISPID_PauseEvent = 101; + const int DISPID_StopEvent = 102; + [ uuid(DF48072F-5EF8-434e-9B40-E2F3AE759B5F), helpstring("Event interface for VLC control"), - hidden ] - dispinterface DVLCEvents { + dispinterface DVLCEvents + { properties: methods: - [id(DISPID_PlayEvent), helpstring("Playback in progress")] - void Play(); - [id(DISPID_PauseEvent), helpstring("Playback has paused")] - void Pause(); - [id(DISPID_StopEvent), helpstring("Playback has stopped")] - void Stop(); + [id(DISPID_PlayEvent), helpstring("Playing")] + void play(); + [id(DISPID_PauseEvent), helpstring("Paused")] + void pause(); + [id(DISPID_StopEvent), helpstring("Stopped")] + void stop(); + }; + + [ + odl, + uuid(9E0BD17B-2D3C-4656-B94D-03084F3FD9D4), + helpstring("VLC Audio APIs"), + dual, + oleautomation + ] + interface IVLCAudio : IDispatch + { + [propget, helpstring("Returns/sets the audio mute state.")] + HRESULT mute([out, retval] VARIANT_BOOL* muted); + [propput, helpstring("Returns/sets the audio mute state.")] + HRESULT mute([in] VARIANT_BOOL muted); + + [propget, helpstring("Returns/sets audio volume as a percent value.")] + HRESULT volume([out, retval] long* volume); + [propput, helpstring("Returns/sets audio volume as a percent value.")] + HRESULT volume([in] long volume); + + [helpstring("Mute/unmute audio playback.")] + HRESULT toggleMute(); + + [propget, helpstring("Returns/sets audio track used/to use.")] + HRESULT track([out, retval] long* track); + [propput, helpstring("Returns/sets audio track used/to use.")] + HRESULT track([in] long track); + + [propget, helpstring("Returns audio channel [1-5] indicating; stereo, reverse stereo, left, right, dolby.")] + HRESULT channel([out, retval] long* channel); + [propput, helpstring("Sets audio channel to [1-5] indicating; stereo, reverse stereo, left, right, dolby.")] + HRESULT channel([in] long channel); + }; + + [ + odl, + uuid(49E0DBD1-9440-466C-9C97-95C67190C603), + helpstring("VLC Input APIs"), + dual, + oleautomation + ] + interface IVLCInput : IDispatch + { + [propget, helpstring("Returns the clip length, in milliseconds.")] + HRESULT length([out, retval] double* length); + + [propget, helpstring("Returns/sets playback position in current clip. Position is ranging from 0.0 to 1.0.")] + HRESULT position([out, retval] double* position); + [propput, helpstring("Returns/sets playback position in the current clip. Position ranging from 0.0 to 1.0.")] + HRESULT position([in] double position); + + [propget, helpstring("Returns/sets playback time in current clip, in milliseconds.")] + HRESULT time([out, retval] double* time); + [propput, helpstring("Returns/sets playback time in the current clip, in milliseconds.")] + HRESULT time([in] double time); + + [propget, helpstring("Returns current playback state.")] + HRESULT state([out, retval] long* state); + + [propget, helpstring("Returns/sets current playback rate, normal rate is 1.0 ")] + HRESULT rate([out, retval] double* rate); + [propput, helpstring("Returns/sets current playback rate, normal rate is 1.0.")] + HRESULT rate([in] double rate); + + [propget, helpstring("Returns current playback frames per seconds if available.")] + HRESULT fps([out, retval] double* fps); + + [propget, helpstring("Returns whether current playback displays video.")] + HRESULT hasVout([out, retval] VARIANT_BOOL* hasVout); + }; + + [ + odl, + uuid(9ED00AFA-7BCD-4FFF-8D48-7DD4DB2C800D), + helpstring("VLC Log Message"), + dual, + oleautomation + ] + interface IVLCMessage: IDispatch + { + [id(DISPID_VALUE), propget] + HRESULT _Value([out, retval] VARIANT* message); + + [propget, helpstring("Returns message severity.")] + HRESULT severity([out, retval] long* level); + + [propget, helpstring("Returns message issuer type.")] + HRESULT type([out, retval] BSTR* type); + + [propget, helpstring("Returns message issuer name.")] + HRESULT name([out, retval] BSTR* name); + + [propget, helpstring("Returns message header.")] + HRESULT header([out, retval] BSTR* header); + + [propget, helpstring("Returns message content.")] + HRESULT message([out, retval] BSTR* message); + }; + + [ + odl, + uuid(15179CD8-CC12-4242-A58E-E412217FF343), + helpstring("VLC Log iterator"), + dual, + oleautomation + ] + interface IVLCMessageIterator : IDispatch + { + [propget, helpstring("Returns whether a message is available.")] + HRESULT hasNext([out, retval] VARIANT_BOOL* hasNext); + + [helpstring("Returns next message.")] + HRESULT next([out, retval] IVLCMessage** msg); + }; + + [ + odl, + uuid(6C5CE55D-2D6C-4AAD-8299-C62D2371F106), + helpstring("VLC Log Messages Collection."), + dual, + oleautomation + ] + interface IVLCMessages : IDispatch + { + [id(DISPID_NEWENUM), propget] + HRESULT _NewEnum([out, retval] IUnknown** _NewEnum); + + [helpstring("Clear all messages from log.")] + HRESULT clear(); + + [propget, helpstring("Returns the number of messages.")] + HRESULT count([out, retval] long* count); + + [helpstring("Returns an iterator for messages in log")] + HRESULT iterator([out, retval] IVLCMessageIterator** iter); + }; + + [ + odl, + uuid(8E3BC3D9-62E9-48FB-8A6D-993F9ABC4A0A), + helpstring("VLC Log APIs"), + dual, + oleautomation + ] + interface IVLCLog : IDispatch + { + [propget, helpstring("Returns messages in log")] + HRESULT messages([out, retval] IVLCMessages** iter); + + [propget, helpstring("Returns/Sets the log versbosity level.")] + HRESULT verbosity([out, retval] long* level); + [propput, helpstring("Returns/Sets the log versbosity level.")] + HRESULT verbosity([in] long level); + }; + + [ + odl, + uuid(FD37FE32-82BC-4A25-B056-315F4DBB194D), + helpstring("VLC Playlist Items collection"), + dual, + oleautomation + ] + interface IVLCPlaylistItems : IDispatch + { + [propget, helpstring("Returns number of items in playlist.")] + HRESULT count([out, retval] long* count); + + [helpstring("Remove all items from playlist.")] + HRESULT clear(); + + [helpstring("remove item from playlist.")] + HRESULT remove([in] long itemId); + }; + + [ + odl, + uuid(54613049-40BF-4035-9E70-0A9312C0188D), + helpstring("VLC Playlist APIs"), + dual, + oleautomation + ] + interface IVLCPlaylist : IDispatch + { + [hidden, propget, helpstring("Returns number of items in playlist. (deprecated)")] + HRESULT itemCount([out, retval] long* count); + + [propget, helpstring("Returns whether playback displays video.")] + HRESULT isPlaying([out, retval] VARIANT_BOOL* playing); + + [helpstring("Add a playlist item.")] + HRESULT add([in] BSTR uri, [in, optional] VARIANT name, [in, optional] VARIANT options, [out, retval] long* itemId); + + [helpstring("Play/Resume the playlist.")] + HRESULT play(); + + [helpstring("Play item in playlist.")] + HRESULT playItem([in] long itemId); + + [helpstring("Play/Pause current clip.")] + HRESULT togglePause(); + + [helpstring("Stop current clip.")] + HRESULT stop(); + + [helpstring("Advance to next item in playlist.")] + HRESULT next(); + + [helpstring("Advance to previous item in playlist.")] + HRESULT prev(); + + [hidden, helpstring("Remove all items from playlist. (deprecated)")] + HRESULT clear(); + + [hidden, helpstring("Remove item from playlist. (deprecated)")] + HRESULT removeItem([in] long item); + + [propget, helpstring("Returns the playlist items collection object.")] + HRESULT items([out, retval] IVLCPlaylistItems** obj); + }; + + [ + odl, + uuid(0AAEDF0B-D333-4B27-A0C6-BBF31413A42E), + helpstring("VLC Video APIs"), + dual, + oleautomation + ] + interface IVLCVideo : IDispatch + { + [propget, helpstring("Returns/sets the fullscreen state.")] + HRESULT fullscreen([out, retval] VARIANT_BOOL* fullscreen); + [propput, helpstring("Returns/sets the fullscreen state.")] + HRESULT fullscreen([in] VARIANT_BOOL fullscreen); + + [propget, helpstring("Returns video original width.")] + HRESULT width([out, retval] long* width); + + [propget, helpstring("Returns video original height.")] + HRESULT height([out, retval] long* height); + + [propget, helpstring("Returns video aspect ratio.")] + HRESULT aspectRatio([out, retval] BSTR* aspect); + [propput, helpstring("Sets video aspect ratio.")] + HRESULT aspectRatio([in] BSTR aspect); + + [propget, helpstring("Returns video subtitle used.")] + HRESULT subtitle([out, retval] long* spu); + [propput, helpstring("Sets video subtitle to use.")] + HRESULT subtitle([in] long spu); + + [propget, helpstring("Returns crop filter geometry.")] + HRESULT crop([out, retval] BSTR* geometry); + [propput, helpstring("Sets crop filter geometry.")] + HRESULT crop([in] BSTR geometry); + + [propget, helpstring("Returns teletext page used.")] + HRESULT subtitle([out, retval] long* page); + [propput, helpstring("Sets teletext page to use.")] + HRESULT subtitle([in] long page); + + [helpstring("toggle fullscreen/windowed state.")] + HRESULT toggleFullscreen(); + + [helpstring("take video snapshot and save it into picture object.")] + HRESULT takeSnapshot([out, retval] IPictureDisp** picture); + + [helpstring("toggle teletext transparent state.")] + HRESULT toggleTeletext(); + }; + + [ + odl, + uuid(2D719729-5333-406C-BF12-8DE787FD65E3), + helpstring("VLC Control"), + dual, + oleautomation + ] + interface IVLCControl2 : IDispatch + { + [id(DISPID_AutoLoop), propget, helpstring("Returns/sets a value that determines whether the playlist is looped")] + HRESULT AutoLoop([out, retval] VARIANT_BOOL* autoloop); + [id(DISPID_AutoLoop), propput, helpstring("Returns/sets a value that determines whether the playlist is looped")] + HRESULT AutoLoop([in] VARIANT_BOOL autoloop); + + [id(DISPID_AutoPlay), propget, helpstring("Returns/sets a value that determines whether the playlist is played on startup")] + HRESULT AutoPlay([out, retval] VARIANT_BOOL* autoplay); + [id(DISPID_AutoPlay), propput, helpstring("Returns/Sets a value that determines whether the playlist is played on startup")] + HRESULT AutoPlay([in] VARIANT_BOOL autoplay); + + [id(DISPID_BaseURL), propget, helpstring("Returns/sets the base URL for relative paths")] + HRESULT BaseURL([out, retval] BSTR* url); + [id(DISPID_BaseURL), propput, helpstring("Returns/sets the base URL for relative paths")] + HRESULT BaseURL([in] BSTR url); + + [id(DISPID_StartTime), propget, helpstring("Returns/sets playback start time of URL.")] + HRESULT StartTime([out, retval] long* seconds); + [id(DISPID_StartTime), propput, helpstring("Returns/sets playback start time of URL.")] + HRESULT StartTime([in] long seconds); + + [id(DISPID_MRL), propget, helpstring("Returns/sets the default MRL in playlist")] + HRESULT MRL([out, retval] BSTR* mrl); + [id(DISPID_MRL), propput, helpstring("Returns/sets the default MRL in playlist")] + HRESULT MRL([in] BSTR mrl); + + [propget, helpstring("Returns VLC Version.")] + HRESULT VersionInfo([out, retval] BSTR* version); + + [id(DISPID_Visible), propget, helpstring("Returns/sets a value that determines whether viewing area is visible or hidden.")] + HRESULT Visible([out, retval] VARIANT_BOOL* visible); + [id(DISPID_Visible), propput, helpstring("Returns/sets a value that determines whether viewing area is visible or hidden.")] + HRESULT Visible([in] VARIANT_BOOL visible); + + [id(DISPID_Volume), propget, helpstring("Returns/sets default audio volume.")] + HRESULT Volume([out, retval] long* volume); + [id(DISPID_Volume), propput, helpstring("Returns/sets default audio volume.")] + HRESULT Volume([in] long volume); + + [id(DISPID_BackColor), propget, helpstring("Returns/sets background color.")] + HRESULT BackColor([out, retval] OLE_COLOR* backcolor); + [id(DISPID_BackColor), propput, helpstring("Returns/sets background color.")] + HRESULT BackColor([in] OLE_COLOR backcolor); + + [propget, helpstring("Returns the audio object.")] + HRESULT audio([out, retval] IVLCAudio** obj); + + [propget, helpstring("Returns the audio object.")] + HRESULT input([out, retval] IVLCInput** obj); + + [propget, helpstring("Returns the log object.")] + HRESULT log([out, retval] IVLCLog** obj); + + [propget, helpstring("Returns the playlist object.")] + HRESULT playlist([out, retval] IVLCPlaylist** obj); + + [propget, helpstring("Returns the audio object.")] + HRESULT video([out, retval] IVLCVideo** obj); }; [ uuid(E23FE9C6-778E-49D4-B537-38FCDE4887D8), - helpstring("VLC control"), + helpstring("VLC control (deprecated)"), control ] - coclass VLCPlugin { + coclass VLCPlugin + { [default] interface IVLCControl; + interface IVLCControl2; [default, source] dispinterface DVLCEvents; }; + + [ + uuid(9BE31822-FDAD-461B-AD51-BE1D1C159921), + helpstring("VLC control"), + control + ] + coclass VLCPlugin2 + { + [default] interface IVLCControl2; + interface IVLCControl; + }; };