Commit 5fc57a8e authored by JP Dinger's avatar JP Dinger

Update activex plugin and test page for new logo interface.

parent 8e6efd05
......@@ -2,6 +2,7 @@
* axvlc.idl: ActiveX control for VLC
*****************************************************************************
* Copyright (C) 2006 the VideoLAN team
* Copyright (C) 2010 M2X BV
*
* Authors: Damien Fouilleul <Damien.Fouilleul@laposte.net>
* Jean-Paul Saman <jpsaman _at_ m2x _dot_ nl>
......@@ -21,8 +22,10 @@
* 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]
// 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";
......@@ -129,13 +132,13 @@ library AXVLC
HRESULT setVariable([in] BSTR name, [in] VARIANT value);
[helpstring("Returns the value of a VLC variable.")]
HRESULT getVariable([in] BSTR name, [out, retval] VARIANT *value);
[helpstring("Add an item to the playlist.")]
/*
** use VARIANT rather than a SAFEARRAY as argument type
** for compatibility with some scripting language (JScript)
*/
[helpstring("Add an item to the playlist.")]
HRESULT addTarget([in] BSTR uri, [in] VARIANT options, [in] enum VLCPlaylistMode mode, [in] int position);
[propget, helpstring("Returns index of current item in playlist.")]
HRESULT PlaylistIndex([out, retval] int* index);
......@@ -463,6 +466,54 @@ library AXVLC
HRESULT y ([in] long val);
};
[
odl,
uuid(8a4a20c2-93f3-44e8-8644-beb2e3487e84),
helpstring("VLC Logo Filter"),
dual,
oleautomation
]
interface IVLCLogo : IDispatch
{
[helpstring("Enable the logo filter.")]
HRESULT enable();
[helpstring("Disable the logo filter.")]
HRESULT disable();
[helpstring("specify input file[[,delay],alpha].")]
HRESULT file([in] BSTR fname);
[propget, helpstring("")]
HRESULT delay([out, retval] long* val);
[propput, helpstring("Set delay-to-next-picture in miliseconds.")]
HRESULT delay([in] long val);
[propget, helpstring("")]
HRESULT repeat([out, retval] long* val);
[propput, helpstring("Repeat: -1 continuous (default), 0 no repeat, ....")]
HRESULT repeat([in] long val);
[propget, helpstring("Returns the `global' alpha value.")]
HRESULT opacity([out, retval] long* val);
[propput, helpstring("Alpha value: 0 opaque to 255 fully transparent")]
HRESULT opacity([in] long val);
[propget, helpstring("Retrieve picture position.")]
HRESULT position([out, retval] BSTR* val);
[propput, helpstring("Picture positioning relative to: center, left, right, top, bottom, top-left, top-right, bottom-left, bottom-right.")]
HRESULT position([in] BSTR val);
[propget, helpstring("Picture x offset.")]
HRESULT x([out, retval] long* val);
[propput, helpstring("Picture x offset.")]
HRESULT x([in] long val);
[propget, helpstring("Picture y offset.")]
HRESULT y([out, retval] long* val);
[propput, helpstring("Picture y offset.")]
HRESULT y([in] long val);
};
[
odl,
uuid(0AAEDF0B-D333-4B27-A0C6-BBF31413A42E),
......@@ -520,6 +571,9 @@ library AXVLC
[propget, helpstring("Returns the marquee object.")]
HRESULT marquee([out, retval] IVLCMarquee** obj);
[propget, helpstring("Returns the logo object.")]
HRESULT logo([out, retval] IVLCLogo** obj);
};
[
......
/*** Autogenerated by WIDL 1.0 from axvlc.idl - Do not edit ***/
/*** Autogenerated by WIDL 1.1.23 from axvlc.idl - Do not edit ***/
#include <rpc.h>
#include <rpcndr.h>
......@@ -22,6 +22,7 @@ DEFINE_GUID(IID_IVLCPlaylistItems, 0xfd37fe32, 0x82bc, 0x4a25, 0xb0,0x56, 0x31,0
DEFINE_GUID(IID_IVLCPlaylist, 0x54613049, 0x40bf, 0x4035, 0x9e,0x70, 0x0a,0x93,0x12,0xc0,0x18,0x8d);
DEFINE_GUID(IID_IVLCSubtitle, 0x465e787a, 0x0556, 0x452f, 0x94,0x77, 0x95,0x4e,0x4a,0x94,0x00,0x03);
DEFINE_GUID(IID_IVLCMarquee, 0x8d076ad6, 0x9b6f, 0x4150, 0xa0,0xfd, 0x5d,0x7e,0x8c,0x8c,0xb0,0x2c);
DEFINE_GUID(IID_IVLCLogo, 0x8a4a20c2, 0x93f3, 0x44e8, 0x86,0x44, 0xbe,0xb2,0xe3,0x48,0x7e,0x84);
DEFINE_GUID(IID_IVLCVideo, 0x0aaedf0b, 0xd333, 0x4b27, 0xa0,0xc6, 0xbb,0xf3,0x14,0x13,0xa4,0x2e);
DEFINE_GUID(IID_IVLCControl2, 0x2d719729, 0x5333, 0x406c, 0xbf,0x12, 0x8d,0xe7,0x87,0xfd,0x65,0xe3);
DEFINE_GUID(CLSID_VLCPlugin, 0xe23fe9c6, 0x778e, 0x49d4, 0xb5,0x37, 0x38,0xfc,0xde,0x48,0x87,0xd8);
......
/*** Autogenerated by WIDL 1.0 from axvlc.idl - Do not edit ***/
/*** Autogenerated by WIDL 1.1.23 from axvlc.idl - Do not edit ***/
#include <rpc.h>
#include <rpcndr.h>
#ifndef __WIDL_AXVLC_IDL_H
#define __WIDL_AXVLC_IDL_H
#ifdef __cplusplus
extern "C" {
#endif
/* Headers for imported files */
#include <ocidl.h>
/* Forward declarations */
#ifndef __IVLCControl_FWD_DEFINED__
#define __IVLCControl_FWD_DEFINED__
typedef interface IVLCControl IVLCControl;
#endif
#ifndef __DVLCEvents_FWD_DEFINED__
#define __DVLCEvents_FWD_DEFINED__
typedef interface DVLCEvents DVLCEvents;
#endif
#ifndef __IVLCAudio_FWD_DEFINED__
#define __IVLCAudio_FWD_DEFINED__
typedef interface IVLCAudio IVLCAudio;
#endif
#ifndef __IVLCInput_FWD_DEFINED__
#define __IVLCInput_FWD_DEFINED__
typedef interface IVLCInput IVLCInput;
#endif
#ifndef __IVLCMessage_FWD_DEFINED__
#define __IVLCMessage_FWD_DEFINED__
typedef interface IVLCMessage IVLCMessage;
#endif
#ifndef __IVLCMessageIterator_FWD_DEFINED__
#define __IVLCMessageIterator_FWD_DEFINED__
typedef interface IVLCMessageIterator IVLCMessageIterator;
#endif
#ifndef __IVLCMessages_FWD_DEFINED__
#define __IVLCMessages_FWD_DEFINED__
typedef interface IVLCMessages IVLCMessages;
#endif
#ifndef __IVLCLog_FWD_DEFINED__
#define __IVLCLog_FWD_DEFINED__
typedef interface IVLCLog IVLCLog;
#endif
#ifndef __IVLCPlaylistItems_FWD_DEFINED__
#define __IVLCPlaylistItems_FWD_DEFINED__
typedef interface IVLCPlaylistItems IVLCPlaylistItems;
#endif
#ifndef __IVLCPlaylist_FWD_DEFINED__
#define __IVLCPlaylist_FWD_DEFINED__
typedef interface IVLCPlaylist IVLCPlaylist;
#endif
#ifndef __IVLCSubtitle_FWD_DEFINED__
#define __IVLCSubtitle_FWD_DEFINED__
typedef interface IVLCSubtitle IVLCSubtitle;
#endif
#ifndef __IVLCMarquee_FWD_DEFINED__
#define __IVLCMarquee_FWD_DEFINED__
typedef interface IVLCMarquee IVLCMarquee;
#endif
#ifndef __IVLCLogo_FWD_DEFINED__
#define __IVLCLogo_FWD_DEFINED__
typedef interface IVLCLogo IVLCLogo;
#endif
#ifndef __IVLCVideo_FWD_DEFINED__
#define __IVLCVideo_FWD_DEFINED__
typedef interface IVLCVideo IVLCVideo;
#endif
#ifndef __IVLCControl2_FWD_DEFINED__
#define __IVLCControl2_FWD_DEFINED__
typedef interface IVLCControl2 IVLCControl2;
#endif
#ifndef __VLCPlugin_FWD_DEFINED__
#define __VLCPlugin_FWD_DEFINED__
typedef struct VLCPlugin VLCPlugin;
#endif /* defined __VLCPlugin_FWD_DEFINED__ */
#ifndef __VLCPlugin2_FWD_DEFINED__
#define __VLCPlugin2_FWD_DEFINED__
typedef struct VLCPlugin2 VLCPlugin2;
#endif /* defined __VLCPlugin2_FWD_DEFINED__ */
DEFINE_GUID(LIBID_AXVLC, 0xdf2bbe39, 0x40a8, 0x433b, 0xa2,0x79, 0x07,0x3f,0x48,0xda,0x94,0xb6);
#ifndef __IVLCControl_FWD_DEFINED__
......@@ -821,32 +914,32 @@ interface IVLCAudio : public IDispatch
VARIANT_BOOL muted) = 0;
virtual HRESULT STDMETHODCALLTYPE get_volume(
long *volume) = 0;
LONG *volume) = 0;
virtual HRESULT STDMETHODCALLTYPE put_volume(
long volume) = 0;
LONG volume) = 0;
virtual HRESULT STDMETHODCALLTYPE toggleMute(
) = 0;
virtual HRESULT STDMETHODCALLTYPE get_track(
long *track) = 0;
LONG *track) = 0;
virtual HRESULT STDMETHODCALLTYPE put_track(
long track) = 0;
LONG track) = 0;
virtual HRESULT STDMETHODCALLTYPE get_count(
long *trackNumber) = 0;
LONG *trackNumber) = 0;
virtual HRESULT STDMETHODCALLTYPE description(
long trackID,
LONG trackID,
BSTR *name) = 0;
virtual HRESULT STDMETHODCALLTYPE get_channel(
long *channel) = 0;
LONG *channel) = 0;
virtual HRESULT STDMETHODCALLTYPE put_channel(
long channel) = 0;
LONG channel) = 0;
};
#else
......@@ -906,39 +999,39 @@ typedef struct IVLCAudioVtbl {
HRESULT (STDMETHODCALLTYPE *get_volume)(
IVLCAudio* This,
long *volume);
LONG *volume);
HRESULT (STDMETHODCALLTYPE *put_volume)(
IVLCAudio* This,
long volume);
LONG volume);
HRESULT (STDMETHODCALLTYPE *toggleMute)(
IVLCAudio* This);
HRESULT (STDMETHODCALLTYPE *get_track)(
IVLCAudio* This,
long *track);
LONG *track);
HRESULT (STDMETHODCALLTYPE *put_track)(
IVLCAudio* This,
long track);
LONG track);
HRESULT (STDMETHODCALLTYPE *get_count)(
IVLCAudio* This,
long *trackNumber);
LONG *trackNumber);
HRESULT (STDMETHODCALLTYPE *description)(
IVLCAudio* This,
long trackID,
LONG trackID,
BSTR *name);
HRESULT (STDMETHODCALLTYPE *get_channel)(
IVLCAudio* This,
long *channel);
LONG *channel);
HRESULT (STDMETHODCALLTYPE *put_channel)(
IVLCAudio* This,
long channel);
LONG channel);
END_INTERFACE
} IVLCAudioVtbl;
......@@ -990,7 +1083,7 @@ void __RPC_STUB IVLCAudio_put_mute_Stub(
DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVLCAudio_get_volume_Proxy(
IVLCAudio* This,
long *volume);
LONG *volume);
void __RPC_STUB IVLCAudio_get_volume_Stub(
IRpcStubBuffer* This,
IRpcChannelBuffer* pRpcChannelBuffer,
......@@ -998,7 +1091,7 @@ void __RPC_STUB IVLCAudio_get_volume_Stub(
DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVLCAudio_put_volume_Proxy(
IVLCAudio* This,
long volume);
LONG volume);
void __RPC_STUB IVLCAudio_put_volume_Stub(
IRpcStubBuffer* This,
IRpcChannelBuffer* pRpcChannelBuffer,
......@@ -1013,7 +1106,7 @@ void __RPC_STUB IVLCAudio_toggleMute_Stub(
DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVLCAudio_get_track_Proxy(
IVLCAudio* This,
long *track);
LONG *track);
void __RPC_STUB IVLCAudio_get_track_Stub(
IRpcStubBuffer* This,
IRpcChannelBuffer* pRpcChannelBuffer,
......@@ -1021,7 +1114,7 @@ void __RPC_STUB IVLCAudio_get_track_Stub(
DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVLCAudio_put_track_Proxy(
IVLCAudio* This,
long track);
LONG track);
void __RPC_STUB IVLCAudio_put_track_Stub(
IRpcStubBuffer* This,
IRpcChannelBuffer* pRpcChannelBuffer,
......@@ -1029,7 +1122,7 @@ void __RPC_STUB IVLCAudio_put_track_Stub(
DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVLCAudio_get_count_Proxy(
IVLCAudio* This,
long *trackNumber);
LONG *trackNumber);
void __RPC_STUB IVLCAudio_get_count_Stub(
IRpcStubBuffer* This,
IRpcChannelBuffer* pRpcChannelBuffer,
......@@ -1037,7 +1130,7 @@ void __RPC_STUB IVLCAudio_get_count_Stub(
DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVLCAudio_description_Proxy(
IVLCAudio* This,
long trackID,
LONG trackID,
BSTR *name);
void __RPC_STUB IVLCAudio_description_Stub(
IRpcStubBuffer* This,
......@@ -1046,7 +1139,7 @@ void __RPC_STUB IVLCAudio_description_Stub(
DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVLCAudio_get_channel_Proxy(
IVLCAudio* This,
long *channel);
LONG *channel);
void __RPC_STUB IVLCAudio_get_channel_Stub(
IRpcStubBuffer* This,
IRpcChannelBuffer* pRpcChannelBuffer,
......@@ -1054,7 +1147,7 @@ void __RPC_STUB IVLCAudio_get_channel_Stub(
DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVLCAudio_put_channel_Proxy(
IVLCAudio* This,
long channel);
LONG channel);
void __RPC_STUB IVLCAudio_put_channel_Stub(
IRpcStubBuffer* This,
IRpcChannelBuffer* pRpcChannelBuffer,
......@@ -1089,7 +1182,7 @@ interface IVLCInput : public IDispatch
double time) = 0;
virtual HRESULT STDMETHODCALLTYPE get_state(
long *state) = 0;
LONG *state) = 0;
virtual HRESULT STDMETHODCALLTYPE get_rate(
double *rate) = 0;
......@@ -1173,7 +1266,7 @@ typedef struct IVLCInputVtbl {
HRESULT (STDMETHODCALLTYPE *get_state)(
IVLCInput* This,
long *state);
LONG *state);
HRESULT (STDMETHODCALLTYPE *get_rate)(
IVLCInput* This,
......@@ -1264,7 +1357,7 @@ void __RPC_STUB IVLCInput_put_time_Stub(
DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVLCInput_get_state_Proxy(
IVLCInput* This,
long *state);
LONG *state);
void __RPC_STUB IVLCInput_get_state_Stub(
IRpcStubBuffer* This,
IRpcChannelBuffer* pRpcChannelBuffer,
......@@ -1319,7 +1412,7 @@ interface IVLCMessage : public IDispatch
VARIANT *message) = 0;
virtual HRESULT STDMETHODCALLTYPE get_severity(
long *level) = 0;
LONG *level) = 0;
virtual HRESULT STDMETHODCALLTYPE get_type(
BSTR *type) = 0;
......@@ -1387,7 +1480,7 @@ typedef struct IVLCMessageVtbl {
HRESULT (STDMETHODCALLTYPE *get_severity)(
IVLCMessage* This,
long *level);
LONG *level);
HRESULT (STDMETHODCALLTYPE *get_type)(
IVLCMessage* This,
......@@ -1442,7 +1535,7 @@ void __RPC_STUB IVLCMessage_get__Value_Stub(
DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVLCMessage_get_severity_Proxy(
IVLCMessage* This,
long *level);
LONG *level);
void __RPC_STUB IVLCMessage_get_severity_Stub(
IRpcStubBuffer* This,
IRpcChannelBuffer* pRpcChannelBuffer,
......@@ -1614,7 +1707,7 @@ interface IVLCMessages : public IDispatch
) = 0;
virtual HRESULT STDMETHODCALLTYPE get_count(
long *count) = 0;
LONG *count) = 0;
virtual HRESULT STDMETHODCALLTYPE iterator(
IVLCMessageIterator **iter) = 0;
......@@ -1676,7 +1769,7 @@ typedef struct IVLCMessagesVtbl {
HRESULT (STDMETHODCALLTYPE *get_count)(
IVLCMessages* This,
long *count);
LONG *count);
HRESULT (STDMETHODCALLTYPE *iterator)(
IVLCMessages* This,
......@@ -1724,7 +1817,7 @@ void __RPC_STUB IVLCMessages_clear_Stub(
DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVLCMessages_get_count_Proxy(
IVLCMessages* This,
long *count);
LONG *count);
void __RPC_STUB IVLCMessages_get_count_Stub(
IRpcStubBuffer* This,
IRpcChannelBuffer* pRpcChannelBuffer,
......@@ -1755,10 +1848,10 @@ interface IVLCLog : public IDispatch
IVLCMessages **iter) = 0;
virtual HRESULT STDMETHODCALLTYPE get_verbosity(
long *level) = 0;
LONG *level) = 0;
virtual HRESULT STDMETHODCALLTYPE put_verbosity(
long level) = 0;
LONG level) = 0;
};
#else
......@@ -1814,11 +1907,11 @@ typedef struct IVLCLogVtbl {
HRESULT (STDMETHODCALLTYPE *get_verbosity)(
IVLCLog* This,
long *level);
LONG *level);
HRESULT (STDMETHODCALLTYPE *put_verbosity)(
IVLCLog* This,
long level);
LONG level);
END_INTERFACE
} IVLCLogVtbl;
......@@ -1854,7 +1947,7 @@ void __RPC_STUB IVLCLog_get_messages_Stub(
DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVLCLog_get_verbosity_Proxy(
IVLCLog* This,
long *level);
LONG *level);
void __RPC_STUB IVLCLog_get_verbosity_Stub(
IRpcStubBuffer* This,
IRpcChannelBuffer* pRpcChannelBuffer,
......@@ -1862,7 +1955,7 @@ void __RPC_STUB IVLCLog_get_verbosity_Stub(
DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVLCLog_put_verbosity_Proxy(
IVLCLog* This,
long level);
LONG level);
void __RPC_STUB IVLCLog_put_verbosity_Stub(
IRpcStubBuffer* This,
IRpcChannelBuffer* pRpcChannelBuffer,
......@@ -1871,11 +1964,6 @@ void __RPC_STUB IVLCLog_put_verbosity_Stub(
#endif /* __IVLCLog_INTERFACE_DEFINED__ */
#ifndef __IVLCPlaylistItems_FWD_DEFINED__
#define __IVLCPlaylistItems_FWD_DEFINED__
typedef interface IVLCPlaylistItems IVLCPlaylistItems;
#endif
/*****************************************************************************
* IVLCPlaylistItems interface
*/
......@@ -1887,13 +1975,13 @@ DEFINE_GUID(IID_IVLCPlaylistItems, 0xfd37fe32, 0x82bc, 0x4a25, 0xb0,0x56, 0x31,0
interface IVLCPlaylistItems : public IDispatch
{
virtual HRESULT STDMETHODCALLTYPE get_count(
long *count) = 0;
LONG *count) = 0;
virtual HRESULT STDMETHODCALLTYPE clear(
) = 0;
virtual HRESULT STDMETHODCALLTYPE remove(
long itemId) = 0;
LONG itemId) = 0;
};
#else
......@@ -1945,14 +2033,14 @@ typedef struct IVLCPlaylistItemsVtbl {
/*** IVLCPlaylistItems methods ***/
HRESULT (STDMETHODCALLTYPE *get_count)(
IVLCPlaylistItems* This,
long *count);
LONG *count);
HRESULT (STDMETHODCALLTYPE *clear)(
IVLCPlaylistItems* This);
HRESULT (STDMETHODCALLTYPE *remove)(
IVLCPlaylistItems* This,
long itemId);
LONG itemId);
END_INTERFACE
} IVLCPlaylistItemsVtbl;
......@@ -1980,7 +2068,7 @@ interface IVLCPlaylistItems {
HRESULT STDMETHODCALLTYPE IVLCPlaylistItems_get_count_Proxy(
IVLCPlaylistItems* This,
long *count);
LONG *count);
void __RPC_STUB IVLCPlaylistItems_get_count_Stub(
IRpcStubBuffer* This,
IRpcChannelBuffer* pRpcChannelBuffer,
......@@ -1995,7 +2083,7 @@ void __RPC_STUB IVLCPlaylistItems_clear_Stub(
DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVLCPlaylistItems_remove_Proxy(
IVLCPlaylistItems* This,
long itemId);
LONG itemId);
void __RPC_STUB IVLCPlaylistItems_remove_Stub(
IRpcStubBuffer* This,
IRpcChannelBuffer* pRpcChannelBuffer,
......@@ -2015,7 +2103,7 @@ DEFINE_GUID(IID_IVLCPlaylist, 0x54613049, 0x40bf, 0x4035, 0x9e,0x70, 0x0a,0x93,0
interface IVLCPlaylist : public IDispatch
{
virtual HRESULT STDMETHODCALLTYPE get_itemCount(
long *count) = 0;
LONG *count) = 0;
virtual HRESULT STDMETHODCALLTYPE get_isPlaying(
VARIANT_BOOL *playing) = 0;
......@@ -2024,13 +2112,13 @@ interface IVLCPlaylist : public IDispatch
BSTR uri,
VARIANT name,
VARIANT options,
long *itemId) = 0;
LONG *itemId) = 0;
virtual HRESULT STDMETHODCALLTYPE play(
) = 0;
virtual HRESULT STDMETHODCALLTYPE playItem(
long itemId) = 0;
LONG itemId) = 0;
virtual HRESULT STDMETHODCALLTYPE togglePause(
) = 0;
......@@ -2048,7 +2136,7 @@ interface IVLCPlaylist : public IDispatch
) = 0;
virtual HRESULT STDMETHODCALLTYPE removeItem(
long item) = 0;
LONG item) = 0;
virtual HRESULT STDMETHODCALLTYPE get_items(
IVLCPlaylistItems **obj) = 0;
......@@ -2103,7 +2191,7 @@ typedef struct IVLCPlaylistVtbl {
/*** IVLCPlaylist methods ***/
HRESULT (STDMETHODCALLTYPE *get_itemCount)(
IVLCPlaylist* This,
long *count);
LONG *count);
HRESULT (STDMETHODCALLTYPE *get_isPlaying)(
IVLCPlaylist* This,
......@@ -2114,14 +2202,14 @@ typedef struct IVLCPlaylistVtbl {
BSTR uri,
VARIANT name,
VARIANT options,
long *itemId);
LONG *itemId);
HRESULT (STDMETHODCALLTYPE *play)(
IVLCPlaylist* This);
HRESULT (STDMETHODCALLTYPE *playItem)(
IVLCPlaylist* This,
long itemId);
LONG itemId);
HRESULT (STDMETHODCALLTYPE *togglePause)(
IVLCPlaylist* This);
......@@ -2140,7 +2228,7 @@ typedef struct IVLCPlaylistVtbl {
HRESULT (STDMETHODCALLTYPE *removeItem)(
IVLCPlaylist* This,
long item);
LONG item);
HRESULT (STDMETHODCALLTYPE *get_items)(
IVLCPlaylist* This,
......@@ -2181,7 +2269,7 @@ interface IVLCPlaylist {
HRESULT STDMETHODCALLTYPE IVLCPlaylist_get_itemCount_Proxy(
IVLCPlaylist* This,
long *count);
LONG *count);
void __RPC_STUB IVLCPlaylist_get_itemCount_Stub(
IRpcStubBuffer* This,
IRpcChannelBuffer* pRpcChannelBuffer,
......@@ -2200,7 +2288,7 @@ HRESULT STDMETHODCALLTYPE IVLCPlaylist_add_Proxy(
BSTR uri,
VARIANT name,
VARIANT options,
long *itemId);
LONG *itemId);
void __RPC_STUB IVLCPlaylist_add_Stub(
IRpcStubBuffer* This,
IRpcChannelBuffer* pRpcChannelBuffer,
......@@ -2215,7 +2303,7 @@ void __RPC_STUB IVLCPlaylist_play_Stub(
DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVLCPlaylist_playItem_Proxy(
IVLCPlaylist* This,
long itemId);
LONG itemId);
void __RPC_STUB IVLCPlaylist_playItem_Stub(
IRpcStubBuffer* This,
IRpcChannelBuffer* pRpcChannelBuffer,
......@@ -2258,7 +2346,7 @@ void __RPC_STUB IVLCPlaylist_clear_Stub(
DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVLCPlaylist_removeItem_Proxy(
IVLCPlaylist* This,
long item);
LONG item);
void __RPC_STUB IVLCPlaylist_removeItem_Stub(
IRpcStubBuffer* This,
IRpcChannelBuffer* pRpcChannelBuffer,
......@@ -2286,16 +2374,16 @@ DEFINE_GUID(IID_IVLCSubtitle, 0x465e787a, 0x0556, 0x452f, 0x94,0x77, 0x95,0x4e,0
interface IVLCSubtitle : public IDispatch
{
virtual HRESULT STDMETHODCALLTYPE get_track(
long *spu) = 0;
LONG *spu) = 0;
virtual HRESULT STDMETHODCALLTYPE put_track(
long spu) = 0;
LONG spu) = 0;
virtual HRESULT STDMETHODCALLTYPE get_count(
long *spuNumber) = 0;
LONG *spuNumber) = 0;
virtual HRESULT STDMETHODCALLTYPE description(
long nameID,
LONG nameID,
BSTR *name) = 0;
};
......@@ -2348,19 +2436,19 @@ typedef struct IVLCSubtitleVtbl {
/*** IVLCSubtitle methods ***/
HRESULT (STDMETHODCALLTYPE *get_track)(
IVLCSubtitle* This,
long *spu);
LONG *spu);
HRESULT (STDMETHODCALLTYPE *put_track)(
IVLCSubtitle* This,
long spu);
LONG spu);
HRESULT (STDMETHODCALLTYPE *get_count)(
IVLCSubtitle* This,
long *spuNumber);
LONG *spuNumber);
HRESULT (STDMETHODCALLTYPE *description)(
IVLCSubtitle* This,
long nameID,
LONG nameID,
BSTR *name);
END_INTERFACE
......@@ -2390,7 +2478,7 @@ interface IVLCSubtitle {
HRESULT STDMETHODCALLTYPE IVLCSubtitle_get_track_Proxy(
IVLCSubtitle* This,
long *spu);
LONG *spu);
void __RPC_STUB IVLCSubtitle_get_track_Stub(
IRpcStubBuffer* This,
IRpcChannelBuffer* pRpcChannelBuffer,
......@@ -2398,7 +2486,7 @@ void __RPC_STUB IVLCSubtitle_get_track_Stub(
DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVLCSubtitle_put_track_Proxy(
IVLCSubtitle* This,
long spu);
LONG spu);
void __RPC_STUB IVLCSubtitle_put_track_Stub(
IRpcStubBuffer* This,
IRpcChannelBuffer* pRpcChannelBuffer,
......@@ -2406,7 +2494,7 @@ void __RPC_STUB IVLCSubtitle_put_track_Stub(
DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVLCSubtitle_get_count_Proxy(
IVLCSubtitle* This,
long *spuNumber);
LONG *spuNumber);
void __RPC_STUB IVLCSubtitle_get_count_Stub(
IRpcStubBuffer* This,
IRpcChannelBuffer* pRpcChannelBuffer,
......@@ -2414,7 +2502,7 @@ void __RPC_STUB IVLCSubtitle_get_count_Stub(
DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVLCSubtitle_description_Proxy(
IVLCSubtitle* This,
long nameID,
LONG nameID,
BSTR *name);
void __RPC_STUB IVLCSubtitle_description_Stub(
IRpcStubBuffer* This,
......@@ -2444,28 +2532,28 @@ interface IVLCMarquee : public IDispatch
BSTR text) = 0;
virtual HRESULT STDMETHODCALLTYPE color(
long val) = 0;
LONG val) = 0;
virtual HRESULT STDMETHODCALLTYPE opacity(
long val) = 0;
LONG val) = 0;
virtual HRESULT STDMETHODCALLTYPE position(
long val) = 0;
LONG val) = 0;
virtual HRESULT STDMETHODCALLTYPE refresh(
long val) = 0;
LONG val) = 0;
virtual HRESULT STDMETHODCALLTYPE size(
long val) = 0;
LONG val) = 0;
virtual HRESULT STDMETHODCALLTYPE timeout(
long val) = 0;
LONG val) = 0;
virtual HRESULT STDMETHODCALLTYPE x(
long val) = 0;
LONG val) = 0;
virtual HRESULT STDMETHODCALLTYPE y(
long val) = 0;
LONG val) = 0;
};
#else
......@@ -2527,35 +2615,35 @@ typedef struct IVLCMarqueeVtbl {
HRESULT (STDMETHODCALLTYPE *color)(
IVLCMarquee* This,
long val);
LONG val);
HRESULT (STDMETHODCALLTYPE *opacity)(
IVLCMarquee* This,
long val);
LONG val);
HRESULT (STDMETHODCALLTYPE *position)(
IVLCMarquee* This,
long val);
LONG val);
HRESULT (STDMETHODCALLTYPE *refresh)(
IVLCMarquee* This,
long val);
LONG val);
HRESULT (STDMETHODCALLTYPE *size)(
IVLCMarquee* This,
long val);
LONG val);
HRESULT (STDMETHODCALLTYPE *timeout)(
IVLCMarquee* This,
long val);
LONG val);
HRESULT (STDMETHODCALLTYPE *x)(
IVLCMarquee* This,
long val);
LONG val);
HRESULT (STDMETHODCALLTYPE *y)(
IVLCMarquee* This,
long val);
LONG val);
END_INTERFACE
} IVLCMarqueeVtbl;
......@@ -2613,7 +2701,7 @@ void __RPC_STUB IVLCMarquee_text_Stub(
DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVLCMarquee_color_Proxy(
IVLCMarquee* This,
long val);
LONG val);
void __RPC_STUB IVLCMarquee_color_Stub(
IRpcStubBuffer* This,
IRpcChannelBuffer* pRpcChannelBuffer,
......@@ -2621,7 +2709,7 @@ void __RPC_STUB IVLCMarquee_color_Stub(
DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVLCMarquee_opacity_Proxy(
IVLCMarquee* This,
long val);
LONG val);
void __RPC_STUB IVLCMarquee_opacity_Stub(
IRpcStubBuffer* This,
IRpcChannelBuffer* pRpcChannelBuffer,
......@@ -2629,7 +2717,7 @@ void __RPC_STUB IVLCMarquee_opacity_Stub(
DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVLCMarquee_position_Proxy(
IVLCMarquee* This,
long val);
LONG val);
void __RPC_STUB IVLCMarquee_position_Stub(
IRpcStubBuffer* This,
IRpcChannelBuffer* pRpcChannelBuffer,
......@@ -2637,7 +2725,7 @@ void __RPC_STUB IVLCMarquee_position_Stub(
DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVLCMarquee_refresh_Proxy(
IVLCMarquee* This,
long val);
LONG val);
void __RPC_STUB IVLCMarquee_refresh_Stub(
IRpcStubBuffer* This,
IRpcChannelBuffer* pRpcChannelBuffer,
......@@ -2645,7 +2733,7 @@ void __RPC_STUB IVLCMarquee_refresh_Stub(
DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVLCMarquee_size_Proxy(
IVLCMarquee* This,
long val);
LONG val);
void __RPC_STUB IVLCMarquee_size_Stub(
IRpcStubBuffer* This,
IRpcChannelBuffer* pRpcChannelBuffer,
......@@ -2653,7 +2741,7 @@ void __RPC_STUB IVLCMarquee_size_Stub(
DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVLCMarquee_timeout_Proxy(
IVLCMarquee* This,
long val);
LONG val);
void __RPC_STUB IVLCMarquee_timeout_Stub(
IRpcStubBuffer* This,
IRpcChannelBuffer* pRpcChannelBuffer,
......@@ -2661,7 +2749,7 @@ void __RPC_STUB IVLCMarquee_timeout_Stub(
DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVLCMarquee_x_Proxy(
IVLCMarquee* This,
long val);
LONG val);
void __RPC_STUB IVLCMarquee_x_Stub(
IRpcStubBuffer* This,
IRpcChannelBuffer* pRpcChannelBuffer,
......@@ -2669,7 +2757,7 @@ void __RPC_STUB IVLCMarquee_x_Stub(
DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVLCMarquee_y_Proxy(
IVLCMarquee* This,
long val);
LONG val);
void __RPC_STUB IVLCMarquee_y_Stub(
IRpcStubBuffer* This,
IRpcChannelBuffer* pRpcChannelBuffer,
......@@ -2678,6 +2766,324 @@ void __RPC_STUB IVLCMarquee_y_Stub(
#endif /* __IVLCMarquee_INTERFACE_DEFINED__ */
/*****************************************************************************
* IVLCLogo interface
*/
#ifndef __IVLCLogo_INTERFACE_DEFINED__
#define __IVLCLogo_INTERFACE_DEFINED__
DEFINE_GUID(IID_IVLCLogo, 0x8a4a20c2, 0x93f3, 0x44e8, 0x86,0x44, 0xbe,0xb2,0xe3,0x48,0x7e,0x84);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IVLCLogo : public IDispatch
{
virtual HRESULT STDMETHODCALLTYPE enable(
) = 0;
virtual HRESULT STDMETHODCALLTYPE disable(
) = 0;
virtual HRESULT STDMETHODCALLTYPE file(
BSTR fname) = 0;
virtual HRESULT STDMETHODCALLTYPE get_delay(
LONG *val) = 0;
virtual HRESULT STDMETHODCALLTYPE put_delay(
LONG val) = 0;
virtual HRESULT STDMETHODCALLTYPE get_repeat(
LONG *val) = 0;
virtual HRESULT STDMETHODCALLTYPE put_repeat(
LONG val) = 0;
virtual HRESULT STDMETHODCALLTYPE get_opacity(
LONG *val) = 0;
virtual HRESULT STDMETHODCALLTYPE put_opacity(
LONG val) = 0;
virtual HRESULT STDMETHODCALLTYPE get_position(
BSTR *val) = 0;
virtual HRESULT STDMETHODCALLTYPE put_position(
BSTR val) = 0;
virtual HRESULT STDMETHODCALLTYPE get_x(
LONG *val) = 0;
virtual HRESULT STDMETHODCALLTYPE put_x(
LONG val) = 0;
virtual HRESULT STDMETHODCALLTYPE get_y(
LONG *val) = 0;
virtual HRESULT STDMETHODCALLTYPE put_y(
LONG val) = 0;
};
#else
typedef struct IVLCLogoVtbl {
BEGIN_INTERFACE
/*** IUnknown methods ***/
HRESULT (STDMETHODCALLTYPE *QueryInterface)(
IVLCLogo* This,
REFIID riid,
void **ppvObject);
ULONG (STDMETHODCALLTYPE *AddRef)(
IVLCLogo* This);
ULONG (STDMETHODCALLTYPE *Release)(
IVLCLogo* This);
/*** IDispatch methods ***/
HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
IVLCLogo* This,
UINT *pctinfo);
HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
IVLCLogo* This,
UINT iTInfo,
LCID lcid,
ITypeInfo **ppTInfo);
HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
IVLCLogo* This,
REFIID riid,
LPOLESTR *rgszNames,
UINT cNames,
LCID lcid,
DISPID *rgDispId);
HRESULT (STDMETHODCALLTYPE *Invoke)(
IVLCLogo* This,
DISPID dispIdMember,
REFIID riid,
LCID lcid,
WORD wFlags,
DISPPARAMS *pDispParams,
VARIANT *pVarResult,
EXCEPINFO *pExcepInfo,
UINT *puArgErr);
/*** IVLCLogo methods ***/
HRESULT (STDMETHODCALLTYPE *enable)(
IVLCLogo* This);
HRESULT (STDMETHODCALLTYPE *disable)(
IVLCLogo* This);
HRESULT (STDMETHODCALLTYPE *file)(
IVLCLogo* This,
BSTR fname);
HRESULT (STDMETHODCALLTYPE *get_delay)(
IVLCLogo* This,
LONG *val);
HRESULT (STDMETHODCALLTYPE *put_delay)(
IVLCLogo* This,
LONG val);
HRESULT (STDMETHODCALLTYPE *get_repeat)(
IVLCLogo* This,
LONG *val);
HRESULT (STDMETHODCALLTYPE *put_repeat)(
IVLCLogo* This,
LONG val);
HRESULT (STDMETHODCALLTYPE *get_opacity)(
IVLCLogo* This,
LONG *val);
HRESULT (STDMETHODCALLTYPE *put_opacity)(
IVLCLogo* This,
LONG val);
HRESULT (STDMETHODCALLTYPE *get_position)(
IVLCLogo* This,
BSTR *val);
HRESULT (STDMETHODCALLTYPE *put_position)(
IVLCLogo* This,
BSTR val);
HRESULT (STDMETHODCALLTYPE *get_x)(
IVLCLogo* This,
LONG *val);
HRESULT (STDMETHODCALLTYPE *put_x)(
IVLCLogo* This,
LONG val);
HRESULT (STDMETHODCALLTYPE *get_y)(
IVLCLogo* This,
LONG *val);
HRESULT (STDMETHODCALLTYPE *put_y)(
IVLCLogo* This,
LONG val);
END_INTERFACE
} IVLCLogoVtbl;
interface IVLCLogo {
CONST_VTBL IVLCLogoVtbl* lpVtbl;
};
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IVLCLogo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IVLCLogo_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IVLCLogo_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IVLCLogo_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IVLCLogo_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IVLCLogo_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IVLCLogo_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IVLCLogo methods ***/
#define IVLCLogo_enable(This) (This)->lpVtbl->enable(This)
#define IVLCLogo_disable(This) (This)->lpVtbl->disable(This)
#define IVLCLogo_file(This,fname) (This)->lpVtbl->file(This,fname)
#define IVLCLogo_get_delay(This,val) (This)->lpVtbl->get_delay(This,val)
#define IVLCLogo_put_delay(This,val) (This)->lpVtbl->put_delay(This,val)
#define IVLCLogo_get_repeat(This,val) (This)->lpVtbl->get_repeat(This,val)
#define IVLCLogo_put_repeat(This,val) (This)->lpVtbl->put_repeat(This,val)
#define IVLCLogo_get_opacity(This,val) (This)->lpVtbl->get_opacity(This,val)
#define IVLCLogo_put_opacity(This,val) (This)->lpVtbl->put_opacity(This,val)
#define IVLCLogo_get_position(This,val) (This)->lpVtbl->get_position(This,val)
#define IVLCLogo_put_position(This,val) (This)->lpVtbl->put_position(This,val)
#define IVLCLogo_get_x(This,val) (This)->lpVtbl->get_x(This,val)
#define IVLCLogo_put_x(This,val) (This)->lpVtbl->put_x(This,val)
#define IVLCLogo_get_y(This,val) (This)->lpVtbl->get_y(This,val)
#define IVLCLogo_put_y(This,val) (This)->lpVtbl->put_y(This,val)
#endif
#endif
HRESULT STDMETHODCALLTYPE IVLCLogo_enable_Proxy(
IVLCLogo* This);
void __RPC_STUB IVLCLogo_enable_Stub(
IRpcStubBuffer* This,
IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVLCLogo_disable_Proxy(
IVLCLogo* This);
void __RPC_STUB IVLCLogo_disable_Stub(
IRpcStubBuffer* This,
IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVLCLogo_file_Proxy(
IVLCLogo* This,
BSTR fname);
void __RPC_STUB IVLCLogo_file_Stub(
IRpcStubBuffer* This,
IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVLCLogo_get_delay_Proxy(
IVLCLogo* This,
LONG *val);
void __RPC_STUB IVLCLogo_get_delay_Stub(
IRpcStubBuffer* This,
IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVLCLogo_put_delay_Proxy(
IVLCLogo* This,
LONG val);
void __RPC_STUB IVLCLogo_put_delay_Stub(
IRpcStubBuffer* This,
IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVLCLogo_get_repeat_Proxy(
IVLCLogo* This,
LONG *val);
void __RPC_STUB IVLCLogo_get_repeat_Stub(
IRpcStubBuffer* This,
IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVLCLogo_put_repeat_Proxy(
IVLCLogo* This,
LONG val);
void __RPC_STUB IVLCLogo_put_repeat_Stub(
IRpcStubBuffer* This,
IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVLCLogo_get_opacity_Proxy(
IVLCLogo* This,
LONG *val);
void __RPC_STUB IVLCLogo_get_opacity_Stub(
IRpcStubBuffer* This,
IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVLCLogo_put_opacity_Proxy(
IVLCLogo* This,
LONG val);
void __RPC_STUB IVLCLogo_put_opacity_Stub(
IRpcStubBuffer* This,
IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVLCLogo_get_position_Proxy(
IVLCLogo* This,
BSTR *val);
void __RPC_STUB IVLCLogo_get_position_Stub(
IRpcStubBuffer* This,
IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVLCLogo_put_position_Proxy(
IVLCLogo* This,
BSTR val);
void __RPC_STUB IVLCLogo_put_position_Stub(
IRpcStubBuffer* This,
IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVLCLogo_get_x_Proxy(
IVLCLogo* This,
LONG *val);
void __RPC_STUB IVLCLogo_get_x_Stub(
IRpcStubBuffer* This,
IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVLCLogo_put_x_Proxy(
IVLCLogo* This,
LONG val);
void __RPC_STUB IVLCLogo_put_x_Stub(
IRpcStubBuffer* This,
IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVLCLogo_get_y_Proxy(
IVLCLogo* This,
LONG *val);
void __RPC_STUB IVLCLogo_get_y_Stub(
IRpcStubBuffer* This,
IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVLCLogo_put_y_Proxy(
IVLCLogo* This,
LONG val);
void __RPC_STUB IVLCLogo_put_y_Stub(
IRpcStubBuffer* This,
IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
#endif /* __IVLCLogo_INTERFACE_DEFINED__ */
/*****************************************************************************
* IVLCVideo interface
*/
......@@ -2695,10 +3101,10 @@ interface IVLCVideo : public IDispatch
VARIANT_BOOL fullscreen) = 0;
virtual HRESULT STDMETHODCALLTYPE get_width(
long *width) = 0;
LONG *width) = 0;
virtual HRESULT STDMETHODCALLTYPE get_height(
long *height) = 0;
LONG *height) = 0;
virtual HRESULT STDMETHODCALLTYPE get_aspectRatio(
BSTR *aspect) = 0;
......@@ -2707,10 +3113,10 @@ interface IVLCVideo : public IDispatch
BSTR aspect) = 0;
virtual HRESULT STDMETHODCALLTYPE get_subtitle(
long *spu) = 0;
LONG *spu) = 0;
virtual HRESULT STDMETHODCALLTYPE put_subtitle(
long spu) = 0;
LONG spu) = 0;
virtual HRESULT STDMETHODCALLTYPE get_crop(
BSTR *geometry) = 0;
......@@ -2719,10 +3125,10 @@ interface IVLCVideo : public IDispatch
BSTR geometry) = 0;
virtual HRESULT STDMETHODCALLTYPE get_teletext(
long *page) = 0;
LONG *page) = 0;
virtual HRESULT STDMETHODCALLTYPE put_teletext(
long page) = 0;
LONG page) = 0;
virtual HRESULT STDMETHODCALLTYPE deinterlaceEnable(
BSTR mode) = 0;
......@@ -2742,6 +3148,9 @@ interface IVLCVideo : public IDispatch
virtual HRESULT STDMETHODCALLTYPE get_marquee(
IVLCMarquee **obj) = 0;
virtual HRESULT STDMETHODCALLTYPE get_logo(
IVLCLogo **obj) = 0;
};
#else
typedef struct IVLCVideoVtbl {
......@@ -2800,11 +3209,11 @@ typedef struct IVLCVideoVtbl {
HRESULT (STDMETHODCALLTYPE *get_width)(
IVLCVideo* This,
long *width);
LONG *width);
HRESULT (STDMETHODCALLTYPE *get_height)(
IVLCVideo* This,
long *height);
LONG *height);
HRESULT (STDMETHODCALLTYPE *get_aspectRatio)(
IVLCVideo* This,
......@@ -2816,11 +3225,11 @@ typedef struct IVLCVideoVtbl {
HRESULT (STDMETHODCALLTYPE *get_subtitle)(
IVLCVideo* This,
long *spu);
LONG *spu);
HRESULT (STDMETHODCALLTYPE *put_subtitle)(
IVLCVideo* This,
long spu);
LONG spu);
HRESULT (STDMETHODCALLTYPE *get_crop)(
IVLCVideo* This,
......@@ -2832,11 +3241,11 @@ typedef struct IVLCVideoVtbl {
HRESULT (STDMETHODCALLTYPE *get_teletext)(
IVLCVideo* This,
long *page);
LONG *page);
HRESULT (STDMETHODCALLTYPE *put_teletext)(
IVLCVideo* This,
long page);
LONG page);
HRESULT (STDMETHODCALLTYPE *deinterlaceEnable)(
IVLCVideo* This,
......@@ -2859,6 +3268,10 @@ typedef struct IVLCVideoVtbl {
IVLCVideo* This,
IVLCMarquee **obj);
HRESULT (STDMETHODCALLTYPE *get_logo)(
IVLCVideo* This,
IVLCLogo **obj);
END_INTERFACE
} IVLCVideoVtbl;
interface IVLCVideo {
......@@ -2894,6 +3307,7 @@ interface IVLCVideo {
#define IVLCVideo_takeSnapshot(This,picture) (This)->lpVtbl->takeSnapshot(This,picture)
#define IVLCVideo_toggleTeletext(This) (This)->lpVtbl->toggleTeletext(This)
#define IVLCVideo_get_marquee(This,obj) (This)->lpVtbl->get_marquee(This,obj)
#define IVLCVideo_get_logo(This,obj) (This)->lpVtbl->get_logo(This,obj)
#endif
#endif
......@@ -2916,7 +3330,7 @@ void __RPC_STUB IVLCVideo_put_fullscreen_Stub(
DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVLCVideo_get_width_Proxy(
IVLCVideo* This,
long *width);
LONG *width);
void __RPC_STUB IVLCVideo_get_width_Stub(
IRpcStubBuffer* This,
IRpcChannelBuffer* pRpcChannelBuffer,
......@@ -2924,7 +3338,7 @@ void __RPC_STUB IVLCVideo_get_width_Stub(
DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVLCVideo_get_height_Proxy(
IVLCVideo* This,
long *height);
LONG *height);
void __RPC_STUB IVLCVideo_get_height_Stub(
IRpcStubBuffer* This,
IRpcChannelBuffer* pRpcChannelBuffer,
......@@ -2948,7 +3362,7 @@ void __RPC_STUB IVLCVideo_put_aspectRatio_Stub(
DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVLCVideo_get_subtitle_Proxy(
IVLCVideo* This,
long *spu);
LONG *spu);
void __RPC_STUB IVLCVideo_get_subtitle_Stub(
IRpcStubBuffer* This,
IRpcChannelBuffer* pRpcChannelBuffer,
......@@ -2956,7 +3370,7 @@ void __RPC_STUB IVLCVideo_get_subtitle_Stub(
DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVLCVideo_put_subtitle_Proxy(
IVLCVideo* This,
long spu);
LONG spu);
void __RPC_STUB IVLCVideo_put_subtitle_Stub(
IRpcStubBuffer* This,
IRpcChannelBuffer* pRpcChannelBuffer,
......@@ -2980,7 +3394,7 @@ void __RPC_STUB IVLCVideo_put_crop_Stub(
DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVLCVideo_get_teletext_Proxy(
IVLCVideo* This,
long *page);
LONG *page);
void __RPC_STUB IVLCVideo_get_teletext_Stub(
IRpcStubBuffer* This,
IRpcChannelBuffer* pRpcChannelBuffer,
......@@ -2988,7 +3402,7 @@ void __RPC_STUB IVLCVideo_get_teletext_Stub(
DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVLCVideo_put_teletext_Proxy(
IVLCVideo* This,
long page);
LONG page);
void __RPC_STUB IVLCVideo_put_teletext_Stub(
IRpcStubBuffer* This,
IRpcChannelBuffer* pRpcChannelBuffer,
......@@ -3039,6 +3453,14 @@ void __RPC_STUB IVLCVideo_get_marquee_Stub(
IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVLCVideo_get_logo_Proxy(
IVLCVideo* This,
IVLCLogo **obj);
void __RPC_STUB IVLCVideo_get_logo_Stub(
IRpcStubBuffer* This,
IRpcChannelBuffer* pRpcChannelBuffer,
PRPC_MESSAGE pRpcMessage,
DWORD* pdwStubPhase);
#endif /* __IVLCVideo_INTERFACE_DEFINED__ */
......@@ -3071,10 +3493,10 @@ interface IVLCControl2 : public IDispatch
BSTR url) = 0;
virtual HRESULT STDMETHODCALLTYPE get_StartTime(
long *seconds) = 0;
LONG *seconds) = 0;
virtual HRESULT STDMETHODCALLTYPE put_StartTime(
long seconds) = 0;
LONG seconds) = 0;
virtual HRESULT STDMETHODCALLTYPE get_MRL(
BSTR *mrl) = 0;
......@@ -3092,10 +3514,10 @@ interface IVLCControl2 : public IDispatch
VARIANT_BOOL visible) = 0;
virtual HRESULT STDMETHODCALLTYPE get_Volume(
long *volume) = 0;
LONG *volume) = 0;
virtual HRESULT STDMETHODCALLTYPE put_Volume(
long volume) = 0;
LONG volume) = 0;
virtual HRESULT STDMETHODCALLTYPE get_BackColor(
OLE_COLOR *backcolor) = 0;
......@@ -3201,11 +3623,11 @@ typedef struct IVLCControl2Vtbl {
HRESULT (STDMETHODCALLTYPE *get_StartTime)(
IVLCControl2* This,
long *seconds);
LONG *seconds);
HRESULT (STDMETHODCALLTYPE *put_StartTime)(
IVLCControl2* This,
long seconds);
LONG seconds);
HRESULT (STDMETHODCALLTYPE *get_MRL)(
IVLCControl2* This,
......@@ -3229,11 +3651,11 @@ typedef struct IVLCControl2Vtbl {
HRESULT (STDMETHODCALLTYPE *get_Volume)(
IVLCControl2* This,
long *volume);
LONG *volume);
HRESULT (STDMETHODCALLTYPE *put_Volume)(
IVLCControl2* This,
long volume);
LONG volume);
HRESULT (STDMETHODCALLTYPE *get_BackColor)(
IVLCControl2* This,
......@@ -3371,7 +3793,7 @@ void __RPC_STUB IVLCControl2_put_BaseURL_Stub(
DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVLCControl2_get_StartTime_Proxy(
IVLCControl2* This,
long *seconds);
LONG *seconds);
void __RPC_STUB IVLCControl2_get_StartTime_Stub(
IRpcStubBuffer* This,
IRpcChannelBuffer* pRpcChannelBuffer,
......@@ -3379,7 +3801,7 @@ void __RPC_STUB IVLCControl2_get_StartTime_Stub(
DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVLCControl2_put_StartTime_Proxy(
IVLCControl2* This,
long seconds);
LONG seconds);
void __RPC_STUB IVLCControl2_put_StartTime_Stub(
IRpcStubBuffer* This,
IRpcChannelBuffer* pRpcChannelBuffer,
......@@ -3427,7 +3849,7 @@ void __RPC_STUB IVLCControl2_put_Visible_Stub(
DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVLCControl2_get_Volume_Proxy(
IVLCControl2* This,
long *volume);
LONG *volume);
void __RPC_STUB IVLCControl2_get_Volume_Stub(
IRpcStubBuffer* This,
IRpcChannelBuffer* pRpcChannelBuffer,
......@@ -3435,7 +3857,7 @@ void __RPC_STUB IVLCControl2_get_Volume_Stub(
DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVLCControl2_put_Volume_Proxy(
IVLCControl2* This,
long volume);
LONG volume);
void __RPC_STUB IVLCControl2_put_Volume_Stub(
IRpcStubBuffer* This,
IRpcChannelBuffer* pRpcChannelBuffer,
......@@ -3530,22 +3952,12 @@ void __RPC_STUB IVLCControl2_get_video_Stub(
DEFINE_GUID(CLSID_VLCPlugin, 0xe23fe9c6, 0x778e, 0x49d4, 0xb5,0x37, 0x38,0xfc,0xde,0x48,0x87,0xd8);
#ifndef __VLCPlugin_FWD_DEFINED__
#define __VLCPlugin_FWD_DEFINED__
typedef struct VLCPlugin VLCPlugin;
#endif /* defined __VLCPlugin_FWD_DEFINED__ */
/*****************************************************************************
* VLCPlugin2 coclass
*/
DEFINE_GUID(CLSID_VLCPlugin2, 0x9be31822, 0xfdad, 0x461b, 0xad,0x51, 0xbe,0x1d,0x1c,0x15,0x99,0x21);
#ifndef __VLCPlugin2_FWD_DEFINED__
#define __VLCPlugin2_FWD_DEFINED__
typedef struct VLCPlugin2 VLCPlugin2;
#endif /* defined __VLCPlugin2_FWD_DEFINED__ */
/* Begin additional prototypes for all interfaces */
ULONG __RPC_USER BSTR_UserSize (ULONG *, ULONG, BSTR *);
......
......@@ -235,14 +235,12 @@ Insert Slider widget
<INPUT size=4 value="" id="logoIntValue">
<SELECT readonly onClick="doLogoOption(this.value,document.getElementById('logoIntValue').value);">
<OPTION value=1>File</OPTION>
<OPTION value=2>Transparency</OPTION>
<OPTION value=3>Position</OPTION>
<OPTION value=2>Position</OPTION>
<OPTION value=3>Opacity</OPTION>
<OPTION value=4>Repeat</OPTION>
<OPTION value=5>Delay</OPTION>
<OPTION value=6>X</OPTION>
<OPTION value=7>Y</OPTION>
<OPTION value=8>Width</OPTION>
<OPTION value=9>Height</OPTION>
</SELECT>
</TD>
</TR>
......@@ -786,27 +784,23 @@ function doMarqueeOption(option, value)
function doLogoOption(option, value)
{
var vlc = getVLC("vlc");
val = parseInt(value);
if( vlc )
{
if (option == 1)
vlc.video.logo.file(val);
vlc.video.logo.file(value);
if (option == 2)
vlc.video.logo.transparency(val);
vlc.video.logo.position = value;
val = parseInt(value);
if (option == 3)
vlc.video.logo.position(val);
vlc.video.logo.opacity = val;
if (option == 4)
vlc.video.logo.repeat(val);
vlc.video.logo.repeat = val;
if (option == 5)
vlc.video.logo.delay(val);
vlc.video.logo.delay = val;
if (option == 6)
vlc.video.logo.x(val);
vlc.video.logo.x = val;
if (option == 7)
vlc.video.logo.y(val);
if (option == 8)
vlc.video.logo.width(val);
if (option == 9)
vlc.video.logo.height(val);
vlc.video.logo.y = val;
}
}
......
......@@ -2,6 +2,7 @@
* vlccontrol2.cpp: ActiveX control for VLC
*****************************************************************************
* Copyright (C) 2006 the VideoLAN team
* Copyright (C) 2010 M2X BV
*
* Authors: Damien Fouilleul <Damien.Fouilleul@laposte.net>
* Jean-Paul Saman <jpsaman _at_ m2x _dot_ nl>
......@@ -21,17 +22,16 @@
* 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
#include "plugin.h"
#include "vlccontrol2.h"
#include "vlccontrol.h"
#include "utils.h"
#include <stdio.h>
#include <shlwapi.h>
#include <wininet.h>
#include <tchar.h>
#include "utils.h"
#include "plugin.h"
#include "vlccontrol2.h"
#include "vlccontrol.h"
static inline
HRESULT _exception_bridge(VLCPlugin *p,REFIID riid, libvlc_exception_t *ex)
......@@ -55,6 +55,7 @@ EMIT_EXCEPTION_BRIDGE( VLCMarquee )
EMIT_EXCEPTION_BRIDGE( VLCMessageIterator )
EMIT_EXCEPTION_BRIDGE( VLCMessages )
EMIT_EXCEPTION_BRIDGE( VLCLog )
EMIT_EXCEPTION_BRIDGE( VLCLogo )
EMIT_EXCEPTION_BRIDGE( VLCPlaylistItems )
EMIT_EXCEPTION_BRIDGE( VLCPlaylist )
EMIT_EXCEPTION_BRIDGE( VLCVideo )
......@@ -335,7 +336,7 @@ STDMETHODIMP VLCAudio::toggleMute()
return hr;
};
/*******************************************************************************/
/****************************************************************************/
VLCInput::~VLCInput()
{
......@@ -594,7 +595,7 @@ STDMETHODIMP VLCInput::get_hasVout(VARIANT_BOOL* hasVout)
return hr;
};
/*******************************************************************************/
/****************************************************************************/
VLCLog::~VLCLog()
{
......@@ -742,7 +743,7 @@ STDMETHODIMP VLCLog::put_verbosity(long verbosity)
return hr;
};
/*******************************************************************************/
/****************************************************************************/
VLCMarquee::~VLCMarquee()
{
......@@ -988,7 +989,7 @@ STDMETHODIMP VLCMarquee::y(long val)
return hr;
};
/*******************************************************************************/
/****************************************************************************/
/* STL forward iterator used by VLCEnumIterator class to implement IEnumVARIANT */
......@@ -1196,7 +1197,7 @@ STDMETHODIMP VLCMessages::iterator(IVLCMessageIterator** iter)
return *iter ? S_OK : E_OUTOFMEMORY;
};
/*******************************************************************************/
/****************************************************************************/
VLCMessageIterator::VLCMessageIterator(VLCPlugin *p_instance, VLCLog* p_vlclog ) :
_p_instance(p_instance),
......@@ -1333,7 +1334,7 @@ STDMETHODIMP VLCMessageIterator::next(IVLCMessage** message)
return hr;
};
/*******************************************************************************/
/****************************************************************************/
VLCMessage::~VLCMessage()
{
......@@ -1493,7 +1494,7 @@ STDMETHODIMP VLCMessage::get_message(BSTR* message)
return NOERROR;
};
/*******************************************************************************/
/****************************************************************************/
VLCPlaylistItems::~VLCPlaylistItems()
{
......@@ -1608,7 +1609,7 @@ STDMETHODIMP VLCPlaylistItems::remove(long item)
return hr;
};
/*******************************************************************************/
/****************************************************************************/
VLCPlaylist::~VLCPlaylist()
{
......@@ -1902,7 +1903,7 @@ STDMETHODIMP VLCPlaylist::get_items(IVLCPlaylistItems** obj)
return E_OUTOFMEMORY;
};
/*******************************************************************************/
/****************************************************************************/
VLCSubtitle::~VLCSubtitle()
{
......@@ -2085,11 +2086,12 @@ STDMETHODIMP VLCSubtitle::description(long nameID, BSTR* name)
return hr;
};
/*******************************************************************************/
/****************************************************************************/
VLCVideo::~VLCVideo()
{
delete _p_vlcmarquee;
delete _p_vlclogo;
if( _p_typeinfo )
_p_typeinfo->Release();
};
......@@ -2585,24 +2587,213 @@ STDMETHODIMP VLCVideo::get_marquee(IVLCMarquee** obj)
return E_OUTOFMEMORY;
};
/*******************************************************************************/
STDMETHODIMP VLCVideo::get_logo(IVLCLogo** obj)
{
if( NULL == obj )
return E_POINTER;
*obj = _p_vlclogo;
if( NULL != _p_vlclogo )
{
_p_vlclogo->AddRef();
return NOERROR;
}
return E_OUTOFMEMORY;
}
/****************************************************************************/
HRESULT VLCLogo::loadTypeInfo(void)
{
HRESULT hr = NOERROR;
if( NULL == _p_typeinfo )
{
ITypeLib *p_typelib;
hr = _p_instance->getTypeLib(LOCALE_USER_DEFAULT, &p_typelib);
if( SUCCEEDED(hr) )
{
hr = p_typelib->GetTypeInfoOfGuid(IID_IVLCLogo, &_p_typeinfo);
if( FAILED(hr) )
{
_p_typeinfo = NULL;
}
p_typelib->Release();
}
}
return hr;
}
STDMETHODIMP VLCLogo::GetTypeInfoCount(UINT* pctInfo)
{
if( NULL == pctInfo )
return E_INVALIDARG;
if( SUCCEEDED(loadTypeInfo()) )
*pctInfo = 1;
else
*pctInfo = 0;
return NOERROR;
}
STDMETHODIMP VLCLogo::GetTypeInfo(UINT iTInfo, LCID lcid, LPTYPEINFO* ppTInfo)
{
if( NULL == ppTInfo )
return E_INVALIDARG;
if( SUCCEEDED(loadTypeInfo()) )
{
_p_typeinfo->AddRef();
*ppTInfo = _p_typeinfo;
return NOERROR;
}
*ppTInfo = NULL;
return E_NOTIMPL;
}
STDMETHODIMP VLCLogo::GetIDsOfNames(REFIID riid, LPOLESTR* rgszNames,
UINT cNames, LCID lcid, DISPID* rgDispID)
{
if( SUCCEEDED(loadTypeInfo()) )
return DispGetIDsOfNames(_p_typeinfo, rgszNames, cNames, rgDispID);
return E_NOTIMPL;
}
STDMETHODIMP VLCLogo::Invoke(DISPID dispIdMember, REFIID riid,
LCID lcid, WORD wFlags, DISPPARAMS* pDispParams,
VARIANT* pVarResult, EXCEPINFO* pExcepInfo, UINT* puArgErr)
{
if( SUCCEEDED(loadTypeInfo()) )
{
return DispInvoke(this, _p_typeinfo, dispIdMember, wFlags,
pDispParams, pVarResult, pExcepInfo, puArgErr);
}
return E_NOTIMPL;
}
HRESULT VLCLogo::do_put_int(unsigned idx, LONG val)
{
libvlc_media_player_t *p_md;
HRESULT hr = _p_instance->getMD(&p_md);
if( SUCCEEDED(hr) )
{
libvlc_exception_t ex;
libvlc_exception_init(&ex);
libvlc_video_set_logo_int(p_md, idx, val, &ex);
hr = exception_bridge(&ex);
}
return hr;
}
HRESULT VLCLogo::do_get_int(unsigned idx, LONG *val)
{
if( NULL == val )
return E_POINTER;
libvlc_media_player_t *p_md;
HRESULT hr = _p_instance->getMD(&p_md);
if( SUCCEEDED(hr) )
{
libvlc_exception_t ex;
libvlc_exception_init(&ex);
*val = libvlc_video_get_logo_int(p_md, idx, &ex);
hr = exception_bridge(&ex);
}
return hr;
}
STDMETHODIMP VLCLogo::file(BSTR fname)
{
libvlc_media_player_t *p_md;
HRESULT hr = _p_instance->getMD(&p_md);
char *n = CStrFromBSTR(CP_UTF8, fname);
if( !n ) hr = E_OUTOFMEMORY;
if( SUCCEEDED(hr) )
{
libvlc_exception_t ex;
libvlc_exception_init(&ex);
libvlc_video_set_logo_string(p_md, libvlc_logo_file, n, &ex);
hr = exception_bridge(&ex);
}
CoTaskMemFree(n);
return hr;
}
struct posidx_s { const char *n; size_t i; };
static const posidx_s posidx[] = {
{ "center", 0 },
{ "left", 1 },
{ "right", 2 },
{ "top", 4 },
{ "bottom", 8 },
{ "top-left", 5 },
{ "top-right", 6 },
{ "bottom-left", 9 },
{ "bottom-right", 10 },
};
enum { num_posidx = sizeof(posidx)/sizeof(*posidx) };
STDMETHODIMP VLCLogo::get_position(BSTR* val)
{
if( NULL == val )
return E_POINTER;
LONG i;
HRESULT hr = do_get_int(libvlc_logo_position, &i);
if(SUCCEEDED(hr))
{
const char *n="undefined";
for( const posidx_s *h=posidx; h<posidx+num_posidx; ++h )
if( i == h->i )
{
n=h->n;
break;
}
*val = BSTRFromCStr(CP_UTF8, n);
}
return hr;
}
STDMETHODIMP VLCLogo::put_position(BSTR val)
{
char *n = CStrFromBSTR(CP_UTF8, val);
if( !n ) return E_OUTOFMEMORY;
HRESULT hr = E_NOTIMPL;
const posidx_s *h;
for( h=posidx; h<posidx+num_posidx; ++h )
if( !strcasecmp( n, h->n ) )
{
hr = do_put_int(libvlc_logo_position,h->i);
break;
}
if( h == posidx+num_posidx )
hr = E_INVALIDARG;
CoTaskMemFree(n);
return hr;
}
/****************************************************************************/
VLCControl2::VLCControl2(VLCPlugin *p_instance) :
_p_instance(p_instance),
_p_typeinfo(NULL),
_p_vlcaudio(NULL),
_p_vlcinput(NULL),
_p_vlcplaylist(NULL),
_p_vlcsubtitle(NULL),
_p_vlcvideo(NULL)
{
_p_vlcaudio = new VLCAudio(p_instance);
_p_vlcinput = new VLCInput(p_instance);
_p_vlclog = new VLCLog(p_instance);
_p_vlcplaylist = new VLCPlaylist(p_instance);
_p_vlcsubtitle = new VLCSubtitle(p_instance);
_p_vlcvideo = new VLCVideo(p_instance);
};
_p_vlcaudio(new VLCAudio(p_instance)),
_p_vlcinput(new VLCInput(p_instance)),
_p_vlclog(new VLCLog(p_instance)),
_p_vlcplaylist(new VLCPlaylist(p_instance)),
_p_vlcsubtitle(new VLCSubtitle(p_instance)),
_p_vlcvideo(new VLCVideo(p_instance))
{
}
VLCControl2::~VLCControl2()
{
......
......@@ -27,6 +27,7 @@
#include "axvlc_idl.h"
#include <vlc/libvlc.h>
#include <ole2.h>
class VLCAudio : public IVLCAudio
{
......@@ -436,6 +437,73 @@ private:
};
class VLCLogo : public IVLCLogo
{
public:
VLCLogo(VLCPlugin *p): _p_instance(p), _p_typeinfo(NULL) { }
virtual ~VLCLogo() { if( _p_typeinfo ) _p_typeinfo->Release(); }
// IUnknown methods
STDMETHODIMP QueryInterface(REFIID riid, void **ppv)
{
if( NULL == ppv )
return E_POINTER;
if( (IID_IUnknown == riid)
|| (IID_IDispatch == riid)
|| (IID_IVLCLogo == riid) )
{
AddRef();
*ppv = reinterpret_cast<LPVOID>(this);
return NOERROR;
}
// behaves as a standalone object
return E_NOINTERFACE;
};
STDMETHODIMP_(ULONG) AddRef(void) { return _p_instance->pUnkOuter->AddRef(); }
STDMETHODIMP_(ULONG) Release(void) { return _p_instance->pUnkOuter->Release(); }
// IDispatch methods
STDMETHODIMP GetTypeInfoCount(UINT*);
STDMETHODIMP GetTypeInfo(UINT, LCID, LPTYPEINFO*);
STDMETHODIMP GetIDsOfNames(REFIID,LPOLESTR*,UINT,LCID,DISPID*);
STDMETHODIMP Invoke(DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*);
STDMETHODIMP enable() { return do_put_int(libvlc_logo_enable, true); }
STDMETHODIMP disable() { return do_put_int(libvlc_logo_enable, false); }
STDMETHODIMP file(BSTR fname);
#define PROP_INT( a ) \
STDMETHODIMP get_##a(LONG *val) \
{ return do_get_int(libvlc_logo_##a,val); } \
STDMETHODIMP put_##a(LONG val) \
{ return do_put_int(libvlc_logo_##a,val); }
PROP_INT( delay )
PROP_INT( repeat )
PROP_INT( opacity )
PROP_INT( x )
PROP_INT( y )
#undef PROP_INT
STDMETHODIMP get_position(BSTR* val);
STDMETHODIMP put_position(BSTR val);
protected:
HRESULT loadTypeInfo();
HRESULT exception_bridge(libvlc_exception_t *ex);
private:
VLCPlugin* _p_instance;
ITypeInfo* _p_typeinfo;
HRESULT do_put_int(unsigned idx, LONG val);
HRESULT do_get_int(unsigned idx, LONG *val);
};
class VLCPlaylistItems : public IVLCPlaylistItems
{
public:
......@@ -602,10 +670,8 @@ public:
VLCVideo(VLCPlugin *p_instance) :
_p_instance(p_instance),
_p_typeinfo(NULL),
_p_vlcmarquee(NULL)
{
_p_vlcmarquee = new VLCMarquee(p_instance);
};
_p_vlcmarquee(new VLCMarquee(p_instance)),
_p_vlclogo(new VLCLogo(p_instance)) { }
virtual ~VLCVideo();
// IUnknown methods
......@@ -648,6 +714,7 @@ public:
STDMETHODIMP get_teletext(long*);
STDMETHODIMP put_teletext(long);
STDMETHODIMP get_marquee(IVLCMarquee**);
STDMETHODIMP get_logo(IVLCLogo**);
STDMETHODIMP deinterlaceDisable();
STDMETHODIMP deinterlaceEnable(BSTR);
STDMETHODIMP takeSnapshot(LPPICTUREDISP*);
......@@ -662,7 +729,7 @@ private:
VLCPlugin* _p_instance;
ITypeInfo* _p_typeinfo;
VLCMarquee* _p_vlcmarquee;
VLCLogo* _p_vlclogo;
};
class VLCControl2 : public IVLCControl2
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment