mirror of
https://code.videolan.org/videolan/vlc
synced 2024-09-28 23:09:59 +02:00
6d094bafb3
- self registration (Internet installation now possible)
159 lines
6.9 KiB
Plaintext
159 lines
6.9 KiB
Plaintext
/*****************************************************************************
|
|
* axvlc.idl: ActiveX control for VLC
|
|
*****************************************************************************
|
|
* Copyright (C) 2005 VideoLAN
|
|
*
|
|
* Authors: Damien Fouilleul <Damien.Fouilleul@laposte.net>
|
|
*
|
|
* 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
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* 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.
|
|
*****************************************************************************/
|
|
|
|
[
|
|
uuid(DF2BBE39-40A8-433b-A279-073F48DA94B6),
|
|
version(1.0),
|
|
helpstring("VideoLAN VLC ActiveX Plugin"),
|
|
]
|
|
library AXVLC
|
|
{
|
|
importlib("stdole2.tlb");
|
|
|
|
// Forward declare all types defined in this typelib
|
|
interface IVLCControl;
|
|
dispinterface DVLCEvents;
|
|
|
|
enum VLCPlaylistMode {
|
|
VLCPlayListInsert = 1,
|
|
VLCPlayListReplace = 2,
|
|
VLCPlayListAppend = 4,
|
|
VLCPlayListGo = 8,
|
|
VLCPlayListCheckInsert = 16
|
|
};
|
|
|
|
// 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_PlayEvent = 1;
|
|
const int DISPID_PauseEvent = 2;
|
|
const int DISPID_StopEvent = 3;
|
|
|
|
[
|
|
odl,
|
|
uuid(C2FA41D0-B113-476e-AC8C-9BD14999C1C1),
|
|
helpstring("VLC Control"),
|
|
dual,
|
|
hidden,
|
|
oleautomation
|
|
]
|
|
interface IVLCControl : IDispatch {
|
|
|
|
[id(0), bindable, defaultbind, propget, helpstring("Specifies current target in playlist")]
|
|
HRESULT Value([out, retval] VARIANT* pvarValue);
|
|
[id(0), bindable, defaultbind, propput, helpstring("Specifies current target in playlist")]
|
|
HRESULT Value([in] VARIANT pvarValue);
|
|
[id(DISPID_Visible), propget, bindable, helpstring("Shows or hides plugin.")]
|
|
HRESULT Visible([out, retval] VARIANT_BOOL* visible);
|
|
[id(DISPID_Visible), propput, bindable, helpstring("Shows or hides plugin.")]
|
|
HRESULT Visible([in] VARIANT_BOOL visible);
|
|
[helpstring("Play current target in playlist.")]
|
|
HRESULT play();
|
|
[helpstring("Pause playback.")]
|
|
HRESULT pause();
|
|
[helpstring("Stop playback.")]
|
|
HRESULT stop();
|
|
[id(DISPID_Playing), bindable, propget, helpstring("Specifies whether VLC is 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.")]
|
|
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.")]
|
|
HRESULT Position([in] float position);
|
|
[id(DISPID_Time), bindable, propget, helpstring("Specifies playback time relative to the start of current target in playlist.")]
|
|
HRESULT Time([out, retval] int* seconds);
|
|
[id(DISPID_Time), bindable, propput, helpstring("Specifies playback time relative to the start of current target in playlist.")]
|
|
HRESULT Time([in] int seconds);
|
|
[helpstring("Advance or backtrack playback time, relative to current time.")]
|
|
HRESULT shuttle([in] int seconds);
|
|
[helpstring("Switch between normal and fullscreen video.")]
|
|
HRESULT fullscreen();
|
|
[id(DISPID_Length), bindable, propget, helpstring("Returns total length in seconds of current target in playlist, may be unknown.")]
|
|
HRESULT Length([out, retval] int* seconds);
|
|
[helpstring("Increases playback speed, one of 1x, 2x, 4x, 8x.")]
|
|
HRESULT playFaster();
|
|
[helpstring("Decreases playback speed, one of 1x, 2x, 4x, 8x.")]
|
|
HRESULT playSlower();
|
|
[id(DISPID_Volume), bindable, propget, helpstring("Specifies playback sound volume, ranges from 0 to 200%.")]
|
|
HRESULT Volume([out, retval] int* volume);
|
|
[id(DISPID_Volume), bindable, propput, helpstring("Specifies playback sound volume, ranges from 0 to 200%.")]
|
|
HRESULT Volume([in] int volume);
|
|
[helpstring("Mute/unmute playback sound volume.")]
|
|
HRESULT toggleMute();
|
|
[helpstring("Add a target to the current playlist.")]
|
|
|
|
/*
|
|
** use VARIANT rather than a SAFEARRAY as argument type
|
|
** for compatibility with some scripting language (JScript)
|
|
*/
|
|
|
|
HRESULT addTarget([in] BSTR uri, [in] VARIANT options, [in] enum VLCPlaylistMode mode, [in] int position);
|
|
[propget, helpstring("Returns index of current target in playlist.")]
|
|
HRESULT PlaylistIndex([out, retval] int* index);
|
|
[propget, helpstring("Returns number of items in playlist.")]
|
|
HRESULT PlaylistCount([out, retval] int* index);
|
|
[helpstring("Advance to next item in playlist.")]
|
|
HRESULT playlistNext();
|
|
[helpstring("Advance to previous item in playlist.")]
|
|
HRESULT playlistPrev();
|
|
[helpstring("Remove all items from playlist.")]
|
|
HRESULT playlistClear();
|
|
[propget, helpstring("Returns VLC Version.")]
|
|
HRESULT VersionInfo([out, retval] BSTR* version);
|
|
};
|
|
|
|
[
|
|
uuid(DF48072F-5EF8-434e-9B40-E2F3AE759B5F),
|
|
helpstring("Event interface for VLC control"),
|
|
hidden
|
|
]
|
|
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();
|
|
};
|
|
|
|
[
|
|
uuid(E23FE9C6-778E-49D4-B537-38FCDE4887D8),
|
|
helpstring("VLC control"),
|
|
control
|
|
]
|
|
coclass VLCPlugin {
|
|
[default] interface IVLCControl;
|
|
[default, source] dispinterface DVLCEvents;
|
|
};
|
|
};
|