axvlc.idl
上传用户:kjfoods
上传日期:2020-07-06
资源大小:29949k
文件大小:22k
源码类别:

midi

开发平台:

Unix_Linux

  1. /*****************************************************************************
  2.  * axvlc.idl: ActiveX control for VLC
  3.  *****************************************************************************
  4.  * Copyright (C) 2006 the VideoLAN team
  5.  *
  6.  * Authors: Damien Fouilleul <Damien.Fouilleul@laposte.net>
  7.  *          Jean-Paul Saman <jpsaman _at_ m2x _dot_ nl>
  8.  *
  9.  * This program is free software; you can redistribute it and/or modify
  10.  * it under the terms of the GNU General Public License as published by
  11.  * the Free Software Foundation; either version 2 of the License, or
  12.  * (at your option) any later version.
  13.  *
  14.  * This program is distributed in the hope that it will be useful,
  15.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  16.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  17.  * GNU General Public License for more details.
  18.  *
  19.  * You should have received a copy of the GNU General Public License
  20.  * along with this program; if not, write to the Free Software
  21.  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  22.  *****************************************************************************/
  23. //comments terminated by [t] are by tonsofpcs, regarding the string review.  April 02, 2006. [t]
  24. //Possibly change all instances of "the current playlist" to "the playlist" and "current playlist" to "the playlist" [t]
  25. import "ocidl.idl";
  26. [
  27.   uuid(DF2BBE39-40A8-433b-A279-073F48DA94B6),
  28.   version(1.0),
  29.   helpstring("VideoLAN VLC ActiveX Plugin")
  30. ]
  31. library AXVLC
  32. {
  33.     // Forward declare all types defined in this typelib
  34.     interface IVLCControl;
  35.     interface IVLCAudio;
  36.     interface IVLCInput;
  37.     interface IVLCLog;
  38.     interface IVLCMessage;
  39.     interface IVLCMessageIterator;
  40.     interface IVLCMessages;
  41.     interface IVLCPlaylist;
  42.     interface IVLCVideo;
  43.     interface IVLCControl2;
  44.     dispinterface DVLCEvents;
  45.     importlib("stdole2.tlb");
  46.     typedef [public] enum VLCPlaylistMode
  47.     {
  48.         VLCPlayListInsert       =  1,
  49.         VLCPlayListInsertAndGo  =  9,
  50.         VLCPlayListReplace      =  2,
  51.         VLCPlayListReplaceAndGo = 10,
  52.         VLCPlayListAppend       =  4,
  53.         VLCPlayListAppendAndGo  = 12,
  54.         VLCPlayListCheckInsert  = 16
  55.     } eVLCPlaylistMode;
  56.     // playlist target position
  57.     const int VLCPlayListEnd    = -666;
  58.     // DISPID definitions
  59.     const int DISPID_BackColor  = -501;
  60.     const int DISPID_Visible    = 100;
  61.     const int DISPID_Playing    = 101;
  62.     const int DISPID_Position   = 102;
  63.     const int DISPID_Time       = 103;
  64.     const int DISPID_Length     = 104;
  65.     const int DISPID_Volume     = 105;
  66.     const int DISPID_MRL        = 106;
  67.     const int DISPID_AutoPlay   = 107;
  68.     const int DISPID_AutoLoop   = 108;
  69.     const int DISPID_StartTime  = 109;
  70.     const int DISPID_BaseURL    = 110;
  71.     const int DISPID_Toolbar     = 111;
  72.     [
  73.       odl,
  74.       uuid(C2FA41D0-B113-476e-AC8C-9BD14999C1C1),
  75.       helpstring("VLC Control (deprecated)"),
  76.       dual,
  77.       oleautomation
  78.     ]
  79.     interface IVLCControl : IDispatch
  80.     {
  81.         [id(DISPID_Visible), propget, bindable, helpstring("Returns/sets a value that determines whether viewing area is visible or hidden.")]
  82.         HRESULT Visible([out, retval] VARIANT_BOOL* visible);
  83.         [id(DISPID_Visible), propput, bindable, helpstring("Returns/sets a value that determines whether viewing area is visible or hidden.")]
  84.         HRESULT Visible([in] VARIANT_BOOL visible);
  85.         [helpstring("Play current target in playlist.")]
  86.         HRESULT play();
  87.         [helpstring("Pause playback.")]
  88.         HRESULT pause();
  89.         [helpstring("Stop playback.")]
  90.         HRESULT stop();
  91.         [id(DISPID_Playing), hidden, propget, helpstring("Returns a value that determines whether VLC is currently playing.")]
  92.         HRESULT Playing([out, retval] VARIANT_BOOL* isPlaying);
  93.         [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.")]
  94.         HRESULT Position([out, retval] float* position);
  95.         [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.")]
  96.         HRESULT Position([in] float position);
  97.         [id(DISPID_Time), propget, helpstring("Returns/sets playback time relative to the start of the current item.")]
  98.         HRESULT Time([out, retval] int* seconds);
  99.         [id(DISPID_Time), propput, helpstring("Returns/sets playback time relative to the start of the current item.")]
  100.         HRESULT Time([in] int seconds);
  101.         [helpstring("Advance or backtrack playback time, relative to current time.")]  //possibly find a better word to replace 'backtrack' [t]
  102.         HRESULT shuttle([in] int seconds);
  103.         [helpstring("Switch video between normal and fullscreen view modes.")]
  104.         HRESULT fullscreen();
  105.         [id(DISPID_Length), propget, hidden, helpstring("Returns the total length, in seconds, of the current item, may be unknown.")]
  106.         HRESULT Length([out, retval] int* seconds);
  107.         [helpstring("Increases playback speed. Possible speeds are: 1x, 2x, 4x, 8x.")]
  108.         HRESULT playFaster();
  109.         [helpstring("Decreases playback speed. Possible speeds are: 1x, 2x, 4x, 8x.")]
  110.         HRESULT playSlower();
  111.         [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]
  112.         HRESULT Volume([out, retval] int* volume);
  113.         [id(DISPID_Volume), propput, helpstring("Returns/sets playback volume, ranges from 0 to 200%.")]
  114.         HRESULT Volume([in] int volume);
  115.         [helpstring("Mute/unmute playback audio.")]
  116.         HRESULT toggleMute();
  117.         [helpstring("Sets the value of a VLC variable.")]
  118.         HRESULT setVariable([in] BSTR name, [in] VARIANT value);
  119.         [helpstring("Returns the value of a VLC variable.")]
  120.         HRESULT getVariable([in] BSTR name, [out, retval] VARIANT *value);
  121.         [helpstring("Add an item to the playlist.")]
  122. /*
  123. ** use VARIANT rather than a SAFEARRAY as argument type
  124. ** for compatibility with some scripting language (JScript)
  125. */
  126.         HRESULT addTarget([in] BSTR uri, [in] VARIANT options, [in] enum VLCPlaylistMode mode, [in] int position);
  127.         [propget, helpstring("Returns index of current item in playlist.")]
  128.         HRESULT PlaylistIndex([out, retval] int* index);
  129.         [propget, helpstring("Returns number of items in playlist.")]
  130.         HRESULT PlaylistCount([out, retval] int* index);
  131.         [helpstring("Advance to next item in playlist.")]
  132.         HRESULT playlistNext();
  133.         [helpstring("Advance to previous item in playlist.")]
  134.         HRESULT playlistPrev();
  135.         [helpstring("Remove all items from playlist.")]
  136.         HRESULT playlistClear();
  137.         [propget, hidden, helpstring("Returns VLC Version.")]
  138.         HRESULT VersionInfo([out, retval] BSTR* version);
  139.         [id(DISPID_MRL), propget, helpstring("Returns/sets the first MRL in playlist, used for AutoPlay")]
  140.         HRESULT MRL([out, retval] BSTR* mrl);
  141.         [id(DISPID_MRL), propput, helpstring("Returns/sets the first MRL in playlist, used for AutoPlay")]
  142.         HRESULT MRL([in] BSTR mrl);
  143.         [id(DISPID_AutoPlay), propget, helpstring("Returns/sets a value that determines whether the playlist is played on startup")]
  144.         HRESULT AutoPlay([out, retval] VARIANT_BOOL* autoplay);
  145.         [id(DISPID_AutoPlay), propput, helpstring("Returns/Sets a value that determines whether the playlist is played on startup")]
  146.         HRESULT AutoPlay([in] VARIANT_BOOL autoplay);
  147.         [id(DISPID_AutoLoop), propget, helpstring("Returns/sets a value that determines whether the playlist is looped")]
  148.         HRESULT AutoLoop([out, retval] VARIANT_BOOL* autoloop);
  149.         [id(DISPID_AutoLoop), propput, helpstring("Returns/sets a value that determines whether the playlist is looped")]
  150.         HRESULT AutoLoop([in] VARIANT_BOOL autoloop);
  151.     };
  152.     const int DISPID_PlayEvent  = 100;
  153.     const int DISPID_PauseEvent = 101;
  154.     const int DISPID_StopEvent  = 102;
  155.     [
  156.       uuid(DF48072F-5EF8-434e-9B40-E2F3AE759B5F),
  157.       helpstring("Event interface for VLC control"),
  158.     ]
  159.     dispinterface DVLCEvents
  160.     {
  161.         properties:
  162.         methods:
  163.             [id(DISPID_PlayEvent), helpstring("Playing")]
  164.             void play();
  165.             [id(DISPID_PauseEvent), helpstring("Paused")]
  166.             void pause();
  167.             [id(DISPID_StopEvent), helpstring("Stopped")]
  168.             void stop();
  169.     };
  170.     [
  171.       odl,
  172.       uuid(9E0BD17B-2D3C-4656-B94D-03084F3FD9D4),
  173.       helpstring("VLC Audio APIs"),
  174.       dual,
  175.       oleautomation
  176.     ]
  177.     interface IVLCAudio : IDispatch
  178.     {
  179.         [propget, helpstring("Returns/sets the audio mute state.")]
  180.         HRESULT mute([out, retval] VARIANT_BOOL* muted);
  181.         [propput, helpstring("Returns/sets the audio mute state.")]
  182.         HRESULT mute([in] VARIANT_BOOL muted);
  183.         [propget, helpstring("Returns/sets audio volume as a percent value.")]
  184.         HRESULT volume([out, retval] long* volume);
  185.         [propput, helpstring("Returns/sets audio volume as a percent value.")]
  186.         HRESULT volume([in] long volume);
  187.         [helpstring("Mute/unmute audio playback.")]
  188.         HRESULT toggleMute();
  189.         [propget, helpstring("Returns/sets audio track used/to use.")]
  190.         HRESULT track([out, retval] long* track);
  191.         [propput, helpstring("Returns/sets audio track used/to use.")]
  192.         HRESULT track([in] long track);
  193.         [propget, helpstring("Returns audio channel [1-5] indicating; stereo, reverse stereo, left, right, dolby.")]
  194.         HRESULT channel([out, retval] long* channel);
  195.         [propput, helpstring("Sets audio channel to [1-5] indicating; stereo, reverse stereo, left, right, dolby.")]
  196.         HRESULT channel([in] long channel);
  197.     };
  198.     [
  199.       odl,
  200.       uuid(49E0DBD1-9440-466C-9C97-95C67190C603),
  201.       helpstring("VLC Input APIs"),
  202.       dual,
  203.       oleautomation
  204.     ]
  205.     interface IVLCInput : IDispatch
  206.     {
  207.         [propget, helpstring("Returns the clip length, in milliseconds.")]
  208.         HRESULT length([out, retval] double* length);
  209.         [propget, helpstring("Returns/sets playback position in current clip.  Position is ranging from 0.0 to 1.0.")]
  210.         HRESULT position([out, retval] double* position);
  211.         [propput, helpstring("Returns/sets playback position in the current clip.  Position ranging from 0.0 to 1.0.")]
  212.         HRESULT position([in] double position);
  213.         [propget, helpstring("Returns/sets playback time in current clip, in milliseconds.")]
  214.         HRESULT time([out, retval] double* time);
  215.         [propput, helpstring("Returns/sets playback time in the current clip, in milliseconds.")]
  216.         HRESULT time([in] double time);
  217.         [propget, helpstring("Returns current playback state.")]
  218.         HRESULT state([out, retval] long* state);
  219.         [propget, helpstring("Returns/sets current playback rate, normal rate is 1.0 ")]
  220.         HRESULT rate([out, retval] double* rate);
  221.         [propput, helpstring("Returns/sets current playback rate, normal rate is 1.0.")]
  222.         HRESULT rate([in] double rate);
  223.         [propget, helpstring("Returns current playback frames per seconds if available.")]
  224.         HRESULT fps([out, retval] double* fps);
  225.         [propget, helpstring("Returns whether current playback displays video.")]
  226.         HRESULT hasVout([out, retval] VARIANT_BOOL* hasVout);
  227.     };
  228.     [
  229.       odl,
  230.       uuid(9ED00AFA-7BCD-4FFF-8D48-7DD4DB2C800D),
  231.       helpstring("VLC Log Message"),
  232.       dual,
  233.       oleautomation
  234.     ]
  235.     interface IVLCMessage: IDispatch
  236.     {
  237.         [id(DISPID_VALUE), propget]
  238.         HRESULT _Value([out, retval] VARIANT* message);
  239.         [propget, helpstring("Returns message severity.")]
  240.         HRESULT severity([out, retval] long* level);
  241.         [propget, helpstring("Returns message issuer type.")]
  242.         HRESULT type([out, retval] BSTR* type);
  243.         [propget, helpstring("Returns message issuer name.")]
  244.         HRESULT name([out, retval] BSTR* name);
  245.         [propget, helpstring("Returns message header.")]
  246.         HRESULT header([out, retval] BSTR* header);
  247.         [propget, helpstring("Returns message content.")]
  248.         HRESULT message([out, retval] BSTR* message);
  249.     };
  250.     [
  251.       odl,
  252.       uuid(15179CD8-CC12-4242-A58E-E412217FF343),
  253.       helpstring("VLC Log iterator"),
  254.       dual,
  255.       oleautomation
  256.     ]
  257.     interface IVLCMessageIterator : IDispatch
  258.     {
  259.         [propget, helpstring("Returns whether a message is available.")]
  260.         HRESULT hasNext([out, retval] VARIANT_BOOL* hasNext);
  261.         [helpstring("Returns next message.")]
  262.         HRESULT next([out, retval] IVLCMessage** msg);
  263.     };
  264.     [
  265.       odl,
  266.       uuid(6C5CE55D-2D6C-4AAD-8299-C62D2371F106),
  267.       helpstring("VLC Log Messages Collection."),
  268.       dual,
  269.       oleautomation
  270.     ]
  271.     interface IVLCMessages : IDispatch
  272.     {
  273.         [id(DISPID_NEWENUM), propget]
  274.         HRESULT _NewEnum([out, retval] IUnknown** _NewEnum);
  275.         [helpstring("Clear all messages from log.")]
  276.         HRESULT clear();
  277.         [propget, helpstring("Returns the number of messages.")]
  278.         HRESULT count([out, retval] long* count);
  279.         [helpstring("Returns an iterator for messages in log")]
  280.         HRESULT iterator([out, retval] IVLCMessageIterator** iter);
  281.     };
  282.     [
  283.       odl,
  284.       uuid(8E3BC3D9-62E9-48FB-8A6D-993F9ABC4A0A),
  285.       helpstring("VLC Log APIs"),
  286.       dual,
  287.       oleautomation
  288.     ]
  289.     interface IVLCLog : IDispatch
  290.     {
  291.         [propget, helpstring("Returns messages in log")]
  292.         HRESULT messages([out, retval] IVLCMessages** iter);
  293.         [propget, helpstring("Returns/Sets the log versbosity level.")]
  294.         HRESULT verbosity([out, retval] long* level);
  295.         [propput, helpstring("Returns/Sets the log versbosity level.")]
  296.         HRESULT verbosity([in] long level);
  297.     };
  298.     [
  299.       odl,
  300.       uuid(FD37FE32-82BC-4A25-B056-315F4DBB194D),
  301.       helpstring("VLC Playlist Items collection"),
  302.       dual,
  303.       oleautomation
  304.     ]
  305.     interface IVLCPlaylistItems : IDispatch
  306.     {
  307.         [propget, helpstring("Returns number of items in playlist.")]
  308.         HRESULT count([out, retval] long* count);
  309.         [helpstring("Remove all items from playlist.")]
  310.         HRESULT clear();
  311.         [helpstring("remove item from playlist.")]
  312.         HRESULT remove([in] long itemId);
  313.     };
  314.     [
  315.       odl,
  316.       uuid(54613049-40BF-4035-9E70-0A9312C0188D),
  317.       helpstring("VLC Playlist APIs"),
  318.       dual,
  319.       oleautomation
  320.     ]
  321.     interface IVLCPlaylist : IDispatch
  322.     {
  323.         [hidden, propget, helpstring("Returns number of items in playlist. (deprecated)")]
  324.         HRESULT itemCount([out, retval] long* count);
  325.         [propget, helpstring("Returns whether playback displays video.")]
  326.         HRESULT isPlaying([out, retval] VARIANT_BOOL* playing);
  327.         [helpstring("Add a playlist item.")]
  328.         HRESULT add([in] BSTR uri, [in, optional] VARIANT name, [in, optional] VARIANT options, [out, retval] long* itemId);
  329.         [helpstring("Play/Resume the playlist.")]
  330.         HRESULT play();
  331.         [helpstring("Play item in playlist.")]
  332.         HRESULT playItem([in] long itemId);
  333.         [helpstring("Play/Pause current clip.")]
  334.         HRESULT togglePause();
  335.         [helpstring("Stop current clip.")]
  336.         HRESULT stop();
  337.         [helpstring("Advance to next item in playlist.")]
  338.         HRESULT next();
  339.         [helpstring("Advance to previous item in playlist.")]
  340.         HRESULT prev();
  341.         [hidden, helpstring("Remove all items from playlist. (deprecated)")]
  342.         HRESULT clear();
  343.         [hidden, helpstring("Remove item from playlist. (deprecated)")]
  344.         HRESULT removeItem([in] long item);
  345.         [propget, helpstring("Returns the playlist items collection object.")]
  346.         HRESULT items([out, retval] IVLCPlaylistItems** obj);
  347.     };
  348.     [
  349.       odl,
  350.       uuid(0AAEDF0B-D333-4B27-A0C6-BBF31413A42E),
  351.       helpstring("VLC Video APIs"),
  352.       dual,
  353.       oleautomation
  354.     ]
  355.     interface IVLCVideo : IDispatch
  356.     {
  357.         [propget, helpstring("Returns/sets the fullscreen state.")]
  358.         HRESULT fullscreen([out, retval] VARIANT_BOOL* fullscreen);
  359.         [propput, helpstring("Returns/sets the fullscreen state.")]
  360.         HRESULT fullscreen([in] VARIANT_BOOL fullscreen);
  361.         [propget, helpstring("Returns video original width.")]
  362.         HRESULT width([out, retval] long* width);
  363.         [propget, helpstring("Returns video original height.")]
  364.         HRESULT height([out, retval] long* height);
  365.         [propget, helpstring("Returns video aspect ratio.")]
  366.         HRESULT aspectRatio([out, retval] BSTR* aspect);
  367.         [propput, helpstring("Sets video aspect ratio.")]
  368.         HRESULT aspectRatio([in] BSTR aspect);
  369.         [propget, helpstring("Returns video subtitle used.")]
  370.         HRESULT subtitle([out, retval] long* spu);
  371.         [propput, helpstring("Sets video subtitle to use.")]
  372.         HRESULT subtitle([in] long spu);
  373.         [propget, helpstring("Returns crop filter geometry.")]
  374.         HRESULT crop([out, retval] BSTR* geometry);
  375.         [propput, helpstring("Sets crop filter geometry.")]
  376.         HRESULT crop([in] BSTR geometry);
  377.         [propget, helpstring("Returns teletext page used.")]
  378.         HRESULT teletext([out, retval] long* page);
  379.         [propput, helpstring("Sets teletext page to use.")]
  380.         HRESULT teletext([in] long page);
  381.         [helpstring("toggle fullscreen/windowed state.")]
  382.         HRESULT toggleFullscreen();
  383.         [helpstring("take video snapshot and save it into picture object.")]
  384.         HRESULT takeSnapshot([out, retval] IPictureDisp** picture);
  385.         [helpstring("toggle teletext transparent state.")]
  386.         HRESULT toggleTeletext();
  387.     };
  388.     [
  389.       odl,
  390.       uuid(2D719729-5333-406C-BF12-8DE787FD65E3),
  391.       helpstring("VLC Control"),
  392.       dual,
  393.       oleautomation
  394.     ]
  395.     interface IVLCControl2 : IDispatch
  396.     {
  397.         [id(DISPID_AutoLoop), propget, helpstring("Returns/sets a value that determines whether the playlist is looped")]
  398.         HRESULT AutoLoop([out, retval] VARIANT_BOOL* autoloop);
  399.         [id(DISPID_AutoLoop), propput, helpstring("Returns/sets a value that determines whether the playlist is looped")]
  400.         HRESULT AutoLoop([in] VARIANT_BOOL autoloop);
  401.         [id(DISPID_AutoPlay), propget, helpstring("Returns/sets a value that determines whether the playlist is played on startup")]
  402.         HRESULT AutoPlay([out, retval] VARIANT_BOOL* autoplay);
  403.         [id(DISPID_AutoPlay), propput, helpstring("Returns/Sets a value that determines whether the playlist is played on startup")]
  404.         HRESULT AutoPlay([in] VARIANT_BOOL autoplay);
  405.         [id(DISPID_BaseURL), propget, helpstring("Returns/sets the base URL for relative paths")]
  406.         HRESULT BaseURL([out, retval] BSTR* url);
  407.         [id(DISPID_BaseURL), propput, helpstring("Returns/sets the base URL for relative paths")]
  408.         HRESULT BaseURL([in] BSTR url);
  409.         [id(DISPID_StartTime), propget, helpstring("Returns/sets playback start time of URL.")]
  410.         HRESULT StartTime([out, retval] long* seconds);
  411.         [id(DISPID_StartTime), propput, helpstring("Returns/sets playback start time of URL.")]
  412.         HRESULT StartTime([in] long seconds);
  413.         [id(DISPID_MRL), propget, helpstring("Returns/sets the default MRL in playlist")]
  414.         HRESULT MRL([out, retval] BSTR* mrl);
  415.         [id(DISPID_MRL), propput, helpstring("Returns/sets the default MRL in playlist")]
  416.         HRESULT MRL([in] BSTR mrl);
  417.         [propget, helpstring("Returns VLC Version.")]
  418.         HRESULT VersionInfo([out, retval] BSTR* version);
  419.         [id(DISPID_Visible), propget, helpstring("Returns/sets a value that determines whether viewing area is visible or hidden.")]
  420.         HRESULT Visible([out, retval] VARIANT_BOOL* visible);
  421.         [id(DISPID_Visible), propput, helpstring("Returns/sets a value that determines whether viewing area is visible or hidden.")]
  422.         HRESULT Visible([in] VARIANT_BOOL visible);
  423.         [id(DISPID_Volume), propget, helpstring("Returns/sets default audio volume.")]
  424.         HRESULT Volume([out, retval] long* volume);
  425.         [id(DISPID_Volume), propput, helpstring("Returns/sets default audio volume.")]
  426.         HRESULT Volume([in] long volume);
  427.         [id(DISPID_BackColor), propget, helpstring("Returns/sets background color.")]
  428.         HRESULT BackColor([out, retval] OLE_COLOR* backcolor);
  429.         [id(DISPID_BackColor), propput, helpstring("Returns/sets background color.")]
  430.         HRESULT BackColor([in] OLE_COLOR backcolor);
  431.         /*
  432.          * caution: vlcobject.toolbar:bool does not yet exists in Firefox
  433.          * plugin. Official usage is through "toolbar" property for now,
  434.          * which is compatibile with Firefox.
  435.          */
  436.         [id(DISPID_Toolbar), propget, helpstring("Returns/sets visibility of the toolbar")]
  437.         HRESULT Toolbar([out, retval] VARIANT_BOOL* visible);
  438.         [id(DISPID_Toolbar), propput, helpstring("Returns/sets visibility of the toolbar")]
  439.         HRESULT Toolbar([in] VARIANT_BOOL visible);
  440.         [propget, helpstring("Returns the audio object.")]
  441.         HRESULT audio([out, retval] IVLCAudio** obj);
  442.         [propget, helpstring("Returns the audio object.")]
  443.         HRESULT input([out, retval] IVLCInput** obj);
  444.         [propget, helpstring("Returns the log object.")]
  445.         HRESULT log([out, retval] IVLCLog** obj);
  446.         [propget, helpstring("Returns the playlist object.")]
  447.         HRESULT playlist([out, retval] IVLCPlaylist** obj);
  448.         [propget, helpstring("Returns the audio object.")]
  449.         HRESULT video([out, retval] IVLCVideo** obj);
  450.     };
  451.     [
  452.       uuid(E23FE9C6-778E-49D4-B537-38FCDE4887D8),
  453.       helpstring("VLC control (deprecated)"),
  454.       control
  455.     ]
  456.     coclass VLCPlugin
  457.     {
  458.         [default] interface IVLCControl;
  459.         interface IVLCControl2;
  460.         [default, source] dispinterface DVLCEvents;
  461.     };
  462.     [
  463.       uuid(9BE31822-FDAD-461B-AD51-BE1D1C159921),
  464.       helpstring("VLC control"),
  465.       control
  466.     ]
  467.     coclass VLCPlugin2
  468.     {
  469.         [default] interface IVLCControl2;
  470.         interface IVLCControl;
  471.     };
  472. };