Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-2-2
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
videolan
vlc-2-2
Commits
817653d9
Commit
817653d9
authored
Oct 27, 2006
by
Damien Fouilleul
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
- add log APIs to Activex
- cleanup
parent
54ca1c9a
Changes
9
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
1775 additions
and
173 deletions
+1775
-173
activex/axvlc.idl
activex/axvlc.idl
+117
-18
activex/axvlc.tlb
activex/axvlc.tlb
+0
-0
activex/axvlc_idl.c
activex/axvlc_idl.c
+4
-0
activex/axvlc_idl.h
activex/axvlc_idl.h
+656
-54
activex/supporterrorinfo.cpp
activex/supporterrorinfo.cpp
+4
-0
activex/test.html
activex/test.html
+78
-64
activex/vlccontrol.cpp
activex/vlccontrol.cpp
+1
-1
activex/vlccontrol2.cpp
activex/vlccontrol2.cpp
+657
-18
activex/vlccontrol2.h
activex/vlccontrol2.h
+258
-18
No files found.
activex/axvlc.idl
View file @
817653d9
...
...
@@ -36,6 +36,10 @@ library AXVLC
interface
IVLCControl
;
interface
IVLCAudio
;
interface
IVLCInput
;
interface
IVLCLog
;
interface
IVLCMessage
;
interface
IVLCMessageIterator
;
interface
IVLCMessages
;
interface
IVLCPlaylist
;
interface
IVLCVideo
;
interface
IVLCControl2
;
...
...
@@ -192,9 +196,9 @@ library AXVLC
HRESULT
mute
(
[
in
]
VARIANT_BOOL
muted
)
;
[
propget
,
helpstring
(
"Returns/sets audio volume as a percent value."
)
]
HRESULT
volume
(
[
out
,
retval
]
int
*
volume
)
;
HRESULT
volume
(
[
out
,
retval
]
long
*
volume
)
;
[
propput
,
helpstring
(
"Returns/sets audio volume as a percent value."
)
]
HRESULT
volume
(
[
in
]
int
volume
)
;
HRESULT
volume
(
[
in
]
long
volume
)
;
[
helpstring
(
"Mute/unmute audio playback."
)
]
HRESULT
toggleMute
()
;
...
...
@@ -215,9 +219,9 @@ library AXVLC
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
]
float
*
position
)
;
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
]
float
position
)
;
HRESULT
position
(
[
in
]
double
position
)
;
[
propget
,
helpstring
(
"Returns/sets playback time in current clip, in milliseconds."
)
]
HRESULT
time
(
[
out
,
retval
]
double
*
time
)
;
...
...
@@ -225,20 +229,112 @@ library AXVLC
HRESULT
time
(
[
in
]
double
time
)
;
[
propget
,
helpstring
(
"Returns current playback state."
)
]
HRESULT
state
(
[
out
,
retval
]
int
*
state
)
;
HRESULT
state
(
[
out
,
retval
]
long
*
state
)
;
[
propget
,
helpstring
(
"Returns/sets current playback rate, normal rate is 1.0 "
)
]
HRESULT
rate
(
[
out
,
retval
]
float
*
rate
)
;
HRESULT
rate
(
[
out
,
retval
]
double
*
rate
)
;
[
propput
,
helpstring
(
"Returns/sets current playback rate, normal rate is 1.0."
)
]
HRESULT
rate
(
[
in
]
float
rate
)
;
HRESULT
rate
(
[
in
]
double
rate
)
;
[
propget
,
helpstring
(
"Returns current playback frames per seconds if available."
)
]
HRESULT
fps
(
[
out
,
retval
]
float
*
fps
)
;
HRESULT
fps
(
[
out
,
retval
]
double
*
fps
)
;
[
propget
,
helpstring
(
"Returns whether current playback displays video."
)
]
HRESULT
hasVout
(
[
out
,
retval
]
VARIANT_BOOL
*
hasVout
)
;
}
;
[
odl
,
uuid
(
9
ED00AFA
-
7B
CD
-
4
FFF
-
8
D48
-
7
DD4DB2C800D
),
helpstring
(
"VLC Log Message"
),
hidden
,
dual
,
nonextensible
,
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
(
15179
CD8
-
CC12
-
4242
-
A58E
-
E412217FF343
),
helpstring
(
"VLC Log iterator"
),
hidden
,
dual
,
nonextensible
,
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
(
6
C5CE55D
-
2
D6C
-
4
AAD
-
8299
-
C62D2371F106
),
helpstring
(
"VLC Log APIs"
),
hidden
,
dual
,
nonextensible
,
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
(
8
E3BC3D9
-
62
E9
-
48
FB
-
8
A6D
-
993
F9ABC4A0A
),
helpstring
(
"VLC Log APIs"
),
hidden
,
dual
,
nonextensible
,
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
(
54613049
-
40B
F
-
4035
-
9
E70
-
0
A9312C0188D
),
...
...
@@ -251,19 +347,19 @@ library AXVLC
interface
IVLCPlaylist
:
IDispatch
{
[
propget
,
helpstring
(
"Returns number of items in playlist."
)
]
HRESULT
itemCount
(
[
out
,
retval
]
int
*
count
)
;
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
]
int
*
item
)
;
HRESULT
add
(
[
in
]
BSTR
uri
,
[
in
,
optional
]
VARIANT
name
,
[
in
,
optional
]
VARIANT
options
,
[
out
,
retval
]
long
*
item
)
;
[
helpstring
(
"Play/Resume the playlist."
)
]
HRESULT
play
()
;
[
helpstring
(
"Play item in playlist."
)
]
HRESULT
playItem
(
[
in
]
int
item
)
;
HRESULT
playItem
(
[
in
]
long
item
)
;
[
helpstring
(
"Play/Pause current clip."
)
]
HRESULT
togglePause
()
;
...
...
@@ -281,7 +377,7 @@ library AXVLC
HRESULT
clear
()
;
[
helpstring
(
"remove item from playlist."
)
]
HRESULT
removeItem
(
[
in
]
int
item
)
;
HRESULT
removeItem
(
[
in
]
long
item
)
;
}
;
[
...
...
@@ -301,10 +397,10 @@ library AXVLC
HRESULT
fullscreen
(
[
in
]
VARIANT_BOOL
fullscreen
)
;
[
propget
,
helpstring
(
"Returns video original width."
)
]
HRESULT
width
(
[
out
,
retval
]
int
*
width
)
;
HRESULT
width
(
[
out
,
retval
]
long
*
width
)
;
[
propget
,
helpstring
(
"Returns video original height."
)
]
HRESULT
height
(
[
out
,
retval
]
int
*
height
)
;
HRESULT
height
(
[
out
,
retval
]
long
*
height
)
;
[
helpstring
(
"toggle fullscreen/windowed state."
)
]
HRESULT
toggleFullscreen
()
;
...
...
@@ -336,9 +432,9 @@ library AXVLC
HRESULT
BaseURL
(
[
in
]
BSTR
url
)
;
[
id
(
DISPID_StartTime
),
propget
,
helpstring
(
"Returns/sets playback start time of URL."
)
]
HRESULT
StartTime
(
[
out
,
retval
]
int
*
seconds
)
;
HRESULT
StartTime
(
[
out
,
retval
]
long
*
seconds
)
;
[
id
(
DISPID_StartTime
),
propput
,
helpstring
(
"Returns/sets playback start time of URL."
)
]
HRESULT
StartTime
(
[
in
]
int
seconds
)
;
HRESULT
StartTime
(
[
in
]
long
seconds
)
;
[
id
(
DISPID_MRL
),
propget
,
helpstring
(
"Returns/sets the default MRL in playlist"
)
]
HRESULT
MRL
(
[
out
,
retval
]
BSTR
*
mrl
)
;
...
...
@@ -354,9 +450,9 @@ library AXVLC
HRESULT
Visible
(
[
in
]
VARIANT_BOOL
visible
)
;
[
id
(
DISPID_Volume
),
propget
,
helpstring
(
"Returns/sets default audio volume."
)
]
HRESULT
Volume
(
[
out
,
retval
]
int
*
volume
)
;
HRESULT
Volume
(
[
out
,
retval
]
long
*
volume
)
;
[
id
(
DISPID_Volume
),
propput
,
helpstring
(
"Returns/sets default audio volume."
)
]
HRESULT
Volume
(
[
in
]
int
volume
)
;
HRESULT
Volume
(
[
in
]
long
volume
)
;
[
propget
,
helpstring
(
"Returns the audio object."
)
]
HRESULT
audio
(
[
out
,
retval
]
IVLCAudio
**
obj
)
;
...
...
@@ -364,6 +460,9 @@ library AXVLC
[
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
)
;
...
...
activex/axvlc.tlb
View file @
817653d9
No preview for this file type
activex/axvlc_idl.c
View file @
817653d9
...
...
@@ -15,6 +15,10 @@ DEFINE_GUID(IID_IVLCControl, 0xc2fa41d0, 0xb113, 0x476e, 0xac,0x8c, 0x9b,0xd1,0x
DEFINE_GUID
(
DIID_DVLCEvents
,
0xdf48072f
,
0x5ef8
,
0x434e
,
0x9b
,
0x40
,
0xe2
,
0xf3
,
0xae
,
0x75
,
0x9b
,
0x5f
);
DEFINE_GUID
(
IID_IVLCAudio
,
0x9e0bd17b
,
0x2d3c
,
0x4656
,
0xb9
,
0x4d
,
0x03
,
0x08
,
0x4f
,
0x3f
,
0xd9
,
0xd4
);
DEFINE_GUID
(
IID_IVLCInput
,
0x49e0dbd1
,
0x9440
,
0x466c
,
0x9c
,
0x97
,
0x95
,
0xc6
,
0x71
,
0x90
,
0xc6
,
0x03
);
DEFINE_GUID
(
IID_IVLCMessage
,
0x9ed00afa
,
0x7bcd
,
0x4fff
,
0x8d
,
0x48
,
0x7d
,
0xd4
,
0xdb
,
0x2c
,
0x80
,
0x0d
);
DEFINE_GUID
(
IID_IVLCMessageIterator
,
0x15179cd8
,
0xcc12
,
0x4242
,
0xa5
,
0x8e
,
0xe4
,
0x12
,
0x21
,
0x7f
,
0xf3
,
0x43
);
DEFINE_GUID
(
IID_IVLCMessages
,
0x6c5ce55d
,
0x2d6c
,
0x4aad
,
0x82
,
0x99
,
0xc6
,
0x2d
,
0x23
,
0x71
,
0xf1
,
0x06
);
DEFINE_GUID
(
IID_IVLCLog
,
0x8e3bc3d9
,
0x62e9
,
0x48fb
,
0x8a
,
0x6d
,
0x99
,
0x3f
,
0x9a
,
0xbc
,
0x4a
,
0x0a
);
DEFINE_GUID
(
IID_IVLCPlaylist
,
0x54613049
,
0x40bf
,
0x4035
,
0x9e
,
0x70
,
0x0a
,
0x93
,
0x12
,
0xc0
,
0x18
,
0x8d
);
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
);
...
...
activex/axvlc_idl.h
View file @
817653d9
...
...
@@ -26,6 +26,26 @@ typedef interface IVLCAudio IVLCAudio;
typedef
interface
IVLCInput
IVLCInput
;
#endif
#ifndef __IVLCLog_FWD_DEFINED__
#define __IVLCLog_FWD_DEFINED__
typedef
interface
IVLCLog
IVLCLog
;
#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 __IVLCPlaylist_FWD_DEFINED__
#define __IVLCPlaylist_FWD_DEFINED__
typedef
interface
IVLCPlaylist
IVLCPlaylist
;
...
...
@@ -786,10 +806,10 @@ interface IVLCAudio : public IDispatch
VARIANT_BOOL
muted
)
=
0
;
virtual
HRESULT
STDMETHODCALLTYPE
get_volume
(
int
*
volume
)
=
0
;
long
*
volume
)
=
0
;
virtual
HRESULT
STDMETHODCALLTYPE
put_volume
(
int
volume
)
=
0
;
long
volume
)
=
0
;
virtual
HRESULT
STDMETHODCALLTYPE
toggleMute
(
)
=
0
;
...
...
@@ -852,11 +872,11 @@ typedef struct IVLCAudioVtbl {
HRESULT
(
STDMETHODCALLTYPE
*
get_volume
)(
IVLCAudio
*
This
,
int
*
volume
);
long
*
volume
);
HRESULT
(
STDMETHODCALLTYPE
*
put_volume
)(
IVLCAudio
*
This
,
int
volume
);
long
volume
);
HRESULT
(
STDMETHODCALLTYPE
*
toggleMute
)(
IVLCAudio
*
This
);
...
...
@@ -905,7 +925,7 @@ void __RPC_STUB IVLCAudio_put_mute_Stub(
DWORD
*
pdwStubPhase
);
HRESULT
CALLBACK
IVLCAudio_get_volume_Proxy
(
IVLCAudio
*
This
,
int
*
volume
);
long
*
volume
);
void
__RPC_STUB
IVLCAudio_get_volume_Stub
(
IRpcStubBuffer
*
This
,
IRpcChannelBuffer
*
pRpcChannelBuffer
,
...
...
@@ -913,7 +933,7 @@ void __RPC_STUB IVLCAudio_get_volume_Stub(
DWORD
*
pdwStubPhase
);
HRESULT
CALLBACK
IVLCAudio_put_volume_Proxy
(
IVLCAudio
*
This
,
int
volume
);
long
volume
);
void
__RPC_STUB
IVLCAudio_put_volume_Stub
(
IRpcStubBuffer
*
This
,
IRpcChannelBuffer
*
pRpcChannelBuffer
,
...
...
@@ -943,10 +963,10 @@ interface IVLCInput : public IDispatch
double
*
length
)
=
0
;
virtual
HRESULT
STDMETHODCALLTYPE
get_position
(
float
*
position
)
=
0
;
double
*
position
)
=
0
;
virtual
HRESULT
STDMETHODCALLTYPE
put_position
(
float
position
)
=
0
;
double
position
)
=
0
;
virtual
HRESULT
STDMETHODCALLTYPE
get_time
(
double
*
time
)
=
0
;
...
...
@@ -955,16 +975,16 @@ interface IVLCInput : public IDispatch
double
time
)
=
0
;
virtual
HRESULT
STDMETHODCALLTYPE
get_state
(
int
*
state
)
=
0
;
long
*
state
)
=
0
;
virtual
HRESULT
STDMETHODCALLTYPE
get_rate
(
float
*
rate
)
=
0
;
double
*
rate
)
=
0
;
virtual
HRESULT
STDMETHODCALLTYPE
put_rate
(
float
rate
)
=
0
;
double
rate
)
=
0
;
virtual
HRESULT
STDMETHODCALLTYPE
get_fps
(
float
*
fps
)
=
0
;
double
*
fps
)
=
0
;
virtual
HRESULT
STDMETHODCALLTYPE
get_hasVout
(
VARIANT_BOOL
*
hasVout
)
=
0
;
...
...
@@ -1023,11 +1043,11 @@ typedef struct IVLCInputVtbl {
HRESULT
(
STDMETHODCALLTYPE
*
get_position
)(
IVLCInput
*
This
,
float
*
position
);
double
*
position
);
HRESULT
(
STDMETHODCALLTYPE
*
put_position
)(
IVLCInput
*
This
,
float
position
);
double
position
);
HRESULT
(
STDMETHODCALLTYPE
*
get_time
)(
IVLCInput
*
This
,
...
...
@@ -1039,19 +1059,19 @@ typedef struct IVLCInputVtbl {
HRESULT
(
STDMETHODCALLTYPE
*
get_state
)(
IVLCInput
*
This
,
int
*
state
);
long
*
state
);
HRESULT
(
STDMETHODCALLTYPE
*
get_rate
)(
IVLCInput
*
This
,
float
*
rate
);
double
*
rate
);
HRESULT
(
STDMETHODCALLTYPE
*
put_rate
)(
IVLCInput
*
This
,
float
rate
);
double
rate
);
HRESULT
(
STDMETHODCALLTYPE
*
get_fps
)(
IVLCInput
*
This
,
float
*
fps
);
double
*
fps
);
HRESULT
(
STDMETHODCALLTYPE
*
get_hasVout
)(
IVLCInput
*
This
,
...
...
@@ -1098,7 +1118,7 @@ void __RPC_STUB IVLCInput_get_length_Stub(
DWORD
*
pdwStubPhase
);
HRESULT
CALLBACK
IVLCInput_get_position_Proxy
(
IVLCInput
*
This
,
float
*
position
);
double
*
position
);
void
__RPC_STUB
IVLCInput_get_position_Stub
(
IRpcStubBuffer
*
This
,
IRpcChannelBuffer
*
pRpcChannelBuffer
,
...
...
@@ -1106,7 +1126,7 @@ void __RPC_STUB IVLCInput_get_position_Stub(
DWORD
*
pdwStubPhase
);
HRESULT
CALLBACK
IVLCInput_put_position_Proxy
(
IVLCInput
*
This
,
float
position
);
double
position
);
void
__RPC_STUB
IVLCInput_put_position_Stub
(
IRpcStubBuffer
*
This
,
IRpcChannelBuffer
*
pRpcChannelBuffer
,
...
...
@@ -1130,7 +1150,7 @@ void __RPC_STUB IVLCInput_put_time_Stub(
DWORD
*
pdwStubPhase
);
HRESULT
CALLBACK
IVLCInput_get_state_Proxy
(
IVLCInput
*
This
,
int
*
state
);
long
*
state
);
void
__RPC_STUB
IVLCInput_get_state_Stub
(
IRpcStubBuffer
*
This
,
IRpcChannelBuffer
*
pRpcChannelBuffer
,
...
...
@@ -1138,7 +1158,7 @@ void __RPC_STUB IVLCInput_get_state_Stub(
DWORD
*
pdwStubPhase
);
HRESULT
CALLBACK
IVLCInput_get_rate_Proxy
(
IVLCInput
*
This
,
float
*
rate
);
double
*
rate
);
void
__RPC_STUB
IVLCInput_get_rate_Stub
(
IRpcStubBuffer
*
This
,
IRpcChannelBuffer
*
pRpcChannelBuffer
,
...
...
@@ -1146,7 +1166,7 @@ void __RPC_STUB IVLCInput_get_rate_Stub(
DWORD
*
pdwStubPhase
);
HRESULT
CALLBACK
IVLCInput_put_rate_Proxy
(
IVLCInput
*
This
,
float
rate
);
double
rate
);
void
__RPC_STUB
IVLCInput_put_rate_Stub
(
IRpcStubBuffer
*
This
,
IRpcChannelBuffer
*
pRpcChannelBuffer
,
...
...
@@ -1154,7 +1174,7 @@ void __RPC_STUB IVLCInput_put_rate_Stub(
DWORD
*
pdwStubPhase
);
HRESULT
CALLBACK
IVLCInput_get_fps_Proxy
(
IVLCInput
*
This
,
float
*
fps
);
double
*
fps
);
void
__RPC_STUB
IVLCInput_get_fps_Stub
(
IRpcStubBuffer
*
This
,
IRpcChannelBuffer
*
pRpcChannelBuffer
,
...
...
@@ -1171,6 +1191,572 @@ void __RPC_STUB IVLCInput_get_hasVout_Stub(
#endif
/* __IVLCInput_INTERFACE_DEFINED__ */
/*****************************************************************************
* IVLCMessage interface
*/
#ifndef __IVLCMessage_INTERFACE_DEFINED__
#define __IVLCMessage_INTERFACE_DEFINED__
DEFINE_GUID
(
IID_IVLCMessage
,
0x9ed00afa
,
0x7bcd
,
0x4fff
,
0x8d
,
0x48
,
0x7d
,
0xd4
,
0xdb
,
0x2c
,
0x80
,
0x0d
);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface
IVLCMessage
:
public
IDispatch
{
virtual
HRESULT
STDMETHODCALLTYPE
get__Value
(
VARIANT
*
message
)
=
0
;
virtual
HRESULT
STDMETHODCALLTYPE
get_severity
(
long
*
level
)
=
0
;
virtual
HRESULT
STDMETHODCALLTYPE
get_type
(
BSTR
*
type
)
=
0
;
virtual
HRESULT
STDMETHODCALLTYPE
get_name
(
BSTR
*
name
)
=
0
;
virtual
HRESULT
STDMETHODCALLTYPE
get_header
(
BSTR
*
header
)
=
0
;
virtual
HRESULT
STDMETHODCALLTYPE
get_message
(
BSTR
*
message
)
=
0
;
};
#else
typedef
struct
IVLCMessageVtbl
{
BEGIN_INTERFACE
/*** IUnknown methods ***/
HRESULT
(
STDMETHODCALLTYPE
*
QueryInterface
)(
IVLCMessage
*
This
,
REFIID
riid
,
void
**
ppvObject
);
ULONG
(
STDMETHODCALLTYPE
*
AddRef
)(
IVLCMessage
*
This
);
ULONG
(
STDMETHODCALLTYPE
*
Release
)(
IVLCMessage
*
This
);
/*** IDispatch methods ***/
HRESULT
(
STDMETHODCALLTYPE
*
GetTypeInfoCount
)(
IVLCMessage
*
This
,
UINT
*
pctinfo
);
HRESULT
(
STDMETHODCALLTYPE
*
GetTypeInfo
)(
IVLCMessage
*
This
,
UINT
iTInfo
,
LCID
lcid
,
ITypeInfo
**
ppTInfo
);
HRESULT
(
STDMETHODCALLTYPE
*
GetIDsOfNames
)(
IVLCMessage
*
This
,
REFIID
riid
,
LPOLESTR
*
rgszNames
,
UINT
cNames
,
LCID
lcid
,
DISPID
*
rgDispId
);
HRESULT
(
STDMETHODCALLTYPE
*
Invoke
)(
IVLCMessage
*
This
,
DISPID
dispIdMember
,
REFIID
riid
,
LCID
lcid
,
WORD
wFlags
,
DISPPARAMS
*
pDispParams
,
VARIANT
*
pVarResult
,
EXCEPINFO
*
pExcepInfo
,
UINT
*
puArgErr
);
/*** IVLCMessage methods ***/
HRESULT
(
STDMETHODCALLTYPE
*
get__Value
)(
IVLCMessage
*
This
,
VARIANT
*
message
);
HRESULT
(
STDMETHODCALLTYPE
*
get_severity
)(
IVLCMessage
*
This
,
long
*
level
);
HRESULT
(
STDMETHODCALLTYPE
*
get_type
)(
IVLCMessage
*
This
,
BSTR
*
type
);
HRESULT
(
STDMETHODCALLTYPE
*
get_name
)(
IVLCMessage
*
This
,
BSTR
*
name
);
HRESULT
(
STDMETHODCALLTYPE
*
get_header
)(
IVLCMessage
*
This
,
BSTR
*
header
);
HRESULT
(
STDMETHODCALLTYPE
*
get_message
)(
IVLCMessage
*
This
,
BSTR
*
message
);
END_INTERFACE
}
IVLCMessageVtbl
;
interface
IVLCMessage
{
const
IVLCMessageVtbl
*
lpVtbl
;
};
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IVLCMessage_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IVLCMessage_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IVLCMessage_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define IVLCMessage_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define IVLCMessage_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define IVLCMessage_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define IVLCMessage_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** IVLCMessage methods ***/
#define IVLCMessage_get__Value(p,a) (p)->lpVtbl->get__Value(p,a)
#define IVLCMessage_get_severity(p,a) (p)->lpVtbl->get_severity(p,a)
#define IVLCMessage_get_type(p,a) (p)->lpVtbl->get_type(p,a)
#define IVLCMessage_get_name(p,a) (p)->lpVtbl->get_name(p,a)
#define IVLCMessage_get_header(p,a) (p)->lpVtbl->get_header(p,a)
#define IVLCMessage_get_message(p,a) (p)->lpVtbl->get_message(p,a)
#endif
#endif
HRESULT
CALLBACK
IVLCMessage_get__Value_Proxy
(
IVLCMessage
*
This
,
VARIANT
*
message
);
void
__RPC_STUB
IVLCMessage_get__Value_Stub
(
IRpcStubBuffer
*
This
,
IRpcChannelBuffer
*
pRpcChannelBuffer
,
PRPC_MESSAGE
pRpcMessage
,
DWORD
*
pdwStubPhase
);
HRESULT
CALLBACK
IVLCMessage_get_severity_Proxy
(
IVLCMessage
*
This
,
long
*
level
);
void
__RPC_STUB
IVLCMessage_get_severity_Stub
(
IRpcStubBuffer
*
This
,
IRpcChannelBuffer
*
pRpcChannelBuffer
,
PRPC_MESSAGE
pRpcMessage
,
DWORD
*
pdwStubPhase
);
HRESULT
CALLBACK
IVLCMessage_get_type_Proxy
(
IVLCMessage
*
This
,
BSTR
*
type
);
void
__RPC_STUB
IVLCMessage_get_type_Stub
(
IRpcStubBuffer
*
This
,
IRpcChannelBuffer
*
pRpcChannelBuffer
,
PRPC_MESSAGE
pRpcMessage
,
DWORD
*
pdwStubPhase
);
HRESULT
CALLBACK
IVLCMessage_get_name_Proxy
(
IVLCMessage
*
This
,
BSTR
*
name
);
void
__RPC_STUB
IVLCMessage_get_name_Stub
(
IRpcStubBuffer
*
This
,
IRpcChannelBuffer
*
pRpcChannelBuffer
,
PRPC_MESSAGE
pRpcMessage
,
DWORD
*
pdwStubPhase
);
HRESULT
CALLBACK
IVLCMessage_get_header_Proxy
(
IVLCMessage
*
This
,
BSTR
*
header
);
void
__RPC_STUB
IVLCMessage_get_header_Stub
(
IRpcStubBuffer
*
This
,
IRpcChannelBuffer
*
pRpcChannelBuffer
,
PRPC_MESSAGE
pRpcMessage
,
DWORD
*
pdwStubPhase
);
HRESULT
CALLBACK
IVLCMessage_get_message_Proxy
(
IVLCMessage
*
This
,
BSTR
*
message
);
void
__RPC_STUB
IVLCMessage_get_message_Stub
(
IRpcStubBuffer
*
This
,
IRpcChannelBuffer
*
pRpcChannelBuffer
,
PRPC_MESSAGE
pRpcMessage
,
DWORD
*
pdwStubPhase
);
#endif
/* __IVLCMessage_INTERFACE_DEFINED__ */
/*****************************************************************************
* IVLCMessageIterator interface
*/
#ifndef __IVLCMessageIterator_INTERFACE_DEFINED__
#define __IVLCMessageIterator_INTERFACE_DEFINED__
DEFINE_GUID
(
IID_IVLCMessageIterator
,
0x15179cd8
,
0xcc12
,
0x4242
,
0xa5
,
0x8e
,
0xe4
,
0x12
,
0x21
,
0x7f
,
0xf3
,
0x43
);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface
IVLCMessageIterator
:
public
IDispatch
{
virtual
HRESULT
STDMETHODCALLTYPE
get_hasNext
(
VARIANT_BOOL
*
hasNext
)
=
0
;
virtual
HRESULT
STDMETHODCALLTYPE
next
(
IVLCMessage
**
msg
)
=
0
;
};
#else
typedef
struct
IVLCMessageIteratorVtbl
{
BEGIN_INTERFACE
/*** IUnknown methods ***/
HRESULT
(
STDMETHODCALLTYPE
*
QueryInterface
)(
IVLCMessageIterator
*
This
,
REFIID
riid
,
void
**
ppvObject
);
ULONG
(
STDMETHODCALLTYPE
*
AddRef
)(
IVLCMessageIterator
*
This
);
ULONG
(
STDMETHODCALLTYPE
*
Release
)(
IVLCMessageIterator
*
This
);
/*** IDispatch methods ***/
HRESULT
(
STDMETHODCALLTYPE
*
GetTypeInfoCount
)(
IVLCMessageIterator
*
This
,
UINT
*
pctinfo
);
HRESULT
(
STDMETHODCALLTYPE
*
GetTypeInfo
)(
IVLCMessageIterator
*
This
,
UINT
iTInfo
,
LCID
lcid
,
ITypeInfo
**
ppTInfo
);
HRESULT
(
STDMETHODCALLTYPE
*
GetIDsOfNames
)(
IVLCMessageIterator
*
This
,
REFIID
riid
,
LPOLESTR
*
rgszNames
,
UINT
cNames
,
LCID
lcid
,
DISPID
*
rgDispId
);
HRESULT
(
STDMETHODCALLTYPE
*
Invoke
)(
IVLCMessageIterator
*
This
,
DISPID
dispIdMember
,
REFIID
riid
,
LCID
lcid
,
WORD
wFlags
,
DISPPARAMS
*
pDispParams
,
VARIANT
*
pVarResult
,
EXCEPINFO
*
pExcepInfo
,
UINT
*
puArgErr
);
/*** IVLCMessageIterator methods ***/
HRESULT
(
STDMETHODCALLTYPE
*
get_hasNext
)(
IVLCMessageIterator
*
This
,
VARIANT_BOOL
*
hasNext
);
HRESULT
(
STDMETHODCALLTYPE
*
next
)(
IVLCMessageIterator
*
This
,
IVLCMessage
**
msg
);
END_INTERFACE
}
IVLCMessageIteratorVtbl
;
interface
IVLCMessageIterator
{
const
IVLCMessageIteratorVtbl
*
lpVtbl
;
};
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IVLCMessageIterator_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IVLCMessageIterator_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IVLCMessageIterator_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define IVLCMessageIterator_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define IVLCMessageIterator_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define IVLCMessageIterator_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define IVLCMessageIterator_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** IVLCMessageIterator methods ***/
#define IVLCMessageIterator_get_hasNext(p,a) (p)->lpVtbl->get_hasNext(p,a)
#define IVLCMessageIterator_next(p,a) (p)->lpVtbl->next(p,a)
#endif
#endif
HRESULT
CALLBACK
IVLCMessageIterator_get_hasNext_Proxy
(
IVLCMessageIterator
*
This
,
VARIANT_BOOL
*
hasNext
);
void
__RPC_STUB
IVLCMessageIterator_get_hasNext_Stub
(
IRpcStubBuffer
*
This
,
IRpcChannelBuffer
*
pRpcChannelBuffer
,
PRPC_MESSAGE
pRpcMessage
,
DWORD
*
pdwStubPhase
);
HRESULT
CALLBACK
IVLCMessageIterator_next_Proxy
(
IVLCMessageIterator
*
This
,
IVLCMessage
**
msg
);
void
__RPC_STUB
IVLCMessageIterator_next_Stub
(
IRpcStubBuffer
*
This
,
IRpcChannelBuffer
*
pRpcChannelBuffer
,
PRPC_MESSAGE
pRpcMessage
,
DWORD
*
pdwStubPhase
);
#endif
/* __IVLCMessageIterator_INTERFACE_DEFINED__ */
/*****************************************************************************
* IVLCMessages interface
*/
#ifndef __IVLCMessages_INTERFACE_DEFINED__
#define __IVLCMessages_INTERFACE_DEFINED__
DEFINE_GUID
(
IID_IVLCMessages
,
0x6c5ce55d
,
0x2d6c
,
0x4aad
,
0x82
,
0x99
,
0xc6
,
0x2d
,
0x23
,
0x71
,
0xf1
,
0x06
);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface
IVLCMessages
:
public
IDispatch
{
virtual
HRESULT
STDMETHODCALLTYPE
get__NewEnum
(
IUnknown
**
_NewEnum
)
=
0
;
virtual
HRESULT
STDMETHODCALLTYPE
clear
(
)
=
0
;
virtual
HRESULT
STDMETHODCALLTYPE
get_count
(
long
*
count
)
=
0
;
virtual
HRESULT
STDMETHODCALLTYPE
iterator
(
IVLCMessageIterator
**
iter
)
=
0
;
};
#else
typedef
struct
IVLCMessagesVtbl
{
BEGIN_INTERFACE
/*** IUnknown methods ***/
HRESULT
(
STDMETHODCALLTYPE
*
QueryInterface
)(
IVLCMessages
*
This
,
REFIID
riid
,
void
**
ppvObject
);
ULONG
(
STDMETHODCALLTYPE
*
AddRef
)(
IVLCMessages
*
This
);
ULONG
(
STDMETHODCALLTYPE
*
Release
)(
IVLCMessages
*
This
);
/*** IDispatch methods ***/
HRESULT
(
STDMETHODCALLTYPE
*
GetTypeInfoCount
)(
IVLCMessages
*
This
,
UINT
*
pctinfo
);
HRESULT
(
STDMETHODCALLTYPE
*
GetTypeInfo
)(
IVLCMessages
*
This
,
UINT
iTInfo
,
LCID
lcid
,
ITypeInfo
**
ppTInfo
);
HRESULT
(
STDMETHODCALLTYPE
*
GetIDsOfNames
)(
IVLCMessages
*
This
,
REFIID
riid
,
LPOLESTR
*
rgszNames
,
UINT
cNames
,
LCID
lcid
,
DISPID
*
rgDispId
);
HRESULT
(
STDMETHODCALLTYPE
*
Invoke
)(
IVLCMessages
*
This
,
DISPID
dispIdMember
,
REFIID
riid
,
LCID
lcid
,
WORD
wFlags
,
DISPPARAMS
*
pDispParams
,
VARIANT
*
pVarResult
,
EXCEPINFO
*
pExcepInfo
,
UINT
*
puArgErr
);
/*** IVLCMessages methods ***/
HRESULT
(
STDMETHODCALLTYPE
*
get__NewEnum
)(
IVLCMessages
*
This
,
IUnknown
**
_NewEnum
);
HRESULT
(
STDMETHODCALLTYPE
*
clear
)(
IVLCMessages
*
This
);
HRESULT
(
STDMETHODCALLTYPE
*
get_count
)(
IVLCMessages
*
This
,
long
*
count
);
HRESULT
(
STDMETHODCALLTYPE
*
iterator
)(
IVLCMessages
*
This
,
IVLCMessageIterator
**
iter
);
END_INTERFACE
}
IVLCMessagesVtbl
;
interface
IVLCMessages
{
const
IVLCMessagesVtbl
*
lpVtbl
;
};
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IVLCMessages_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IVLCMessages_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IVLCMessages_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define IVLCMessages_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define IVLCMessages_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define IVLCMessages_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define IVLCMessages_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** IVLCMessages methods ***/
#define IVLCMessages_get__NewEnum(p,a) (p)->lpVtbl->get__NewEnum(p,a)
#define IVLCMessages_clear(p) (p)->lpVtbl->clear(p)
#define IVLCMessages_get_count(p,a) (p)->lpVtbl->get_count(p,a)
#define IVLCMessages_iterator(p,a) (p)->lpVtbl->iterator(p,a)
#endif
#endif
HRESULT
CALLBACK
IVLCMessages_get__NewEnum_Proxy
(
IVLCMessages
*
This
,
IUnknown
**
_NewEnum
);
void
__RPC_STUB
IVLCMessages_get__NewEnum_Stub
(
IRpcStubBuffer
*
This
,
IRpcChannelBuffer
*
pRpcChannelBuffer
,
PRPC_MESSAGE
pRpcMessage
,
DWORD
*
pdwStubPhase
);
HRESULT
CALLBACK
IVLCMessages_clear_Proxy
(
IVLCMessages
*
This
);
void
__RPC_STUB
IVLCMessages_clear_Stub
(
IRpcStubBuffer
*
This
,
IRpcChannelBuffer
*
pRpcChannelBuffer
,
PRPC_MESSAGE
pRpcMessage
,
DWORD
*
pdwStubPhase
);
HRESULT
CALLBACK
IVLCMessages_get_count_Proxy
(
IVLCMessages
*
This
,
long
*
count
);
void
__RPC_STUB
IVLCMessages_get_count_Stub
(
IRpcStubBuffer
*
This
,
IRpcChannelBuffer
*
pRpcChannelBuffer
,
PRPC_MESSAGE
pRpcMessage
,
DWORD
*
pdwStubPhase
);
HRESULT
CALLBACK
IVLCMessages_iterator_Proxy
(
IVLCMessages
*
This
,
IVLCMessageIterator
**
iter
);
void
__RPC_STUB
IVLCMessages_iterator_Stub
(
IRpcStubBuffer
*
This
,
IRpcChannelBuffer
*
pRpcChannelBuffer
,
PRPC_MESSAGE
pRpcMessage
,
DWORD
*
pdwStubPhase
);
#endif
/* __IVLCMessages_INTERFACE_DEFINED__ */
/*****************************************************************************
* IVLCLog interface
*/
#ifndef __IVLCLog_INTERFACE_DEFINED__
#define __IVLCLog_INTERFACE_DEFINED__
DEFINE_GUID
(
IID_IVLCLog
,
0x8e3bc3d9
,
0x62e9
,
0x48fb
,
0x8a
,
0x6d
,
0x99
,
0x3f
,
0x9a
,
0xbc
,
0x4a
,
0x0a
);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface
IVLCLog
:
public
IDispatch
{
virtual
HRESULT
STDMETHODCALLTYPE
get_messages
(
IVLCMessages
**
iter
)
=
0
;
virtual
HRESULT
STDMETHODCALLTYPE
get_verbosity
(
long
*
level
)
=
0
;
virtual
HRESULT
STDMETHODCALLTYPE
put_verbosity
(
long
level
)
=
0
;
};
#else
typedef
struct
IVLCLogVtbl
{
BEGIN_INTERFACE
/*** IUnknown methods ***/
HRESULT
(
STDMETHODCALLTYPE
*
QueryInterface
)(
IVLCLog
*
This
,
REFIID
riid
,
void
**
ppvObject
);
ULONG
(
STDMETHODCALLTYPE
*
AddRef
)(
IVLCLog
*
This
);
ULONG
(
STDMETHODCALLTYPE
*
Release
)(
IVLCLog
*
This
);
/*** IDispatch methods ***/
HRESULT
(
STDMETHODCALLTYPE
*
GetTypeInfoCount
)(
IVLCLog
*
This
,
UINT
*
pctinfo
);
HRESULT
(
STDMETHODCALLTYPE
*
GetTypeInfo
)(
IVLCLog
*
This
,
UINT
iTInfo
,
LCID
lcid
,
ITypeInfo
**
ppTInfo
);
HRESULT
(
STDMETHODCALLTYPE
*
GetIDsOfNames
)(
IVLCLog
*
This
,
REFIID
riid
,
LPOLESTR
*
rgszNames
,
UINT
cNames
,
LCID
lcid
,
DISPID
*
rgDispId
);
HRESULT
(
STDMETHODCALLTYPE
*
Invoke
)(
IVLCLog
*
This
,
DISPID
dispIdMember
,
REFIID
riid
,
LCID
lcid
,
WORD
wFlags
,
DISPPARAMS
*
pDispParams
,
VARIANT
*
pVarResult
,
EXCEPINFO
*
pExcepInfo
,
UINT
*
puArgErr
);
/*** IVLCLog methods ***/
HRESULT
(
STDMETHODCALLTYPE
*
get_messages
)(
IVLCLog
*
This
,
IVLCMessages
**
iter
);
HRESULT
(
STDMETHODCALLTYPE
*
get_verbosity
)(
IVLCLog
*
This
,
long
*
level
);
HRESULT
(
STDMETHODCALLTYPE
*
put_verbosity
)(
IVLCLog
*
This
,
long
level
);
END_INTERFACE
}
IVLCLogVtbl
;
interface
IVLCLog
{
const
IVLCLogVtbl
*
lpVtbl
;
};
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IVLCLog_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IVLCLog_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IVLCLog_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define IVLCLog_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define IVLCLog_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define IVLCLog_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define IVLCLog_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** IVLCLog methods ***/
#define IVLCLog_get_messages(p,a) (p)->lpVtbl->get_messages(p,a)
#define IVLCLog_get_verbosity(p,a) (p)->lpVtbl->get_verbosity(p,a)
#define IVLCLog_put_verbosity(p,a) (p)->lpVtbl->put_verbosity(p,a)
#endif
#endif
HRESULT
CALLBACK
IVLCLog_get_messages_Proxy
(
IVLCLog
*
This
,
IVLCMessages
**
iter
);
void
__RPC_STUB
IVLCLog_get_messages_Stub
(
IRpcStubBuffer
*
This
,
IRpcChannelBuffer
*
pRpcChannelBuffer
,
PRPC_MESSAGE
pRpcMessage
,
DWORD
*
pdwStubPhase
);
HRESULT
CALLBACK
IVLCLog_get_verbosity_Proxy
(
IVLCLog
*
This
,
long
*
level
);
void
__RPC_STUB
IVLCLog_get_verbosity_Stub
(
IRpcStubBuffer
*
This
,
IRpcChannelBuffer
*
pRpcChannelBuffer
,
PRPC_MESSAGE
pRpcMessage
,
DWORD
*
pdwStubPhase
);
HRESULT
CALLBACK
IVLCLog_put_verbosity_Proxy
(
IVLCLog
*
This
,
long
level
);
void
__RPC_STUB
IVLCLog_put_verbosity_Stub
(
IRpcStubBuffer
*
This
,
IRpcChannelBuffer
*
pRpcChannelBuffer
,
PRPC_MESSAGE
pRpcMessage
,
DWORD
*
pdwStubPhase
);
#endif
/* __IVLCLog_INTERFACE_DEFINED__ */
/*****************************************************************************
* IVLCPlaylist interface
*/
...
...
@@ -1182,7 +1768,7 @@ DEFINE_GUID(IID_IVLCPlaylist, 0x54613049, 0x40bf, 0x4035, 0x9e,0x70, 0x0a,0x93,0
interface
IVLCPlaylist
:
public
IDispatch
{
virtual
HRESULT
STDMETHODCALLTYPE
get_itemCount
(
int
*
count
)
=
0
;
long
*
count
)
=
0
;
virtual
HRESULT
STDMETHODCALLTYPE
get_isPlaying
(
VARIANT_BOOL
*
playing
)
=
0
;
...
...
@@ -1191,13 +1777,13 @@ interface IVLCPlaylist : public IDispatch
BSTR
uri
,
VARIANT
name
,
VARIANT
options
,
int
*
item
)
=
0
;
long
*
item
)
=
0
;
virtual
HRESULT
STDMETHODCALLTYPE
play
(
)
=
0
;
virtual
HRESULT
STDMETHODCALLTYPE
playItem
(
int
item
)
=
0
;
long
item
)
=
0
;
virtual
HRESULT
STDMETHODCALLTYPE
togglePause
(
)
=
0
;
...
...
@@ -1215,7 +1801,7 @@ interface IVLCPlaylist : public IDispatch
)
=
0
;
virtual
HRESULT
STDMETHODCALLTYPE
removeItem
(
int
item
)
=
0
;
long
item
)
=
0
;
};
#else
...
...
@@ -1267,7 +1853,7 @@ typedef struct IVLCPlaylistVtbl {
/*** IVLCPlaylist methods ***/
HRESULT
(
STDMETHODCALLTYPE
*
get_itemCount
)(
IVLCPlaylist
*
This
,
int
*
count
);
long
*
count
);
HRESULT
(
STDMETHODCALLTYPE
*
get_isPlaying
)(
IVLCPlaylist
*
This
,
...
...
@@ -1278,14 +1864,14 @@ typedef struct IVLCPlaylistVtbl {
BSTR
uri
,
VARIANT
name
,
VARIANT
options
,
int
*
item
);
long
*
item
);
HRESULT
(
STDMETHODCALLTYPE
*
play
)(
IVLCPlaylist
*
This
);
HRESULT
(
STDMETHODCALLTYPE
*
playItem
)(
IVLCPlaylist
*
This
,
int
item
);
long
item
);
HRESULT
(
STDMETHODCALLTYPE
*
togglePause
)(
IVLCPlaylist
*
This
);
...
...
@@ -1304,7 +1890,7 @@ typedef struct IVLCPlaylistVtbl {
HRESULT
(
STDMETHODCALLTYPE
*
removeItem
)(
IVLCPlaylist
*
This
,
int
item
);
long
item
);
END_INTERFACE
}
IVLCPlaylistVtbl
;
...
...
@@ -1340,7 +1926,7 @@ interface IVLCPlaylist {
HRESULT
CALLBACK
IVLCPlaylist_get_itemCount_Proxy
(
IVLCPlaylist
*
This
,
int
*
count
);
long
*
count
);
void
__RPC_STUB
IVLCPlaylist_get_itemCount_Stub
(
IRpcStubBuffer
*
This
,
IRpcChannelBuffer
*
pRpcChannelBuffer
,
...
...
@@ -1359,7 +1945,7 @@ HRESULT CALLBACK IVLCPlaylist_add_Proxy(
BSTR
uri
,
VARIANT
name
,
VARIANT
options
,
int
*
item
);
long
*
item
);
void
__RPC_STUB
IVLCPlaylist_add_Stub
(
IRpcStubBuffer
*
This
,
IRpcChannelBuffer
*
pRpcChannelBuffer
,
...
...
@@ -1374,7 +1960,7 @@ void __RPC_STUB IVLCPlaylist_play_Stub(
DWORD
*
pdwStubPhase
);
HRESULT
CALLBACK
IVLCPlaylist_playItem_Proxy
(
IVLCPlaylist
*
This
,
int
item
);
long
item
);
void
__RPC_STUB
IVLCPlaylist_playItem_Stub
(
IRpcStubBuffer
*
This
,
IRpcChannelBuffer
*
pRpcChannelBuffer
,
...
...
@@ -1417,7 +2003,7 @@ void __RPC_STUB IVLCPlaylist_clear_Stub(
DWORD
*
pdwStubPhase
);
HRESULT
CALLBACK
IVLCPlaylist_removeItem_Proxy
(
IVLCPlaylist
*
This
,
int
item
);
long
item
);
void
__RPC_STUB
IVLCPlaylist_removeItem_Stub
(
IRpcStubBuffer
*
This
,
IRpcChannelBuffer
*
pRpcChannelBuffer
,
...
...
@@ -1443,10 +2029,10 @@ interface IVLCVideo : public IDispatch
VARIANT_BOOL
fullscreen
)
=
0
;
virtual
HRESULT
STDMETHODCALLTYPE
get_width
(
int
*
width
)
=
0
;
long
*
width
)
=
0
;
virtual
HRESULT
STDMETHODCALLTYPE
get_height
(
int
*
height
)
=
0
;
long
*
height
)
=
0
;
virtual
HRESULT
STDMETHODCALLTYPE
toggleFullscreen
(
)
=
0
;
...
...
@@ -1509,11 +2095,11 @@ typedef struct IVLCVideoVtbl {
HRESULT
(
STDMETHODCALLTYPE
*
get_width
)(
IVLCVideo
*
This
,
int
*
width
);
long
*
width
);
HRESULT
(
STDMETHODCALLTYPE
*
get_height
)(
IVLCVideo
*
This
,
int
*
height
);
long
*
height
);
HRESULT
(
STDMETHODCALLTYPE
*
toggleFullscreen
)(
IVLCVideo
*
This
);
...
...
@@ -1562,7 +2148,7 @@ void __RPC_STUB IVLCVideo_put_fullscreen_Stub(
DWORD
*
pdwStubPhase
);
HRESULT
CALLBACK
IVLCVideo_get_width_Proxy
(
IVLCVideo
*
This
,
int
*
width
);
long
*
width
);
void
__RPC_STUB
IVLCVideo_get_width_Stub
(
IRpcStubBuffer
*
This
,
IRpcChannelBuffer
*
pRpcChannelBuffer
,
...
...
@@ -1570,7 +2156,7 @@ void __RPC_STUB IVLCVideo_get_width_Stub(
DWORD
*
pdwStubPhase
);
HRESULT
CALLBACK
IVLCVideo_get_height_Proxy
(
IVLCVideo
*
This
,
int
*
height
);
long
*
height
);
void
__RPC_STUB
IVLCVideo_get_height_Stub
(
IRpcStubBuffer
*
This
,
IRpcChannelBuffer
*
pRpcChannelBuffer
,
...
...
@@ -1615,10 +2201,10 @@ interface IVLCControl2 : public IDispatch
BSTR
url
)
=
0
;
virtual
HRESULT
STDMETHODCALLTYPE
get_StartTime
(
int
*
seconds
)
=
0
;
long
*
seconds
)
=
0
;
virtual
HRESULT
STDMETHODCALLTYPE
put_StartTime
(
int
seconds
)
=
0
;
long
seconds
)
=
0
;
virtual
HRESULT
STDMETHODCALLTYPE
get_MRL
(
BSTR
*
mrl
)
=
0
;
...
...
@@ -1636,10 +2222,10 @@ interface IVLCControl2 : public IDispatch
VARIANT_BOOL
visible
)
=
0
;
virtual
HRESULT
STDMETHODCALLTYPE
get_Volume
(
int
*
volume
)
=
0
;
long
*
volume
)
=
0
;
virtual
HRESULT
STDMETHODCALLTYPE
put_Volume
(
int
volume
)
=
0
;
long
volume
)
=
0
;
virtual
HRESULT
STDMETHODCALLTYPE
get_audio
(
IVLCAudio
**
obj
)
=
0
;
...
...
@@ -1647,6 +2233,9 @@ interface IVLCControl2 : public IDispatch
virtual
HRESULT
STDMETHODCALLTYPE
get_input
(
IVLCInput
**
obj
)
=
0
;
virtual
HRESULT
STDMETHODCALLTYPE
get_log
(
IVLCLog
**
obj
)
=
0
;
virtual
HRESULT
STDMETHODCALLTYPE
get_playlist
(
IVLCPlaylist
**
obj
)
=
0
;
...
...
@@ -1727,11 +2316,11 @@ typedef struct IVLCControl2Vtbl {
HRESULT
(
STDMETHODCALLTYPE
*
get_StartTime
)(
IVLCControl2
*
This
,
int
*
seconds
);
long
*
seconds
);
HRESULT
(
STDMETHODCALLTYPE
*
put_StartTime
)(
IVLCControl2
*
This
,
int
seconds
);
long
seconds
);
HRESULT
(
STDMETHODCALLTYPE
*
get_MRL
)(
IVLCControl2
*
This
,
...
...
@@ -1755,11 +2344,11 @@ typedef struct IVLCControl2Vtbl {
HRESULT
(
STDMETHODCALLTYPE
*
get_Volume
)(
IVLCControl2
*
This
,
int
*
volume
);
long
*
volume
);
HRESULT
(
STDMETHODCALLTYPE
*
put_Volume
)(
IVLCControl2
*
This
,
int
volume
);
long
volume
);
HRESULT
(
STDMETHODCALLTYPE
*
get_audio
)(
IVLCControl2
*
This
,
...
...
@@ -1769,6 +2358,10 @@ typedef struct IVLCControl2Vtbl {
IVLCControl2
*
This
,
IVLCInput
**
obj
);
HRESULT
(
STDMETHODCALLTYPE
*
get_log
)(
IVLCControl2
*
This
,
IVLCLog
**
obj
);
HRESULT
(
STDMETHODCALLTYPE
*
get_playlist
)(
IVLCControl2
*
This
,
IVLCPlaylist
**
obj
);
...
...
@@ -1811,6 +2404,7 @@ interface IVLCControl2 {
#define IVLCControl2_put_Volume(p,a) (p)->lpVtbl->put_Volume(p,a)
#define IVLCControl2_get_audio(p,a) (p)->lpVtbl->get_audio(p,a)
#define IVLCControl2_get_input(p,a) (p)->lpVtbl->get_input(p,a)
#define IVLCControl2_get_log(p,a) (p)->lpVtbl->get_log(p,a)
#define IVLCControl2_get_playlist(p,a) (p)->lpVtbl->get_playlist(p,a)
#define IVLCControl2_get_video(p,a) (p)->lpVtbl->get_video(p,a)
#endif
...
...
@@ -1867,7 +2461,7 @@ void __RPC_STUB IVLCControl2_put_BaseURL_Stub(
DWORD
*
pdwStubPhase
);
HRESULT
CALLBACK
IVLCControl2_get_StartTime_Proxy
(
IVLCControl2
*
This
,
int
*
seconds
);
long
*
seconds
);
void
__RPC_STUB
IVLCControl2_get_StartTime_Stub
(
IRpcStubBuffer
*
This
,
IRpcChannelBuffer
*
pRpcChannelBuffer
,
...
...
@@ -1875,7 +2469,7 @@ void __RPC_STUB IVLCControl2_get_StartTime_Stub(
DWORD
*
pdwStubPhase
);
HRESULT
CALLBACK
IVLCControl2_put_StartTime_Proxy
(
IVLCControl2
*
This
,
int
seconds
);
long
seconds
);
void
__RPC_STUB
IVLCControl2_put_StartTime_Stub
(
IRpcStubBuffer
*
This
,
IRpcChannelBuffer
*
pRpcChannelBuffer
,
...
...
@@ -1923,7 +2517,7 @@ void __RPC_STUB IVLCControl2_put_Visible_Stub(
DWORD
*
pdwStubPhase
);
HRESULT
CALLBACK
IVLCControl2_get_Volume_Proxy
(
IVLCControl2
*
This
,
int
*
volume
);
long
*
volume
);
void
__RPC_STUB
IVLCControl2_get_Volume_Stub
(
IRpcStubBuffer
*
This
,
IRpcChannelBuffer
*
pRpcChannelBuffer
,
...
...
@@ -1931,7 +2525,7 @@ void __RPC_STUB IVLCControl2_get_Volume_Stub(
DWORD
*
pdwStubPhase
);
HRESULT
CALLBACK
IVLCControl2_put_Volume_Proxy
(
IVLCControl2
*
This
,
int
volume
);
long
volume
);
void
__RPC_STUB
IVLCControl2_put_Volume_Stub
(
IRpcStubBuffer
*
This
,
IRpcChannelBuffer
*
pRpcChannelBuffer
,
...
...
@@ -1953,6 +2547,14 @@ void __RPC_STUB IVLCControl2_get_input_Stub(
IRpcChannelBuffer
*
pRpcChannelBuffer
,
PRPC_MESSAGE
pRpcMessage
,
DWORD
*
pdwStubPhase
);
HRESULT
CALLBACK
IVLCControl2_get_log_Proxy
(
IVLCControl2
*
This
,
IVLCLog
**
obj
);
void
__RPC_STUB
IVLCControl2_get_log_Stub
(
IRpcStubBuffer
*
This
,
IRpcChannelBuffer
*
pRpcChannelBuffer
,
PRPC_MESSAGE
pRpcMessage
,
DWORD
*
pdwStubPhase
);
HRESULT
CALLBACK
IVLCControl2_get_playlist_Proxy
(
IVLCControl2
*
This
,
IVLCPlaylist
**
obj
);
...
...
activex/supporterrorinfo.cpp
View file @
817653d9
...
...
@@ -32,6 +32,10 @@ STDMETHODIMP VLCSupportErrorInfo::InterfaceSupportsErrorInfo(REFIID riid)
{
if
(
(
riid
==
IID_IVLCAudio
)
||
(
riid
==
IID_IVLCInput
)
||
(
riid
==
IID_IVLCLog
)
||
(
riid
==
IID_IVLCMessage
)
||
(
riid
==
IID_IVLCMessageIterator
)
||
(
riid
==
IID_IVLCMessages
)
||
(
riid
==
IID_IVLCPlaylist
)
||
(
riid
==
IID_IVLCVideo
)
||
(
riid
==
IID_IVLCControl2
)
)
...
...
activex/test.html
View file @
817653d9
...
...
@@ -96,6 +96,16 @@ function monitor()
{
var vlc = document.getElementById("vlc");
var newState = vlc.input.state;
if( vlc.log.messages.count > 0 )
{
var iter = vlc.log.messages.iterator();
while( iter.hasNext )
{
var msg = iter.next();
alert( msg );
}
vlc.log.messages.clear();
}
if( prevState != newState )
{
if( newState == 0 )
...
...
@@ -138,11 +148,13 @@ function monitor()
function doGo(targetURL)
{
var vlc = document.getElementById("vlc");
var options = new Array(":vout
-filter=deinterlace", ":deinterlace-mode=linear
");
var options = new Array(":vout
=directx
");
vlc.playlist.clear();
//vlc.playlist.add(targetURL, null, options);
vlc.playlist.add(targetURL);
vlc.playlist.play();
vlc.log.verbosity = 3;
vlc.log.messages.clear();
if( monitorTimerId == 0 )
{
monitor();
...
...
@@ -157,6 +169,7 @@ function doPlayOrPause()
}
else
{
vlc.log.messages.clear();
vlc.playlist.play();
if( monitorTimerId == 0 )
{
...
...
@@ -238,6 +251,7 @@ function onPause()
};
function onStop()
{
vlc.log.verbosity = -1;
if( slider.Enabled )
{
slider.Value = slider.Min;
...
...
activex/vlccontrol.cpp
View file @
817653d9
...
...
@@ -845,7 +845,7 @@ STDMETHODIMP VLCControl::get_VersionInfo(BSTR *version)
const
char
*
versionStr
=
VLC_Version
();
if
(
NULL
!=
versionStr
)
{
*
version
=
BSTRFromCStr
(
_p_instance
->
getCodePage
()
,
versionStr
);
*
version
=
BSTRFromCStr
(
CP_UTF8
,
versionStr
);
return
NULL
==
*
version
?
E_OUTOFMEMORY
:
NOERROR
;
}
...
...
activex/vlccontrol2.cpp
View file @
817653d9
...
...
@@ -150,7 +150,7 @@ STDMETHODIMP VLCAudio::put_mute(VARIANT_BOOL mute)
return
hr
;
};
STDMETHODIMP
VLCAudio
::
get_volume
(
int
*
volume
)
STDMETHODIMP
VLCAudio
::
get_volume
(
long
*
volume
)
{
if
(
NULL
==
volume
)
return
E_POINTER
;
...
...
@@ -174,7 +174,7 @@ STDMETHODIMP VLCAudio::get_volume(int* volume)
return
hr
;
};
STDMETHODIMP
VLCAudio
::
put_volume
(
int
volume
)
STDMETHODIMP
VLCAudio
::
put_volume
(
long
volume
)
{
libvlc_instance_t
*
p_libvlc
;
HRESULT
hr
=
_p_instance
->
getVLC
(
&
p_libvlc
);
...
...
@@ -324,7 +324,7 @@ STDMETHODIMP VLCInput::get_length(double* length)
return
hr
;
};
STDMETHODIMP
VLCInput
::
get_position
(
float
*
position
)
STDMETHODIMP
VLCInput
::
get_position
(
double
*
position
)
{
if
(
NULL
==
position
)
return
E_POINTER
;
...
...
@@ -353,7 +353,7 @@ STDMETHODIMP VLCInput::get_position(float* position)
return
hr
;
};
STDMETHODIMP
VLCInput
::
put_position
(
float
position
)
STDMETHODIMP
VLCInput
::
put_position
(
double
position
)
{
libvlc_instance_t
*
p_libvlc
;
HRESULT
hr
=
_p_instance
->
getVLC
(
&
p_libvlc
);
...
...
@@ -434,7 +434,7 @@ STDMETHODIMP VLCInput::put_time(double time)
return
hr
;
};
STDMETHODIMP
VLCInput
::
get_state
(
int
*
state
)
STDMETHODIMP
VLCInput
::
get_state
(
long
*
state
)
{
if
(
NULL
==
state
)
return
E_POINTER
;
...
...
@@ -464,7 +464,7 @@ STDMETHODIMP VLCInput::get_state(int* state)
return
hr
;
};
STDMETHODIMP
VLCInput
::
get_rate
(
float
*
rate
)
STDMETHODIMP
VLCInput
::
get_rate
(
double
*
rate
)
{
if
(
NULL
==
rate
)
return
E_POINTER
;
...
...
@@ -493,7 +493,7 @@ STDMETHODIMP VLCInput::get_rate(float* rate)
return
hr
;
};
STDMETHODIMP
VLCInput
::
put_rate
(
float
rate
)
STDMETHODIMP
VLCInput
::
put_rate
(
double
rate
)
{
libvlc_instance_t
*
p_libvlc
;
HRESULT
hr
=
_p_instance
->
getVLC
(
&
p_libvlc
);
...
...
@@ -519,7 +519,7 @@ STDMETHODIMP VLCInput::put_rate(float rate)
return
hr
;
};
STDMETHODIMP
VLCInput
::
get_fps
(
float
*
fps
)
STDMETHODIMP
VLCInput
::
get_fps
(
double
*
fps
)
{
if
(
NULL
==
fps
)
return
E_POINTER
;
...
...
@@ -579,6 +579,629 @@ STDMETHODIMP VLCInput::get_hasVout(VARIANT_BOOL* hasVout)
/*******************************************************************************/
VLCLog
::~
VLCLog
()
{
if
(
_p_log
)
libvlc_log_close
(
_p_log
,
NULL
);
if
(
_p_typeinfo
)
_p_typeinfo
->
Release
();
};
HRESULT
VLCLog
::
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_IVLCLog
,
&
_p_typeinfo
);
if
(
FAILED
(
hr
)
)
{
_p_typeinfo
=
NULL
;
}
p_typelib
->
Release
();
}
}
return
hr
;
};
STDMETHODIMP
VLCLog
::
GetTypeInfoCount
(
UINT
*
pctInfo
)
{
if
(
NULL
==
pctInfo
)
return
E_INVALIDARG
;
if
(
SUCCEEDED
(
loadTypeInfo
())
)
*
pctInfo
=
1
;
else
*
pctInfo
=
0
;
return
NOERROR
;
};
STDMETHODIMP
VLCLog
::
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
VLCLog
::
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
VLCLog
::
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
;
};
STDMETHODIMP
VLCLog
::
get_messages
(
IVLCMessages
**
obj
)
{
if
(
NULL
==
obj
)
return
E_POINTER
;
*
obj
=
_p_vlcmessages
;
if
(
NULL
!=
_p_vlcmessages
)
{
_p_vlcmessages
->
AddRef
();
return
NOERROR
;
}
return
E_OUTOFMEMORY
;
};
STDMETHODIMP
VLCLog
::
get_verbosity
(
long
*
level
)
{
if
(
NULL
==
level
)
return
E_POINTER
;
if
(
_p_log
)
{
libvlc_instance_t
*
p_libvlc
;
HRESULT
hr
=
_p_instance
->
getVLC
(
&
p_libvlc
);
if
(
SUCCEEDED
(
hr
)
)
{
libvlc_exception_t
ex
;
libvlc_exception_init
(
&
ex
);
*
level
=
libvlc_get_log_verbosity
(
p_libvlc
,
&
ex
);
if
(
libvlc_exception_raised
(
&
ex
)
)
{
_p_instance
->
setErrorInfo
(
IID_IVLCLog
,
libvlc_exception_get_message
(
&
ex
));
libvlc_exception_clear
(
&
ex
);
return
E_FAIL
;
}
}
return
hr
;
}
else
{
/* log is not enabled, return -1 */
*
level
=
-
1
;
return
NOERROR
;
}
};
STDMETHODIMP
VLCLog
::
put_verbosity
(
long
verbosity
)
{
libvlc_exception_t
ex
;
libvlc_exception_init
(
&
ex
);
libvlc_instance_t
*
p_libvlc
;
HRESULT
hr
=
_p_instance
->
getVLC
(
&
p_libvlc
);
if
(
SUCCEEDED
(
hr
)
)
{
if
(
verbosity
>=
0
)
{
if
(
!
_p_log
)
{
_p_log
=
libvlc_log_open
(
p_libvlc
,
&
ex
);
if
(
libvlc_exception_raised
(
&
ex
)
)
{
_p_instance
->
setErrorInfo
(
IID_IVLCLog
,
libvlc_exception_get_message
(
&
ex
));
libvlc_exception_clear
(
&
ex
);
return
E_FAIL
;
}
}
libvlc_set_log_verbosity
(
p_libvlc
,
(
unsigned
)
verbosity
,
&
ex
);
if
(
libvlc_exception_raised
(
&
ex
)
)
{
_p_instance
->
setErrorInfo
(
IID_IVLCLog
,
libvlc_exception_get_message
(
&
ex
));
libvlc_exception_clear
(
&
ex
);
return
E_FAIL
;
}
}
else
if
(
_p_log
)
{
/* close log when verbosity is set to -1 */
libvlc_log_close
(
_p_log
,
&
ex
);
_p_log
=
NULL
;
if
(
libvlc_exception_raised
(
&
ex
)
)
{
_p_instance
->
setErrorInfo
(
IID_IVLCLog
,
libvlc_exception_get_message
(
&
ex
));
libvlc_exception_clear
(
&
ex
);
return
E_FAIL
;
}
}
}
return
hr
;
};
/*******************************************************************************/
VLCMessages
::~
VLCMessages
()
{
if
(
_p_typeinfo
)
_p_typeinfo
->
Release
();
};
HRESULT
VLCMessages
::
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_IVLCMessages
,
&
_p_typeinfo
);
if
(
FAILED
(
hr
)
)
{
_p_typeinfo
=
NULL
;
}
p_typelib
->
Release
();
}
}
return
hr
;
};
STDMETHODIMP
VLCMessages
::
GetTypeInfoCount
(
UINT
*
pctInfo
)
{
if
(
NULL
==
pctInfo
)
return
E_INVALIDARG
;
if
(
SUCCEEDED
(
loadTypeInfo
())
)
*
pctInfo
=
1
;
else
*
pctInfo
=
0
;
return
NOERROR
;
};
STDMETHODIMP
VLCMessages
::
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
VLCMessages
::
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
VLCMessages
::
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
;
};
STDMETHODIMP
VLCMessages
::
get__NewEnum
(
LPUNKNOWN
*
_NewEnum
)
{
if
(
NULL
==
_NewEnum
)
return
E_POINTER
;
// TODO
*
_NewEnum
=
NULL
;
return
E_NOTIMPL
;
};
STDMETHODIMP
VLCMessages
::
clear
()
{
libvlc_log_t
*
p_log
=
_p_vlclog
->
_p_log
;
if
(
p_log
)
{
libvlc_exception_t
ex
;
libvlc_exception_init
(
&
ex
);
libvlc_log_clear
(
p_log
,
&
ex
);
if
(
libvlc_exception_raised
(
&
ex
)
)
{
_p_instance
->
setErrorInfo
(
IID_IVLCMessages
,
libvlc_exception_get_message
(
&
ex
));
libvlc_exception_clear
(
&
ex
);
return
E_FAIL
;
}
}
return
NOERROR
;
};
STDMETHODIMP
VLCMessages
::
get_count
(
long
*
count
)
{
if
(
NULL
==
count
)
return
E_POINTER
;
libvlc_log_t
*
p_log
=
_p_vlclog
->
_p_log
;
if
(
p_log
)
{
libvlc_exception_t
ex
;
libvlc_exception_init
(
&
ex
);
*
count
=
libvlc_log_count
(
p_log
,
&
ex
);
if
(
libvlc_exception_raised
(
&
ex
)
)
{
_p_instance
->
setErrorInfo
(
IID_IVLCMessages
,
libvlc_exception_get_message
(
&
ex
));
libvlc_exception_clear
(
&
ex
);
return
E_FAIL
;
}
}
else
*
count
=
0
;
return
S_OK
;
};
STDMETHODIMP
VLCMessages
::
iterator
(
IVLCMessageIterator
**
iter
)
{
if
(
NULL
==
iter
)
return
E_POINTER
;
*
iter
=
new
VLCMessageIterator
(
_p_instance
,
_p_vlclog
);
return
*
iter
?
S_OK
:
E_OUTOFMEMORY
;
};
/*******************************************************************************/
VLCMessageIterator
::
VLCMessageIterator
(
VLCPlugin
*
p_instance
,
VLCLog
*
p_vlclog
)
:
_p_instance
(
p_instance
),
_p_typeinfo
(
NULL
),
_refcount
(
1
),
_p_vlclog
(
p_vlclog
)
{
if
(
p_vlclog
->
_p_log
)
{
_p_iter
=
libvlc_log_get_iterator
(
p_vlclog
->
_p_log
,
NULL
);
}
else
_p_iter
=
NULL
;
};
VLCMessageIterator
::~
VLCMessageIterator
()
{
if
(
_p_iter
)
libvlc_log_iterator_free
(
_p_iter
,
NULL
);
if
(
_p_typeinfo
)
_p_typeinfo
->
Release
();
};
HRESULT
VLCMessageIterator
::
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_IVLCMessageIterator
,
&
_p_typeinfo
);
if
(
FAILED
(
hr
)
)
{
_p_typeinfo
=
NULL
;
}
p_typelib
->
Release
();
}
}
return
hr
;
};
STDMETHODIMP
VLCMessageIterator
::
GetTypeInfoCount
(
UINT
*
pctInfo
)
{
if
(
NULL
==
pctInfo
)
return
E_INVALIDARG
;
if
(
SUCCEEDED
(
loadTypeInfo
())
)
*
pctInfo
=
1
;
else
*
pctInfo
=
0
;
return
NOERROR
;
};
STDMETHODIMP
VLCMessageIterator
::
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
VLCMessageIterator
::
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
VLCMessageIterator
::
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
;
};
STDMETHODIMP
VLCMessageIterator
::
get_hasNext
(
VARIANT_BOOL
*
hasNext
)
{
if
(
NULL
==
hasNext
)
return
E_POINTER
;
if
(
_p_iter
&&
_p_vlclog
->
_p_log
)
{
libvlc_exception_t
ex
;
libvlc_exception_init
(
&
ex
);
*
hasNext
=
libvlc_log_iterator_has_next
(
_p_iter
,
&
ex
)
?
VARIANT_TRUE
:
VARIANT_FALSE
;
if
(
libvlc_exception_raised
(
&
ex
)
)
{
_p_instance
->
setErrorInfo
(
IID_IVLCMessageIterator
,
libvlc_exception_get_message
(
&
ex
));
libvlc_exception_clear
(
&
ex
);
return
E_FAIL
;
}
}
else
{
*
hasNext
=
VARIANT_FALSE
;
}
return
S_OK
;
};
STDMETHODIMP
VLCMessageIterator
::
next
(
IVLCMessage
**
message
)
{
if
(
NULL
==
message
)
return
E_POINTER
;
if
(
_p_iter
&&
_p_vlclog
->
_p_log
)
{
struct
libvlc_log_message_t
buffer
;
buffer
.
sizeof_msg
=
sizeof
(
buffer
);
libvlc_exception_t
ex
;
libvlc_exception_init
(
&
ex
);
libvlc_log_iterator_next
(
_p_iter
,
&
buffer
,
&
ex
);
if
(
libvlc_exception_raised
(
&
ex
)
)
{
_p_instance
->
setErrorInfo
(
IID_IVLCMessageIterator
,
libvlc_exception_get_message
(
&
ex
));
libvlc_exception_clear
(
&
ex
);
return
E_FAIL
;
}
*
message
=
new
VLCMessage
(
_p_instance
,
buffer
);
return
*
message
?
NOERROR
:
E_OUTOFMEMORY
;
}
return
E_FAIL
;
};
/*******************************************************************************/
VLCMessage
::~
VLCMessage
()
{
if
(
_p_typeinfo
)
_p_typeinfo
->
Release
();
};
HRESULT
VLCMessage
::
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_IVLCMessage
,
&
_p_typeinfo
);
if
(
FAILED
(
hr
)
)
{
_p_typeinfo
=
NULL
;
}
p_typelib
->
Release
();
}
}
return
hr
;
};
STDMETHODIMP
VLCMessage
::
GetTypeInfoCount
(
UINT
*
pctInfo
)
{
if
(
NULL
==
pctInfo
)
return
E_INVALIDARG
;
if
(
SUCCEEDED
(
loadTypeInfo
())
)
*
pctInfo
=
1
;
else
*
pctInfo
=
0
;
return
NOERROR
;
};
STDMETHODIMP
VLCMessage
::
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
VLCMessage
::
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
VLCMessage
::
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
;
};
inline
const
char
*
msgSeverity
(
int
sev
)
{
switch
(
sev
)
{
case
0
:
return
"info"
;
case
1
:
return
"error"
;
case
2
:
return
"warning"
;
default:
return
"debug"
;
}
};
STDMETHODIMP
VLCMessage
::
get__Value
(
VARIANT
*
_Value
)
{
if
(
NULL
==
_Value
)
return
E_POINTER
;
char
buffer
[
256
];
snprintf
(
buffer
,
sizeof
(
buffer
),
"%s %s %s: %s"
,
_msg
.
psz_type
,
_msg
.
psz_name
,
msgSeverity
(
_msg
.
i_severity
),
_msg
.
psz_message
);
V_VT
(
_Value
)
=
VT_BSTR
;
V_BSTR
(
_Value
)
=
BSTRFromCStr
(
CP_UTF8
,
buffer
);
return
S_OK
;
};
STDMETHODIMP
VLCMessage
::
get_severity
(
long
*
level
)
{
if
(
NULL
==
level
)
return
E_POINTER
;
*
level
=
_msg
.
i_severity
;
return
S_OK
;
};
STDMETHODIMP
VLCMessage
::
get_type
(
BSTR
*
type
)
{
if
(
NULL
==
type
)
return
E_POINTER
;
*
type
=
BSTRFromCStr
(
CP_UTF8
,
_msg
.
psz_type
);
return
NOERROR
;
};
STDMETHODIMP
VLCMessage
::
get_name
(
BSTR
*
name
)
{
if
(
NULL
==
name
)
return
E_POINTER
;
*
name
=
BSTRFromCStr
(
CP_UTF8
,
_msg
.
psz_name
);
return
NOERROR
;
};
STDMETHODIMP
VLCMessage
::
get_header
(
BSTR
*
header
)
{
if
(
NULL
==
header
)
return
E_POINTER
;
*
header
=
BSTRFromCStr
(
CP_UTF8
,
_msg
.
psz_header
);
return
NOERROR
;
};
STDMETHODIMP
VLCMessage
::
get_message
(
BSTR
*
message
)
{
if
(
NULL
==
message
)
return
E_POINTER
;
*
message
=
BSTRFromCStr
(
CP_UTF8
,
_msg
.
psz_message
);
return
NOERROR
;
};
/*******************************************************************************/
VLCPlaylist
::~
VLCPlaylist
()
{
if
(
_p_typeinfo
)
...
...
@@ -656,7 +1279,7 @@ STDMETHODIMP VLCPlaylist::Invoke(DISPID dispIdMember, REFIID riid,
return
E_NOTIMPL
;
};
STDMETHODIMP
VLCPlaylist
::
get_itemCount
(
int
*
count
)
STDMETHODIMP
VLCPlaylist
::
get_itemCount
(
long
*
count
)
{
if
(
NULL
==
count
)
return
E_POINTER
;
...
...
@@ -706,7 +1329,7 @@ STDMETHODIMP VLCPlaylist::get_isPlaying(VARIANT_BOOL* isPlaying)
return
hr
;
};
STDMETHODIMP
VLCPlaylist
::
add
(
BSTR
uri
,
VARIANT
name
,
VARIANT
options
,
int
*
item
)
STDMETHODIMP
VLCPlaylist
::
add
(
BSTR
uri
,
VARIANT
name
,
VARIANT
options
,
long
*
item
)
{
if
(
NULL
==
item
)
return
E_POINTER
;
...
...
@@ -789,7 +1412,7 @@ STDMETHODIMP VLCPlaylist::play()
return
hr
;
};
STDMETHODIMP
VLCPlaylist
::
playItem
(
int
item
)
STDMETHODIMP
VLCPlaylist
::
playItem
(
long
item
)
{
libvlc_instance_t
*
p_libvlc
;
HRESULT
hr
=
_p_instance
->
getVLC
(
&
p_libvlc
);
...
...
@@ -921,7 +1544,7 @@ STDMETHODIMP VLCPlaylist::clear()
return
hr
;
};
STDMETHODIMP
VLCPlaylist
::
removeItem
(
int
item
)
STDMETHODIMP
VLCPlaylist
::
removeItem
(
long
item
)
{
libvlc_instance_t
*
p_libvlc
;
HRESULT
hr
=
_p_instance
->
getVLC
(
&
p_libvlc
);
...
...
@@ -1077,7 +1700,7 @@ STDMETHODIMP VLCVideo::put_fullscreen(VARIANT_BOOL fullscreen)
return
hr
;
};
STDMETHODIMP
VLCVideo
::
get_width
(
int
*
width
)
STDMETHODIMP
VLCVideo
::
get_width
(
long
*
width
)
{
if
(
NULL
==
width
)
return
E_POINTER
;
...
...
@@ -1106,7 +1729,7 @@ STDMETHODIMP VLCVideo::get_width(int* width)
return
hr
;
};
STDMETHODIMP
VLCVideo
::
get_height
(
int
*
height
)
STDMETHODIMP
VLCVideo
::
get_height
(
long
*
height
)
{
if
(
NULL
==
height
)
return
E_POINTER
;
...
...
@@ -1173,6 +1796,7 @@ VLCControl2::VLCControl2(VLCPlugin *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_vlcvideo
=
new
VLCVideo
(
p_instance
);
};
...
...
@@ -1181,6 +1805,7 @@ VLCControl2::~VLCControl2()
{
delete
_p_vlcvideo
;
delete
_p_vlcplaylist
;
delete
_p_vlclog
;
delete
_p_vlcinput
;
delete
_p_vlcaudio
;
if
(
_p_typeinfo
)
...
...
@@ -1322,7 +1947,7 @@ STDMETHODIMP VLCControl2::put_MRL(BSTR mrl)
return
S_OK
;
};
STDMETHODIMP
VLCControl2
::
get_StartTime
(
int
*
seconds
)
STDMETHODIMP
VLCControl2
::
get_StartTime
(
long
*
seconds
)
{
if
(
NULL
==
seconds
)
return
E_POINTER
;
...
...
@@ -1332,7 +1957,7 @@ STDMETHODIMP VLCControl2::get_StartTime(int *seconds)
return
S_OK
;
};
STDMETHODIMP
VLCControl2
::
put_StartTime
(
int
seconds
)
STDMETHODIMP
VLCControl2
::
put_StartTime
(
long
seconds
)
{
_p_instance
->
setStartTime
(
seconds
);
...
...
@@ -1372,7 +1997,7 @@ STDMETHODIMP VLCControl2::put_Visible(VARIANT_BOOL isVisible)
return
NOERROR
;
};
STDMETHODIMP
VLCControl2
::
get_Volume
(
int
*
volume
)
STDMETHODIMP
VLCControl2
::
get_Volume
(
long
*
volume
)
{
if
(
NULL
==
volume
)
return
E_POINTER
;
...
...
@@ -1381,7 +2006,7 @@ STDMETHODIMP VLCControl2::get_Volume(int *volume)
return
NOERROR
;
};
STDMETHODIMP
VLCControl2
::
put_Volume
(
int
volume
)
STDMETHODIMP
VLCControl2
::
put_Volume
(
long
volume
)
{
_p_instance
->
setVolume
(
volume
);
return
NOERROR
;
...
...
@@ -1415,6 +2040,20 @@ STDMETHODIMP VLCControl2::get_input(IVLCInput** obj)
return
E_OUTOFMEMORY
;
};
STDMETHODIMP
VLCControl2
::
get_log
(
IVLCLog
**
obj
)
{
if
(
NULL
==
obj
)
return
E_POINTER
;
*
obj
=
_p_vlclog
;
if
(
NULL
!=
_p_vlclog
)
{
_p_vlclog
->
AddRef
();
return
NOERROR
;
}
return
E_OUTOFMEMORY
;
};
STDMETHODIMP
VLCControl2
::
get_playlist
(
IVLCPlaylist
**
obj
)
{
if
(
NULL
==
obj
)
...
...
activex/vlccontrol2.h
View file @
817653d9
...
...
@@ -25,6 +25,8 @@
#include "axvlc_idl.h"
#include <vlc/libvlc.h>
class
VLCAudio
:
public
IVLCAudio
{
public:
...
...
@@ -61,8 +63,8 @@ public:
// IVLCAudio methods
STDMETHODIMP
get_mute
(
VARIANT_BOOL
*
);
STDMETHODIMP
put_mute
(
VARIANT_BOOL
);
STDMETHODIMP
get_volume
(
int
*
);
STDMETHODIMP
put_volume
(
int
);
STDMETHODIMP
get_volume
(
long
*
);
STDMETHODIMP
put_volume
(
long
);
STDMETHODIMP
toggleMute
();
protected:
...
...
@@ -110,14 +112,14 @@ public:
// IVLCInput methods
STDMETHODIMP
get_length
(
double
*
);
STDMETHODIMP
get_position
(
float
*
);
STDMETHODIMP
put_position
(
float
);
STDMETHODIMP
get_position
(
double
*
);
STDMETHODIMP
put_position
(
double
);
STDMETHODIMP
get_time
(
double
*
);
STDMETHODIMP
put_time
(
double
);
STDMETHODIMP
get_state
(
int
*
);
STDMETHODIMP
get_rate
(
float
*
);
STDMETHODIMP
put_rate
(
float
);
STDMETHODIMP
get_fps
(
float
*
);
STDMETHODIMP
get_state
(
long
*
);
STDMETHODIMP
get_rate
(
double
*
);
STDMETHODIMP
put_rate
(
double
);
STDMETHODIMP
get_fps
(
double
*
);
STDMETHODIMP
get_hasVout
(
VARIANT_BOOL
*
);
protected:
...
...
@@ -129,6 +131,242 @@ private:
};
class
VLCMessage
:
public
IVLCMessage
{
public:
VLCMessage
(
VLCPlugin
*
p_instance
,
struct
libvlc_log_message_t
&
msg
)
:
_p_instance
(
p_instance
),
_p_typeinfo
(
NULL
),
_refcount
(
1
),
_msg
(
msg
)
{};
virtual
~
VLCMessage
();
// IUnknown methods
STDMETHODIMP
QueryInterface
(
REFIID
riid
,
void
**
ppv
)
{
if
(
NULL
==
ppv
)
return
E_POINTER
;
if
(
(
IID_IUnknown
==
riid
)
||
(
IID_IDispatch
==
riid
)
||
(
IID_IVLCMessage
==
riid
)
)
{
AddRef
();
*
ppv
=
reinterpret_cast
<
LPVOID
>
(
this
);
return
NOERROR
;
}
// behaves as a standalone object
return
E_NOINTERFACE
;
};
STDMETHODIMP_
(
ULONG
)
AddRef
(
void
)
{
return
InterlockedIncrement
(
&
_refcount
);
};
STDMETHODIMP_
(
ULONG
)
Release
(
void
)
{
ULONG
refcount
=
InterlockedDecrement
(
&
_refcount
);
if
(
0
==
refcount
)
{
delete
this
;
return
0
;
}
return
refcount
;
};
// 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
*
);
// IVLCMessage methods
STDMETHODIMP
get__Value
(
VARIANT
*
);
STDMETHODIMP
get_severity
(
long
*
);
STDMETHODIMP
get_type
(
BSTR
*
);
STDMETHODIMP
get_name
(
BSTR
*
);
STDMETHODIMP
get_header
(
BSTR
*
);
STDMETHODIMP
get_message
(
BSTR
*
);
protected:
HRESULT
loadTypeInfo
();
private:
VLCPlugin
*
_p_instance
;
ITypeInfo
*
_p_typeinfo
;
LONG
_refcount
;
struct
libvlc_log_message_t
_msg
;
};
class
VLCLog
;
class
VLCMessageIterator
:
public
IVLCMessageIterator
{
public:
VLCMessageIterator
(
VLCPlugin
*
p_instance
,
VLCLog
*
p_vlclog
);
virtual
~
VLCMessageIterator
();
// IUnknown methods
STDMETHODIMP
QueryInterface
(
REFIID
riid
,
void
**
ppv
)
{
if
(
NULL
==
ppv
)
return
E_POINTER
;
if
(
(
IID_IUnknown
==
riid
)
||
(
IID_IDispatch
==
riid
)
||
(
IID_IVLCMessageIterator
==
riid
)
)
{
AddRef
();
*
ppv
=
reinterpret_cast
<
LPVOID
>
(
this
);
return
NOERROR
;
}
// behaves as a standalone object
return
E_NOINTERFACE
;
};
STDMETHODIMP_
(
ULONG
)
AddRef
(
void
)
{
return
InterlockedIncrement
(
&
_refcount
);
};
STDMETHODIMP_
(
ULONG
)
Release
(
void
)
{
ULONG
refcount
=
InterlockedDecrement
(
&
_refcount
);
if
(
0
==
refcount
)
{
delete
this
;
return
0
;
}
return
refcount
;
};
// 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
*
);
// IVLCMessageIterator methods
STDMETHODIMP
get_hasNext
(
VARIANT_BOOL
*
);
STDMETHODIMP
next
(
IVLCMessage
**
);
protected:
HRESULT
loadTypeInfo
();
private:
VLCPlugin
*
_p_instance
;
ITypeInfo
*
_p_typeinfo
;
LONG
_refcount
;
VLCLog
*
_p_vlclog
;
libvlc_log_iterator_t
*
_p_iter
;
};
class
VLCMessages
:
public
IVLCMessages
{
public:
VLCMessages
(
VLCPlugin
*
p_instance
,
VLCLog
*
p_vlclog
)
:
_p_instance
(
p_instance
),
_p_typeinfo
(
NULL
),
_p_vlclog
(
p_vlclog
)
{};
virtual
~
VLCMessages
();
// IUnknown methods
STDMETHODIMP
QueryInterface
(
REFIID
riid
,
void
**
ppv
)
{
if
(
NULL
==
ppv
)
return
E_POINTER
;
if
(
(
IID_IUnknown
==
riid
)
||
(
IID_IDispatch
==
riid
)
||
(
IID_IVLCMessages
==
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
*
);
// IVLCMessages methods
STDMETHODIMP
get__NewEnum
(
LPUNKNOWN
*
);
STDMETHODIMP
clear
();
STDMETHODIMP
get_count
(
long
*
);
STDMETHODIMP
iterator
(
IVLCMessageIterator
**
);
protected:
HRESULT
loadTypeInfo
();
VLCLog
*
_p_vlclog
;
private:
VLCPlugin
*
_p_instance
;
ITypeInfo
*
_p_typeinfo
;
};
class
VLCLog
:
public
IVLCLog
{
public:
friend
class
VLCMessages
;
friend
class
VLCMessageIterator
;
VLCLog
(
VLCPlugin
*
p_instance
)
:
_p_instance
(
p_instance
),
_p_typeinfo
(
NULL
),
_p_log
(
NULL
)
{
_p_vlcmessages
=
new
VLCMessages
(
p_instance
,
this
);
};
virtual
~
VLCLog
();
// IUnknown methods
STDMETHODIMP
QueryInterface
(
REFIID
riid
,
void
**
ppv
)
{
if
(
NULL
==
ppv
)
return
E_POINTER
;
if
(
(
IID_IUnknown
==
riid
)
||
(
IID_IDispatch
==
riid
)
||
(
IID_IVLCLog
==
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
*
);
// IVLCLog methods
STDMETHODIMP
get_messages
(
IVLCMessages
**
);
STDMETHODIMP
get_verbosity
(
long
*
);
STDMETHODIMP
put_verbosity
(
long
);
protected:
HRESULT
loadTypeInfo
();
libvlc_log_t
*
_p_log
;
private:
VLCPlugin
*
_p_instance
;
ITypeInfo
*
_p_typeinfo
;
VLCMessages
*
_p_vlcmessages
;
};
class
VLCPlaylist
:
public
IVLCPlaylist
{
public:
...
...
@@ -163,17 +401,17 @@ public:
STDMETHODIMP
Invoke
(
DISPID
,
REFIID
,
LCID
,
WORD
,
DISPPARAMS
*
,
VARIANT
*
,
EXCEPINFO
*
,
UINT
*
);
// IVLCPlaylist methods
STDMETHODIMP
get_itemCount
(
int
*
);
STDMETHODIMP
get_itemCount
(
long
*
);
STDMETHODIMP
get_isPlaying
(
VARIANT_BOOL
*
);
STDMETHODIMP
add
(
BSTR
,
VARIANT
,
VARIANT
,
int
*
);
STDMETHODIMP
add
(
BSTR
,
VARIANT
,
VARIANT
,
long
*
);
STDMETHODIMP
play
();
STDMETHODIMP
playItem
(
int
);
STDMETHODIMP
playItem
(
long
);
STDMETHODIMP
togglePause
();
STDMETHODIMP
stop
();
STDMETHODIMP
next
();
STDMETHODIMP
prev
();
STDMETHODIMP
clear
();
STDMETHODIMP
removeItem
(
int
);
STDMETHODIMP
removeItem
(
long
);
protected:
HRESULT
loadTypeInfo
();
...
...
@@ -220,8 +458,8 @@ public:
// IVLCVideo methods
STDMETHODIMP
get_fullscreen
(
VARIANT_BOOL
*
);
STDMETHODIMP
put_fullscreen
(
VARIANT_BOOL
);
STDMETHODIMP
get_width
(
int
*
);
STDMETHODIMP
get_height
(
int
*
);
STDMETHODIMP
get_width
(
long
*
);
STDMETHODIMP
get_height
(
long
*
);
STDMETHODIMP
toggleFullscreen
();
protected:
...
...
@@ -275,16 +513,17 @@ public:
STDMETHODIMP
put_BaseURL
(
BSTR
url
);
STDMETHODIMP
get_MRL
(
BSTR
*
mrl
);
STDMETHODIMP
put_MRL
(
BSTR
mrl
);
STDMETHODIMP
get_StartTime
(
int
*
seconds
);
STDMETHODIMP
put_StartTime
(
int
seconds
);
STDMETHODIMP
get_StartTime
(
long
*
seconds
);
STDMETHODIMP
put_StartTime
(
long
seconds
);
STDMETHODIMP
get_VersionInfo
(
BSTR
*
version
);
STDMETHODIMP
get_Visible
(
VARIANT_BOOL
*
visible
);
STDMETHODIMP
put_Visible
(
VARIANT_BOOL
visible
);
STDMETHODIMP
get_Volume
(
int
*
volume
);
STDMETHODIMP
put_Volume
(
int
volume
);
STDMETHODIMP
get_Volume
(
long
*
volume
);
STDMETHODIMP
put_Volume
(
long
volume
);
STDMETHODIMP
get_audio
(
IVLCAudio
**
);
STDMETHODIMP
get_input
(
IVLCInput
**
);
STDMETHODIMP
get_log
(
IVLCLog
**
);
STDMETHODIMP
get_playlist
(
IVLCPlaylist
**
);
STDMETHODIMP
get_video
(
IVLCVideo
**
);
...
...
@@ -297,6 +536,7 @@ private:
VLCAudio
*
_p_vlcaudio
;
VLCInput
*
_p_vlcinput
;
VLCLog
*
_p_vlclog
;
VLCPlaylist
*
_p_vlcplaylist
;
VLCVideo
*
_p_vlcvideo
;
};
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment