Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc
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
Commits
fc9b8e56
Commit
fc9b8e56
authored
Dec 07, 2006
by
Damien Fouilleul
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
- activex: backporting from 0.8.6
parent
344289ce
Changes
24
Show whitespace changes
Inline
Side-by-side
Showing
24 changed files
with
706 additions
and
149 deletions
+706
-149
activex/Makefile.am
activex/Makefile.am
+2
-1
activex/axvlc.idl
activex/axvlc.idl
+29
-27
activex/axvlc.tlb
activex/axvlc.tlb
+0
-0
activex/axvlc_idl.c
activex/axvlc_idl.c
+1
-0
activex/axvlc_idl.h
activex/axvlc_idl.h
+158
-9
activex/connectioncontainer.cpp
activex/connectioncontainer.cpp
+1
-1
activex/objectsafety.h
activex/objectsafety.h
+5
-5
activex/oleinplaceobject.h
activex/oleinplaceobject.h
+2
-3
activex/oleobject.cpp
activex/oleobject.cpp
+3
-3
activex/oleobject.h
activex/oleobject.h
+1
-1
activex/persistpropbag.cpp
activex/persistpropbag.cpp
+0
-1
activex/persiststreaminit.cpp
activex/persiststreaminit.cpp
+5
-6
activex/persiststreaminit.h
activex/persiststreaminit.h
+0
-1
activex/plugin.cpp
activex/plugin.cpp
+32
-29
activex/plugin.h
activex/plugin.h
+1
-2
activex/provideclassinfo.cpp
activex/provideclassinfo.cpp
+0
-1
activex/provideclassinfo.h
activex/provideclassinfo.h
+0
-1
activex/supporterrorinfo.cpp
activex/supporterrorinfo.cpp
+1
-0
activex/utils.cpp
activex/utils.cpp
+169
-10
activex/utils.h
activex/utils.h
+4
-0
activex/vlccontrol.cpp
activex/vlccontrol.cpp
+23
-24
activex/vlccontrol.h
activex/vlccontrol.h
+2
-5
activex/vlccontrol2.cpp
activex/vlccontrol2.cpp
+207
-14
activex/vlccontrol2.h
activex/vlccontrol2.h
+60
-5
No files found.
activex/Makefile.am
View file @
fc9b8e56
...
@@ -46,6 +46,7 @@ SOURCES_activex = \
...
@@ -46,6 +46,7 @@ SOURCES_activex = \
plugin.h
\
plugin.h
\
axvlc_idl.c
\
axvlc_idl.c
\
axvlc_idl.h
\
axvlc_idl.h
\
guiddef.h
\
$(NULL)
$(NULL)
DIST_rsrc
=
\
DIST_rsrc
=
\
...
@@ -137,7 +138,7 @@ endif
...
@@ -137,7 +138,7 @@ endif
###############################################################################
###############################################################################
clean-stamp
:
clean-stamp
:
rm
-f
stamp-
pic
rm
-f
stamp-
builtin
if
BUILD_SHARED
if
BUILD_SHARED
stamp-builtin
:
stamp-builtin
:
...
...
activex/axvlc.idl
View file @
fc9b8e56
...
@@ -79,7 +79,6 @@ library AXVLC
...
@@ -79,7 +79,6 @@ library AXVLC
uuid
(
C2FA41D0
-
B113
-
476
e
-
AC8C
-
9B
D14999C1C1
),
uuid
(
C2FA41D0
-
B113
-
476
e
-
AC8C
-
9B
D14999C1C1
),
helpstring
(
"VLC Control (deprecated)"
),
helpstring
(
"VLC Control (deprecated)"
),
dual
,
dual
,
hidden
,
oleautomation
oleautomation
]
]
interface
IVLCControl
:
IDispatch
interface
IVLCControl
:
IDispatch
...
@@ -165,7 +164,6 @@ library AXVLC
...
@@ -165,7 +164,6 @@ library AXVLC
[
[
uuid
(
DF48072F
-
5
EF8
-434e-9
B40
-
E2F3AE759B5F
),
uuid
(
DF48072F
-
5
EF8
-434e-9
B40
-
E2F3AE759B5F
),
helpstring
(
"Event interface for VLC control"
),
helpstring
(
"Event interface for VLC control"
),
hidden
]
]
dispinterface
DVLCEvents
dispinterface
DVLCEvents
{
{
...
@@ -183,9 +181,7 @@ library AXVLC
...
@@ -183,9 +181,7 @@ library AXVLC
odl
,
odl
,
uuid
(
9
E0BD17B
-
2
D3C
-
4656
-
B94D
-
03084
F3FD9D4
),
uuid
(
9
E0BD17B
-
2
D3C
-
4656
-
B94D
-
03084
F3FD9D4
),
helpstring
(
"VLC Audio APIs"
),
helpstring
(
"VLC Audio APIs"
),
hidden
,
dual
,
dual
,
nonextensible
,
oleautomation
oleautomation
]
]
interface
IVLCAudio
:
IDispatch
interface
IVLCAudio
:
IDispatch
...
@@ -208,9 +204,7 @@ library AXVLC
...
@@ -208,9 +204,7 @@ library AXVLC
odl
,
odl
,
uuid
(
49
E0DBD1
-
9440
-
466
C
-
9
C97
-
95
C67190C603
),
uuid
(
49
E0DBD1
-
9440
-
466
C
-
9
C97
-
95
C67190C603
),
helpstring
(
"VLC Input APIs"
),
helpstring
(
"VLC Input APIs"
),
hidden
,
dual
,
dual
,
nonextensible
,
oleautomation
oleautomation
]
]
interface
IVLCInput
:
IDispatch
interface
IVLCInput
:
IDispatch
...
@@ -247,9 +241,7 @@ library AXVLC
...
@@ -247,9 +241,7 @@ library AXVLC
odl
,
odl
,
uuid
(
9
ED00AFA
-
7B
CD
-
4
FFF
-
8
D48
-
7
DD4DB2C800D
),
uuid
(
9
ED00AFA
-
7B
CD
-
4
FFF
-
8
D48
-
7
DD4DB2C800D
),
helpstring
(
"VLC Log Message"
),
helpstring
(
"VLC Log Message"
),
hidden
,
dual
,
dual
,
nonextensible
,
oleautomation
oleautomation
]
]
interface
IVLCMessage
:
IDispatch
interface
IVLCMessage
:
IDispatch
...
@@ -277,9 +269,7 @@ library AXVLC
...
@@ -277,9 +269,7 @@ library AXVLC
odl
,
odl
,
uuid
(
15179
CD8
-
CC12
-
4242
-
A58E
-
E412217FF343
),
uuid
(
15179
CD8
-
CC12
-
4242
-
A58E
-
E412217FF343
),
helpstring
(
"VLC Log iterator"
),
helpstring
(
"VLC Log iterator"
),
hidden
,
dual
,
dual
,
nonextensible
,
oleautomation
oleautomation
]
]
interface
IVLCMessageIterator
:
IDispatch
interface
IVLCMessageIterator
:
IDispatch
...
@@ -294,10 +284,8 @@ library AXVLC
...
@@ -294,10 +284,8 @@ library AXVLC
[
[
odl
,
odl
,
uuid
(
6
C5CE55D
-
2
D6C
-
4
AAD
-
8299
-
C62D2371F106
),
uuid
(
6
C5CE55D
-
2
D6C
-
4
AAD
-
8299
-
C62D2371F106
),
helpstring
(
"VLC Log APIs"
),
helpstring
(
"VLC Log Messages Collection."
),
hidden
,
dual
,
dual
,
nonextensible
,
oleautomation
oleautomation
]
]
interface
IVLCMessages
:
IDispatch
interface
IVLCMessages
:
IDispatch
...
@@ -319,9 +307,7 @@ library AXVLC
...
@@ -319,9 +307,7 @@ library AXVLC
odl
,
odl
,
uuid
(
8
E3BC3D9
-
62
E9
-
48
FB
-
8
A6D
-
993
F9ABC4A0A
),
uuid
(
8
E3BC3D9
-
62
E9
-
48
FB
-
8
A6D
-
993
F9ABC4A0A
),
helpstring
(
"VLC Log APIs"
),
helpstring
(
"VLC Log APIs"
),
hidden
,
dual
,
dual
,
nonextensible
,
oleautomation
oleautomation
]
]
interface
IVLCLog
:
IDispatch
interface
IVLCLog
:
IDispatch
...
@@ -335,31 +321,48 @@ library AXVLC
...
@@ -335,31 +321,48 @@ library AXVLC
HRESULT
verbosity
(
[
in
]
long
level
)
;
HRESULT
verbosity
(
[
in
]
long
level
)
;
}
;
}
;
[
odl
,
uuid
(
FD37FE32
-
82B
C
-
4
A25
-
B056
-
315
F4DBB194D
),
helpstring
(
"VLC Playlist Items collection"
),
dual
,
oleautomation
]
interface
IVLCPlaylistItems
:
IDispatch
{
[
propget
,
helpstring
(
"Returns number of items in playlist."
)
]
HRESULT
count
(
[
out
,
retval
]
long
*
count
)
;
[
helpstring
(
"Remove all items from playlist."
)
]
HRESULT
clear
()
;
[
helpstring
(
"remove item from playlist."
)
]
HRESULT
remove
(
[
in
]
long
itemId
)
;
}
;
[
[
odl
,
odl
,
uuid
(
54613049
-
40B
F
-
4035
-
9
E70
-
0
A9312C0188D
),
uuid
(
54613049
-
40B
F
-
4035
-
9
E70
-
0
A9312C0188D
),
helpstring
(
"VLC Playlist APIs"
),
helpstring
(
"VLC Playlist APIs"
),
hidden
,
dual
,
dual
,
nonextensible
,
oleautomation
oleautomation
]
]
interface
IVLCPlaylist
:
IDispatch
interface
IVLCPlaylist
:
IDispatch
{
{
[
propget
,
helpstring
(
"Returns number of items in playlist.
"
)
]
[
hidden
,
propget
,
helpstring
(
"Returns number of items in playlist. (deprecated)
"
)
]
HRESULT
itemCount
(
[
out
,
retval
]
long
*
count
)
;
HRESULT
itemCount
(
[
out
,
retval
]
long
*
count
)
;
[
propget
,
helpstring
(
"Returns whether playback displays video."
)
]
[
propget
,
helpstring
(
"Returns whether playback displays video."
)
]
HRESULT
isPlaying
(
[
out
,
retval
]
VARIANT_BOOL
*
playing
)
;
HRESULT
isPlaying
(
[
out
,
retval
]
VARIANT_BOOL
*
playing
)
;
[
helpstring
(
"Add a playlist item."
)
]
[
helpstring
(
"Add a playlist item."
)
]
HRESULT
add
(
[
in
]
BSTR
uri
,
[
in
,
optional
]
VARIANT
name
,
[
in
,
optional
]
VARIANT
options
,
[
out
,
retval
]
long
*
item
)
;
HRESULT
add
(
[
in
]
BSTR
uri
,
[
in
,
optional
]
VARIANT
name
,
[
in
,
optional
]
VARIANT
options
,
[
out
,
retval
]
long
*
item
Id
)
;
[
helpstring
(
"Play/Resume the playlist."
)
]
[
helpstring
(
"Play/Resume the playlist."
)
]
HRESULT
play
()
;
HRESULT
play
()
;
[
helpstring
(
"Play item in playlist."
)
]
[
helpstring
(
"Play item in playlist."
)
]
HRESULT
playItem
(
[
in
]
long
item
)
;
HRESULT
playItem
(
[
in
]
long
item
Id
)
;
[
helpstring
(
"Play/Pause current clip."
)
]
[
helpstring
(
"Play/Pause current clip."
)
]
HRESULT
togglePause
()
;
HRESULT
togglePause
()
;
...
@@ -373,20 +376,21 @@ library AXVLC
...
@@ -373,20 +376,21 @@ library AXVLC
[
helpstring
(
"Advance to previous item in playlist."
)
]
[
helpstring
(
"Advance to previous item in playlist."
)
]
HRESULT
prev
()
;
HRESULT
prev
()
;
[
h
elpstring
(
"Remove all items from playlist.
"
)
]
[
h
idden
,
helpstring
(
"Remove all items from playlist. (deprecated)
"
)
]
HRESULT
clear
()
;
HRESULT
clear
()
;
[
h
elpstring
(
"remove item from playlist.
"
)
]
[
h
idden
,
helpstring
(
"Remove item from playlist. (deprecated)
"
)
]
HRESULT
removeItem
(
[
in
]
long
item
)
;
HRESULT
removeItem
(
[
in
]
long
item
)
;
[
propget
,
helpstring
(
"Returns the playlist items collection object."
)
]
HRESULT
items
(
[
out
,
retval
]
IVLCPlaylistItems
**
obj
)
;
}
;
}
;
[
[
odl
,
odl
,
uuid
(
0
AAEDF0B
-
D333
-
4B27
-
A0C6
-
BBF31413A42E
),
uuid
(
0
AAEDF0B
-
D333
-
4B27
-
A0C6
-
BBF31413A42E
),
helpstring
(
"VLC Video APIs"
),
helpstring
(
"VLC Video APIs"
),
hidden
,
dual
,
dual
,
nonextensible
,
oleautomation
oleautomation
]
]
interface
IVLCVideo
:
IDispatch
interface
IVLCVideo
:
IDispatch
...
@@ -403,7 +407,7 @@ library AXVLC
...
@@ -403,7 +407,7 @@ library AXVLC
HRESULT
height
(
[
out
,
retval
]
long
*
height
)
;
HRESULT
height
(
[
out
,
retval
]
long
*
height
)
;
[
propget
,
helpstring
(
"Returns video aspect ratio."
)
]
[
propget
,
helpstring
(
"Returns video aspect ratio."
)
]
HRESULT
aspectRatio
(
[
out
,
retval
]
BSTR
aspect
)
;
HRESULT
aspectRatio
(
[
out
,
retval
]
BSTR
*
aspect
)
;
[
propput
,
helpstring
(
"Sets video aspect ratio."
)
]
[
propput
,
helpstring
(
"Sets video aspect ratio."
)
]
HRESULT
aspectRatio
(
[
in
]
BSTR
aspect
)
;
HRESULT
aspectRatio
(
[
in
]
BSTR
aspect
)
;
...
@@ -415,7 +419,6 @@ library AXVLC
...
@@ -415,7 +419,6 @@ library AXVLC
odl
,
odl
,
uuid
(
2
D719729
-
5333
-
406
C
-
BF12
-
8
DE787FD65E3
),
uuid
(
2
D719729
-
5333
-
406
C
-
BF12
-
8
DE787FD65E3
),
helpstring
(
"VLC Control"
),
helpstring
(
"VLC Control"
),
hidden
,
dual
,
dual
,
oleautomation
oleautomation
]
]
...
@@ -496,6 +499,5 @@ library AXVLC
...
@@ -496,6 +499,5 @@ library AXVLC
{
{
[
default
]
interface
IVLCControl2
;
[
default
]
interface
IVLCControl2
;
interface
IVLCControl
;
interface
IVLCControl
;
[
default
,
source
]
dispinterface
DVLCEvents
;
}
;
}
;
}
;
}
;
activex/axvlc.tlb
View file @
fc9b8e56
No preview for this file type
activex/axvlc_idl.c
View file @
fc9b8e56
...
@@ -19,6 +19,7 @@ DEFINE_GUID(IID_IVLCMessage, 0x9ed00afa, 0x7bcd, 0x4fff, 0x8d,0x48, 0x7d,0xd4,0x
...
@@ -19,6 +19,7 @@ DEFINE_GUID(IID_IVLCMessage, 0x9ed00afa, 0x7bcd, 0x4fff, 0x8d,0x48, 0x7d,0xd4,0x
DEFINE_GUID
(
IID_IVLCMessageIterator
,
0x15179cd8
,
0xcc12
,
0x4242
,
0xa5
,
0x8e
,
0xe4
,
0x12
,
0x21
,
0x7f
,
0xf3
,
0x43
);
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_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_IVLCLog
,
0x8e3bc3d9
,
0x62e9
,
0x48fb
,
0x8a
,
0x6d
,
0x99
,
0x3f
,
0x9a
,
0xbc
,
0x4a
,
0x0a
);
DEFINE_GUID
(
IID_IVLCPlaylistItems
,
0xfd37fe32
,
0x82bc
,
0x4a25
,
0xb0
,
0x56
,
0x31
,
0x5f
,
0x4d
,
0xbb
,
0x19
,
0x4d
);
DEFINE_GUID
(
IID_IVLCPlaylist
,
0x54613049
,
0x40bf
,
0x4035
,
0x9e
,
0x70
,
0x0a
,
0x93
,
0x12
,
0xc0
,
0x18
,
0x8d
);
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_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
(
IID_IVLCControl2
,
0x2d719729
,
0x5333
,
0x406c
,
0xbf
,
0x12
,
0x8d
,
0xe7
,
0x87
,
0xfd
,
0x65
,
0xe3
);
...
...
activex/axvlc_idl.h
View file @
fc9b8e56
...
@@ -1757,6 +1757,139 @@ void __RPC_STUB IVLCLog_put_verbosity_Stub(
...
@@ -1757,6 +1757,139 @@ void __RPC_STUB IVLCLog_put_verbosity_Stub(
#endif
/* __IVLCLog_INTERFACE_DEFINED__ */
#endif
/* __IVLCLog_INTERFACE_DEFINED__ */
#ifndef __IVLCPlaylistItems_FWD_DEFINED__
#define __IVLCPlaylistItems_FWD_DEFINED__
typedef
interface
IVLCPlaylistItems
IVLCPlaylistItems
;
#endif
/*****************************************************************************
* IVLCPlaylistItems interface
*/
#ifndef __IVLCPlaylistItems_INTERFACE_DEFINED__
#define __IVLCPlaylistItems_INTERFACE_DEFINED__
DEFINE_GUID
(
IID_IVLCPlaylistItems
,
0xfd37fe32
,
0x82bc
,
0x4a25
,
0xb0
,
0x56
,
0x31
,
0x5f
,
0x4d
,
0xbb
,
0x19
,
0x4d
);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface
IVLCPlaylistItems
:
public
IDispatch
{
virtual
HRESULT
STDMETHODCALLTYPE
get_count
(
long
*
count
)
=
0
;
virtual
HRESULT
STDMETHODCALLTYPE
clear
(
)
=
0
;
virtual
HRESULT
STDMETHODCALLTYPE
remove
(
long
itemId
)
=
0
;
};
#else
typedef
struct
IVLCPlaylistItemsVtbl
{
BEGIN_INTERFACE
/*** IUnknown methods ***/
HRESULT
(
STDMETHODCALLTYPE
*
QueryInterface
)(
IVLCPlaylistItems
*
This
,
REFIID
riid
,
void
**
ppvObject
);
ULONG
(
STDMETHODCALLTYPE
*
AddRef
)(
IVLCPlaylistItems
*
This
);
ULONG
(
STDMETHODCALLTYPE
*
Release
)(
IVLCPlaylistItems
*
This
);
/*** IDispatch methods ***/
HRESULT
(
STDMETHODCALLTYPE
*
GetTypeInfoCount
)(
IVLCPlaylistItems
*
This
,
UINT
*
pctinfo
);
HRESULT
(
STDMETHODCALLTYPE
*
GetTypeInfo
)(
IVLCPlaylistItems
*
This
,
UINT
iTInfo
,
LCID
lcid
,
ITypeInfo
**
ppTInfo
);
HRESULT
(
STDMETHODCALLTYPE
*
GetIDsOfNames
)(
IVLCPlaylistItems
*
This
,
REFIID
riid
,
LPOLESTR
*
rgszNames
,
UINT
cNames
,
LCID
lcid
,
DISPID
*
rgDispId
);
HRESULT
(
STDMETHODCALLTYPE
*
Invoke
)(
IVLCPlaylistItems
*
This
,
DISPID
dispIdMember
,
REFIID
riid
,
LCID
lcid
,
WORD
wFlags
,
DISPPARAMS
*
pDispParams
,
VARIANT
*
pVarResult
,
EXCEPINFO
*
pExcepInfo
,
UINT
*
puArgErr
);
/*** IVLCPlaylistItems methods ***/
HRESULT
(
STDMETHODCALLTYPE
*
get_count
)(
IVLCPlaylistItems
*
This
,
long
*
count
);
HRESULT
(
STDMETHODCALLTYPE
*
clear
)(
IVLCPlaylistItems
*
This
);
HRESULT
(
STDMETHODCALLTYPE
*
remove
)(
IVLCPlaylistItems
*
This
,
long
itemId
);
END_INTERFACE
}
IVLCPlaylistItemsVtbl
;
interface
IVLCPlaylistItems
{
const
IVLCPlaylistItemsVtbl
*
lpVtbl
;
};
#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IVLCPlaylistItems_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IVLCPlaylistItems_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IVLCPlaylistItems_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define IVLCPlaylistItems_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define IVLCPlaylistItems_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define IVLCPlaylistItems_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define IVLCPlaylistItems_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** IVLCPlaylistItems methods ***/
#define IVLCPlaylistItems_get_count(p,a) (p)->lpVtbl->get_count(p,a)
#define IVLCPlaylistItems_clear(p) (p)->lpVtbl->clear(p)
#define IVLCPlaylistItems_remove(p,a) (p)->lpVtbl->remove(p,a)
#endif
#endif
HRESULT
CALLBACK
IVLCPlaylistItems_get_count_Proxy
(
IVLCPlaylistItems
*
This
,
long
*
count
);
void
__RPC_STUB
IVLCPlaylistItems_get_count_Stub
(
IRpcStubBuffer
*
This
,
IRpcChannelBuffer
*
pRpcChannelBuffer
,
PRPC_MESSAGE
pRpcMessage
,
DWORD
*
pdwStubPhase
);
HRESULT
CALLBACK
IVLCPlaylistItems_clear_Proxy
(
IVLCPlaylistItems
*
This
);
void
__RPC_STUB
IVLCPlaylistItems_clear_Stub
(
IRpcStubBuffer
*
This
,
IRpcChannelBuffer
*
pRpcChannelBuffer
,
PRPC_MESSAGE
pRpcMessage
,
DWORD
*
pdwStubPhase
);
HRESULT
CALLBACK
IVLCPlaylistItems_remove_Proxy
(
IVLCPlaylistItems
*
This
,
long
itemId
);
void
__RPC_STUB
IVLCPlaylistItems_remove_Stub
(
IRpcStubBuffer
*
This
,
IRpcChannelBuffer
*
pRpcChannelBuffer
,
PRPC_MESSAGE
pRpcMessage
,
DWORD
*
pdwStubPhase
);
#endif
/* __IVLCPlaylistItems_INTERFACE_DEFINED__ */
/*****************************************************************************
/*****************************************************************************
* IVLCPlaylist interface
* IVLCPlaylist interface
*/
*/
...
@@ -1777,13 +1910,13 @@ interface IVLCPlaylist : public IDispatch
...
@@ -1777,13 +1910,13 @@ interface IVLCPlaylist : public IDispatch
BSTR
uri
,
BSTR
uri
,
VARIANT
name
,
VARIANT
name
,
VARIANT
options
,
VARIANT
options
,
long
*
item
)
=
0
;
long
*
item
Id
)
=
0
;
virtual
HRESULT
STDMETHODCALLTYPE
play
(
virtual
HRESULT
STDMETHODCALLTYPE
play
(
)
=
0
;
)
=
0
;
virtual
HRESULT
STDMETHODCALLTYPE
playItem
(
virtual
HRESULT
STDMETHODCALLTYPE
playItem
(
long
item
)
=
0
;
long
item
Id
)
=
0
;
virtual
HRESULT
STDMETHODCALLTYPE
togglePause
(
virtual
HRESULT
STDMETHODCALLTYPE
togglePause
(
)
=
0
;
)
=
0
;
...
@@ -1803,6 +1936,9 @@ interface IVLCPlaylist : public IDispatch
...
@@ -1803,6 +1936,9 @@ interface IVLCPlaylist : public IDispatch
virtual
HRESULT
STDMETHODCALLTYPE
removeItem
(
virtual
HRESULT
STDMETHODCALLTYPE
removeItem
(
long
item
)
=
0
;
long
item
)
=
0
;
virtual
HRESULT
STDMETHODCALLTYPE
get_items
(
IVLCPlaylistItems
**
obj
)
=
0
;
};
};
#else
#else
typedef
struct
IVLCPlaylistVtbl
{
typedef
struct
IVLCPlaylistVtbl
{
...
@@ -1864,14 +2000,14 @@ typedef struct IVLCPlaylistVtbl {
...
@@ -1864,14 +2000,14 @@ typedef struct IVLCPlaylistVtbl {
BSTR
uri
,
BSTR
uri
,
VARIANT
name
,
VARIANT
name
,
VARIANT
options
,
VARIANT
options
,
long
*
item
);
long
*
item
Id
);
HRESULT
(
STDMETHODCALLTYPE
*
play
)(
HRESULT
(
STDMETHODCALLTYPE
*
play
)(
IVLCPlaylist
*
This
);
IVLCPlaylist
*
This
);
HRESULT
(
STDMETHODCALLTYPE
*
playItem
)(
HRESULT
(
STDMETHODCALLTYPE
*
playItem
)(
IVLCPlaylist
*
This
,
IVLCPlaylist
*
This
,
long
item
);
long
item
Id
);
HRESULT
(
STDMETHODCALLTYPE
*
togglePause
)(
HRESULT
(
STDMETHODCALLTYPE
*
togglePause
)(
IVLCPlaylist
*
This
);
IVLCPlaylist
*
This
);
...
@@ -1892,6 +2028,10 @@ typedef struct IVLCPlaylistVtbl {
...
@@ -1892,6 +2028,10 @@ typedef struct IVLCPlaylistVtbl {
IVLCPlaylist
*
This
,
IVLCPlaylist
*
This
,
long
item
);
long
item
);
HRESULT
(
STDMETHODCALLTYPE
*
get_items
)(
IVLCPlaylist
*
This
,
IVLCPlaylistItems
**
obj
);
END_INTERFACE
END_INTERFACE
}
IVLCPlaylistVtbl
;
}
IVLCPlaylistVtbl
;
interface
IVLCPlaylist
{
interface
IVLCPlaylist
{
...
@@ -1920,6 +2060,7 @@ interface IVLCPlaylist {
...
@@ -1920,6 +2060,7 @@ interface IVLCPlaylist {
#define IVLCPlaylist_prev(p) (p)->lpVtbl->prev(p)
#define IVLCPlaylist_prev(p) (p)->lpVtbl->prev(p)
#define IVLCPlaylist_clear(p) (p)->lpVtbl->clear(p)
#define IVLCPlaylist_clear(p) (p)->lpVtbl->clear(p)
#define IVLCPlaylist_removeItem(p,a) (p)->lpVtbl->removeItem(p,a)
#define IVLCPlaylist_removeItem(p,a) (p)->lpVtbl->removeItem(p,a)
#define IVLCPlaylist_get_items(p,a) (p)->lpVtbl->get_items(p,a)
#endif
#endif
#endif
#endif
...
@@ -1945,7 +2086,7 @@ HRESULT CALLBACK IVLCPlaylist_add_Proxy(
...
@@ -1945,7 +2086,7 @@ HRESULT CALLBACK IVLCPlaylist_add_Proxy(
BSTR
uri
,
BSTR
uri
,
VARIANT
name
,
VARIANT
name
,
VARIANT
options
,
VARIANT
options
,
long
*
item
);
long
*
item
Id
);
void
__RPC_STUB
IVLCPlaylist_add_Stub
(
void
__RPC_STUB
IVLCPlaylist_add_Stub
(
IRpcStubBuffer
*
This
,
IRpcStubBuffer
*
This
,
IRpcChannelBuffer
*
pRpcChannelBuffer
,
IRpcChannelBuffer
*
pRpcChannelBuffer
,
...
@@ -1960,7 +2101,7 @@ void __RPC_STUB IVLCPlaylist_play_Stub(
...
@@ -1960,7 +2101,7 @@ void __RPC_STUB IVLCPlaylist_play_Stub(
DWORD
*
pdwStubPhase
);
DWORD
*
pdwStubPhase
);
HRESULT
CALLBACK
IVLCPlaylist_playItem_Proxy
(
HRESULT
CALLBACK
IVLCPlaylist_playItem_Proxy
(
IVLCPlaylist
*
This
,
IVLCPlaylist
*
This
,
long
item
);
long
item
Id
);
void
__RPC_STUB
IVLCPlaylist_playItem_Stub
(
void
__RPC_STUB
IVLCPlaylist_playItem_Stub
(
IRpcStubBuffer
*
This
,
IRpcStubBuffer
*
This
,
IRpcChannelBuffer
*
pRpcChannelBuffer
,
IRpcChannelBuffer
*
pRpcChannelBuffer
,
...
@@ -2009,6 +2150,14 @@ void __RPC_STUB IVLCPlaylist_removeItem_Stub(
...
@@ -2009,6 +2150,14 @@ void __RPC_STUB IVLCPlaylist_removeItem_Stub(
IRpcChannelBuffer
*
pRpcChannelBuffer
,
IRpcChannelBuffer
*
pRpcChannelBuffer
,
PRPC_MESSAGE
pRpcMessage
,
PRPC_MESSAGE
pRpcMessage
,
DWORD
*
pdwStubPhase
);
DWORD
*
pdwStubPhase
);
HRESULT
CALLBACK
IVLCPlaylist_get_items_Proxy
(
IVLCPlaylist
*
This
,
IVLCPlaylistItems
**
obj
);
void
__RPC_STUB
IVLCPlaylist_get_items_Stub
(
IRpcStubBuffer
*
This
,
IRpcChannelBuffer
*
pRpcChannelBuffer
,
PRPC_MESSAGE
pRpcMessage
,
DWORD
*
pdwStubPhase
);
#endif
/* __IVLCPlaylist_INTERFACE_DEFINED__ */
#endif
/* __IVLCPlaylist_INTERFACE_DEFINED__ */
...
@@ -2035,7 +2184,7 @@ interface IVLCVideo : public IDispatch
...
@@ -2035,7 +2184,7 @@ interface IVLCVideo : public IDispatch
long
*
height
)
=
0
;
long
*
height
)
=
0
;
virtual
HRESULT
STDMETHODCALLTYPE
get_aspectRatio
(
virtual
HRESULT
STDMETHODCALLTYPE
get_aspectRatio
(
BSTR
aspect
)
=
0
;
BSTR
*
aspect
)
=
0
;
virtual
HRESULT
STDMETHODCALLTYPE
put_aspectRatio
(
virtual
HRESULT
STDMETHODCALLTYPE
put_aspectRatio
(
BSTR
aspect
)
=
0
;
BSTR
aspect
)
=
0
;
...
@@ -2109,7 +2258,7 @@ typedef struct IVLCVideoVtbl {
...
@@ -2109,7 +2258,7 @@ typedef struct IVLCVideoVtbl {
HRESULT
(
STDMETHODCALLTYPE
*
get_aspectRatio
)(
HRESULT
(
STDMETHODCALLTYPE
*
get_aspectRatio
)(
IVLCVideo
*
This
,
IVLCVideo
*
This
,
BSTR
aspect
);
BSTR
*
aspect
);
HRESULT
(
STDMETHODCALLTYPE
*
put_aspectRatio
)(
HRESULT
(
STDMETHODCALLTYPE
*
put_aspectRatio
)(
IVLCVideo
*
This
,
IVLCVideo
*
This
,
...
@@ -2180,7 +2329,7 @@ void __RPC_STUB IVLCVideo_get_height_Stub(
...
@@ -2180,7 +2329,7 @@ void __RPC_STUB IVLCVideo_get_height_Stub(
DWORD
*
pdwStubPhase
);
DWORD
*
pdwStubPhase
);
HRESULT
CALLBACK
IVLCVideo_get_aspectRatio_Proxy
(
HRESULT
CALLBACK
IVLCVideo_get_aspectRatio_Proxy
(
IVLCVideo
*
This
,
IVLCVideo
*
This
,
BSTR
aspect
);
BSTR
*
aspect
);
void
__RPC_STUB
IVLCVideo_get_aspectRatio_Stub
(
void
__RPC_STUB
IVLCVideo_get_aspectRatio_Stub
(
IRpcStubBuffer
*
This
,
IRpcStubBuffer
*
This
,
IRpcChannelBuffer
*
pRpcChannelBuffer
,
IRpcChannelBuffer
*
pRpcChannelBuffer
,
...
...
activex/connectioncontainer.cpp
View file @
fc9b8e56
activex/objectsafety.h
View file @
fc9b8e56
activex/oleinplaceobject.h
View file @
fc9b8e56
...
@@ -66,4 +66,3 @@ private:
...
@@ -66,4 +66,3 @@ private:
};
};
#endif
#endif
activex/oleobject.cpp
View file @
fc9b8e56
activex/oleobject.h
View file @
fc9b8e56
activex/persistpropbag.cpp
View file @
fc9b8e56
...
@@ -243,4 +243,3 @@ STDMETHODIMP VLCPersistPropertyBag::Save(LPPROPERTYBAG pPropBag, BOOL fClearDirt
...
@@ -243,4 +243,3 @@ STDMETHODIMP VLCPersistPropertyBag::Save(LPPROPERTYBAG pPropBag, BOOL fClearDirt
return
S_OK
;
return
S_OK
;
};
};
activex/persiststreaminit.cpp
View file @
fc9b8e56
...
@@ -48,9 +48,8 @@ public:
...
@@ -48,9 +48,8 @@ public:
AxVLCVariant
(
VARIANTARG
&
v
)
AxVLCVariant
(
VARIANTARG
&
v
)
{
{
//VariantInit(&_v);
VariantInit
(
&
_v
);
//VariantCopy(&_v, &v);
VariantCopy
(
&
_v
,
&
v
);
_v
=
v
;
};
};
AxVLCVariant
(
VARIANTARG
*
v
)
AxVLCVariant
(
VARIANTARG
*
v
)
...
@@ -551,7 +550,7 @@ STDMETHODIMP VLCPersistStreamInit::IsDirty(void)
...
@@ -551,7 +550,7 @@ STDMETHODIMP VLCPersistStreamInit::IsDirty(void)
STDMETHODIMP
VLCPersistStreamInit
::
GetSizeMax
(
ULARGE_INTEGER
*
pcbSize
)
STDMETHODIMP
VLCPersistStreamInit
::
GetSizeMax
(
ULARGE_INTEGER
*
pcbSize
)
{
{
pcbSize
->
HighPart
=
0UL
;
pcbSize
->
HighPart
=
0UL
;
pcbSize
->
LowPart
=
4096
UL
;
// just a guess
pcbSize
->
LowPart
=
16384
UL
;
// just a guess
return
S_OK
;
return
S_OK
;
};
};
...
...
activex/persiststreaminit.h
View file @
fc9b8e56
...
@@ -69,4 +69,3 @@ private:
...
@@ -69,4 +69,3 @@ private:
};
};
#endif
#endif
activex/plugin.cpp
View file @
fc9b8e56
...
@@ -258,6 +258,7 @@ VLCPlugin::~VLCPlugin()
...
@@ -258,6 +258,7 @@ VLCPlugin::~VLCPlugin()
_p_pict
->
Release
();
_p_pict
->
Release
();
SysFreeString
(
_bstr_mrl
);
SysFreeString
(
_bstr_mrl
);
SysFreeString
(
_bstr_baseurl
);
_p_class
->
Release
();
_p_class
->
Release
();
};
};
...
@@ -440,8 +441,8 @@ HRESULT VLCPlugin::getVLC(libvlc_instance_t** pp_libvlc)
...
@@ -440,8 +441,8 @@ HRESULT VLCPlugin::getVLC(libvlc_instance_t** pp_libvlc)
if
(
i_type
==
REG_SZ
)
if
(
i_type
==
REG_SZ
)
{
{
strcat
(
p_data
,
"
\\
plugins"
);
strcat
(
p_data
,
"
\\
plugins"
);
//
ppsz_argv[ppsz_argc++] = "--plugin-path";
ppsz_argv
[
ppsz_argc
++
]
=
"--plugin-path"
;
//
ppsz_argv[ppsz_argc++] = p_data;
ppsz_argv
[
ppsz_argc
++
]
=
p_data
;
}
}
}
}
RegCloseKey
(
h_key
);
RegCloseKey
(
h_key
);
...
@@ -503,25 +504,20 @@ HRESULT VLCPlugin::getVLC(libvlc_instance_t** pp_libvlc)
...
@@ -503,25 +504,20 @@ HRESULT VLCPlugin::getVLC(libvlc_instance_t** pp_libvlc)
char
*
psz_mrl
=
NULL
;
char
*
psz_mrl
=
NULL
;
if
(
SysStringLen
(
_bstr_baseurl
)
>
0
)
if
(
SysStringLen
(
_bstr_baseurl
)
>
0
)
{
DWORD
len
=
INTERNET_MAX_URL_LENGTH
;
LPOLESTR
abs_url
=
(
LPOLESTR
)
CoTaskMemAlloc
(
sizeof
(
OLECHAR
)
*
len
);
if
(
NULL
!=
abs_url
)
{
{
/*
/*
** if the MRL a relative URL, we should end up with an absolute URL
** if the MRL a relative URL, we should end up with an absolute URL
*/
*/
if
(
SUCCEEDED
(
UrlCombineW
(
_bstr_baseurl
,
_bstr_mrl
,
abs_url
,
&
len
,
LPWSTR
abs_url
=
CombineURL
(
_bstr_baseurl
,
_bstr_mrl
);
URL_ESCAPE_UNSAFE
|
URL_PLUGGABLE_PROTOCOL
))
)
if
(
NULL
!=
abs_url
)
{
{
psz_mrl
=
CStrFromBSTR
(
CP_UTF8
,
abs_url
);
psz_mrl
=
CStrFromWSTR
(
CP_UTF8
,
abs_url
,
wcslen
(
abs_url
));
CoTaskMemFree
(
abs_url
);
}
}
else
else
{
{
psz_mrl
=
CStrFromBSTR
(
CP_UTF8
,
_bstr_mrl
);
psz_mrl
=
CStrFromBSTR
(
CP_UTF8
,
_bstr_mrl
);
}
}
CoTaskMemFree
(
abs_url
);
}
}
}
else
else
{
{
...
@@ -648,6 +644,14 @@ HRESULT VLCPlugin::onClose(DWORD dwSaveOption)
...
@@ -648,6 +644,14 @@ HRESULT VLCPlugin::onClose(DWORD dwSaveOption)
{
{
libvlc_instance_t
*
p_libvlc
=
_p_libvlc
;
libvlc_instance_t
*
p_libvlc
=
_p_libvlc
;
IVLCLog
*
p_log
;
if
(
SUCCEEDED
(
vlcControl2
->
get_log
(
&
p_log
))
)
{
// make sure the log is disabled
p_log
->
put_verbosity
(
-
1
);
p_log
->
Release
();
}
_p_libvlc
=
NULL
;
_p_libvlc
=
NULL
;
vlcDataObject
->
onClose
();
vlcDataObject
->
onClose
();
...
@@ -984,4 +988,3 @@ void VLCPlugin::fireOnStopEvent(void)
...
@@ -984,4 +988,3 @@ void VLCPlugin::fireOnStopEvent(void)
DISPPARAMS
dispparamsNoArgs
=
{
NULL
,
NULL
,
0
,
0
};
DISPPARAMS
dispparamsNoArgs
=
{
NULL
,
NULL
,
0
,
0
};
vlcConnectionPointContainer
->
fireEvent
(
DISPID_StopEvent
,
&
dispparamsNoArgs
);
vlcConnectionPointContainer
->
fireEvent
(
DISPID_StopEvent
,
&
dispparamsNoArgs
);
};
};
activex/plugin.h
View file @
fc9b8e56
...
@@ -268,4 +268,3 @@ private:
...
@@ -268,4 +268,3 @@ private:
};
};
#endif
#endif
activex/provideclassinfo.cpp
View file @
fc9b8e56
...
@@ -57,4 +57,3 @@ STDMETHODIMP VLCProvideClassInfo::GetGUID(DWORD dwGuidKind, GUID *pGUID)
...
@@ -57,4 +57,3 @@ STDMETHODIMP VLCProvideClassInfo::GetGUID(DWORD dwGuidKind, GUID *pGUID)
return
S_OK
;
return
S_OK
;
};
};
activex/provideclassinfo.h
View file @
fc9b8e56
...
@@ -64,4 +64,3 @@ private:
...
@@ -64,4 +64,3 @@ private:
};
};
#endif
#endif
activex/supporterrorinfo.cpp
View file @
fc9b8e56
...
@@ -37,6 +37,7 @@ STDMETHODIMP VLCSupportErrorInfo::InterfaceSupportsErrorInfo(REFIID riid)
...
@@ -37,6 +37,7 @@ STDMETHODIMP VLCSupportErrorInfo::InterfaceSupportsErrorInfo(REFIID riid)
||
(
riid
==
IID_IVLCMessageIterator
)
||
(
riid
==
IID_IVLCMessageIterator
)
||
(
riid
==
IID_IVLCMessages
)
||
(
riid
==
IID_IVLCMessages
)
||
(
riid
==
IID_IVLCPlaylist
)
||
(
riid
==
IID_IVLCPlaylist
)
||
(
riid
==
IID_IVLCPlaylistItems
)
||
(
riid
==
IID_IVLCVideo
)
||
(
riid
==
IID_IVLCVideo
)
||
(
riid
==
IID_IVLCControl2
)
)
||
(
riid
==
IID_IVLCControl2
)
)
{
{
...
...
activex/utils.cpp
View file @
fc9b8e56
...
@@ -22,24 +22,26 @@
...
@@ -22,24 +22,26 @@
#include "utils.h"
#include "utils.h"
#include <wchar.h>
#include <wctype.h>
/*
/*
** conversion facilities
** conversion facilities
*/
*/
using
namespace
std
;
using
namespace
std
;
char
*
CStrFrom
BSTR
(
UINT
codePage
,
BSTR
bstr
)
char
*
CStrFrom
WSTR
(
UINT
codePage
,
LPCWSTR
wstr
,
UINT
len
)
{
{
UINT
len
=
SysStringLen
(
bstr
);
if
(
len
>
0
)
if
(
len
>
0
)
{
{
size_t
mblen
=
WideCharToMultiByte
(
codePage
,
size_t
mblen
=
WideCharToMultiByte
(
codePage
,
0
,
b
str
,
len
,
NULL
,
0
,
NULL
,
NULL
);
0
,
w
str
,
len
,
NULL
,
0
,
NULL
,
NULL
);
if
(
mblen
>
0
)
if
(
mblen
>
0
)
{
{
char
*
buffer
=
(
char
*
)
CoTaskMemAlloc
(
mblen
+
1
);
char
*
buffer
=
(
char
*
)
CoTaskMemAlloc
(
mblen
+
1
);
ZeroMemory
(
buffer
,
mblen
+
1
);
ZeroMemory
(
buffer
,
mblen
+
1
);
if
(
WideCharToMultiByte
(
codePage
,
0
,
b
str
,
len
,
buffer
,
mblen
,
NULL
,
NULL
)
)
if
(
WideCharToMultiByte
(
codePage
,
0
,
w
str
,
len
,
buffer
,
mblen
,
NULL
,
NULL
)
)
{
{
buffer
[
mblen
]
=
'\0'
;
buffer
[
mblen
]
=
'\0'
;
return
buffer
;
return
buffer
;
...
@@ -49,6 +51,11 @@ char *CStrFromBSTR(UINT codePage, BSTR bstr)
...
@@ -49,6 +51,11 @@ char *CStrFromBSTR(UINT codePage, BSTR bstr)
return
NULL
;
return
NULL
;
};
};
char
*
CStrFromBSTR
(
UINT
codePage
,
BSTR
bstr
)
{
return
CStrFromWSTR
(
codePage
,
bstr
,
SysStringLen
(
bstr
));
};
BSTR
BSTRFromCStr
(
UINT
codePage
,
LPCSTR
s
)
BSTR
BSTRFromCStr
(
UINT
codePage
,
LPCSTR
s
)
{
{
int
wideLen
=
MultiByteToWideChar
(
codePage
,
0
,
s
,
-
1
,
NULL
,
0
);
int
wideLen
=
MultiByteToWideChar
(
codePage
,
0
,
s
,
-
1
,
NULL
,
0
);
...
@@ -61,7 +68,7 @@ BSTR BSTRFromCStr(UINT codePage, LPCSTR s)
...
@@ -61,7 +68,7 @@ BSTR BSTRFromCStr(UINT codePage, LPCSTR s)
ZeroMemory
(
wideStr
,
wideLen
*
sizeof
(
WCHAR
));
ZeroMemory
(
wideStr
,
wideLen
*
sizeof
(
WCHAR
));
MultiByteToWideChar
(
codePage
,
0
,
s
,
-
1
,
wideStr
,
wideLen
);
MultiByteToWideChar
(
codePage
,
0
,
s
,
-
1
,
wideStr
,
wideLen
);
bstr
=
SysAllocStringLen
(
wideStr
,
wideLen
);
bstr
=
SysAllocStringLen
(
wideStr
,
wideLen
-
1
);
CoTaskMemFree
(
wideStr
);
CoTaskMemFree
(
wideStr
);
return
bstr
;
return
bstr
;
...
@@ -185,3 +192,155 @@ void HimetricFromDP(HDC hdc, LPPOINT pt, int count)
...
@@ -185,3 +192,155 @@ void HimetricFromDP(HDC hdc, LPPOINT pt, int count)
}
}
};
};
LPWSTR
CombineURL
(
LPCWSTR
baseUrl
,
LPCWSTR
url
)
{
if
(
NULL
!=
url
)
{
// check whether URL is already absolute
const
wchar_t
*
end
=
wcschr
(
url
,
L':'
);
if
(
(
NULL
!=
end
)
&&
(
end
!=
url
)
)
{
// validate protocol header
const
wchar_t
*
start
=
url
;
while
(
start
!=
end
)
{
wchar_t
c
=
towlower
(
*
start
);
if
(
(
c
<
L'a'
)
||
(
c
>
L'z'
)
)
// not a valid protocol header, assume relative URL
goto
relativeurl
;
++
start
;
}
/* we have a protocol header, therefore URL is absolute */
UINT
len
=
wcslen
(
url
);
wchar_t
*
href
=
(
LPWSTR
)
CoTaskMemAlloc
((
len
+
1
)
*
sizeof
(
wchar_t
));
if
(
href
)
{
memcpy
(
href
,
url
,
len
*
sizeof
(
wchar_t
));
href
[
len
]
=
L'\0'
;
}
return
href
;
}
relativeurl:
if
(
baseUrl
)
{
size_t
baseLen
=
wcslen
(
baseUrl
);
wchar_t
*
href
=
(
LPWSTR
)
CoTaskMemAlloc
((
baseLen
+
wcslen
(
url
)
+
1
)
*
sizeof
(
wchar_t
));
if
(
href
)
{
/* prepend base URL */
wcscpy
(
href
,
baseUrl
);
/*
** relative url could be empty,
** in which case return base URL
*/
if
(
L'\0'
==
*
url
)
return
href
;
/*
** locate pathname part of base URL
*/
/* skip over protocol part */
wchar_t
*
pathstart
=
wcschr
(
href
,
L':'
);
wchar_t
*
pathend
;
if
(
pathstart
)
{
if
(
L'/'
==
*
(
++
pathstart
)
)
{
if
(
L'/'
==
*
(
++
pathstart
)
)
{
++
pathstart
;
}
}
/* skip over host part */
pathstart
=
wcschr
(
pathstart
,
L'/'
);
pathend
=
href
+
baseLen
;
if
(
!
pathstart
)
{
// no path, add a / past end of url (over '\0')
pathstart
=
pathend
;
*
pathstart
=
L'/'
;
}
}
else
{
/* baseURL is just a UNIX file path */
if
(
L'/'
!=
*
href
)
{
/* baseURL is not an absolute path */
return
NULL
;
}
pathstart
=
href
;
pathend
=
href
+
baseLen
;
}
/* relative URL made of an absolute path ? */
if
(
L'/'
==
*
url
)
{
/* replace path completely */
wcscpy
(
pathstart
,
url
);
return
href
;
}
/* find last path component and replace it */
while
(
L'/'
!=
*
pathend
)
--
pathend
;
/*
** if relative url path starts with one or more './' or '../',
** factor them out of href so that we return a
** normalized URL
*/
while
(
pathend
>
pathstart
)
{
const
wchar_t
*
p
=
url
;
if
(
L'.'
!=
*
p
)
break
;
++
p
;
if
(
L'\0'
==
*
p
)
{
/* relative url is just '.' */
url
=
p
;
break
;
}
if
(
L'/'
==
*
p
)
{
/* relative url starts with './' */
url
=
++
p
;
continue
;
}
if
(
L'.'
!=
*
p
)
break
;
++
p
;
if
(
L'\0'
==
*
p
)
{
/* relative url is '..' */
}
else
{
if
(
L'/'
!=
*
p
)
break
;
/* relative url starts with '../' */
++
p
;
}
url
=
p
;
do
{
--
pathend
;
}
while
(
L'/'
!=
*
pathend
);
}
/* skip over '/' separator */
++
pathend
;
/* concatenate remaining base URL and relative URL */
wcscpy
(
pathend
,
url
);
}
return
href
;
}
}
return
NULL
;
}
activex/utils.h
View file @
fc9b8e56
...
@@ -28,6 +28,7 @@
...
@@ -28,6 +28,7 @@
#include <vector>
#include <vector>
// utilities
// utilities
extern
char
*
CStrFromWSTR
(
UINT
codePage
,
LPCWSTR
wstr
,
UINT
len
);
extern
char
*
CStrFromBSTR
(
UINT
codePage
,
BSTR
bstr
);
extern
char
*
CStrFromBSTR
(
UINT
codePage
,
BSTR
bstr
);
extern
BSTR
BSTRFromCStr
(
UINT
codePage
,
LPCSTR
s
);
extern
BSTR
BSTRFromCStr
(
UINT
codePage
,
LPCSTR
s
);
...
@@ -41,6 +42,9 @@ extern HDC CreateDevDC(DVTARGETDEVICE *ptd);
...
@@ -41,6 +42,9 @@ extern HDC CreateDevDC(DVTARGETDEVICE *ptd);
extern
void
DPFromHimetric
(
HDC
hdc
,
LPPOINT
pt
,
int
count
);
extern
void
DPFromHimetric
(
HDC
hdc
,
LPPOINT
pt
,
int
count
);
extern
void
HimetricFromDP
(
HDC
hdc
,
LPPOINT
pt
,
int
count
);
extern
void
HimetricFromDP
(
HDC
hdc
,
LPPOINT
pt
,
int
count
);
// URL
extern
LPWSTR
CombineURL
(
LPCWSTR
baseUrl
,
LPCWSTR
url
);
/**************************************************************************************************/
/**************************************************************************************************/
/* this function object is used to dereference the iterator into a value */
/* this function object is used to dereference the iterator into a value */
...
...
activex/vlccontrol.cpp
View file @
fc9b8e56
...
@@ -899,4 +899,3 @@ STDMETHODIMP VLCControl::put_AutoLoop(VARIANT_BOOL autoloop)
...
@@ -899,4 +899,3 @@ STDMETHODIMP VLCControl::put_AutoLoop(VARIANT_BOOL autoloop)
_p_instance
->
setAutoLoop
((
VARIANT_FALSE
!=
autoloop
)
?
TRUE
:
FALSE
);
_p_instance
->
setAutoLoop
((
VARIANT_FALSE
!=
autoloop
)
?
TRUE
:
FALSE
);
return
S_OK
;
return
S_OK
;
};
};
activex/vlccontrol.h
View file @
fc9b8e56
...
@@ -27,7 +27,6 @@
...
@@ -27,7 +27,6 @@
class
VLCControl
:
public
IVLCControl
class
VLCControl
:
public
IVLCControl
{
{
public:
public:
VLCControl
(
VLCPlugin
*
p_instance
)
:
_p_instance
(
p_instance
),
_p_typeinfo
(
NULL
)
{};
VLCControl
(
VLCPlugin
*
p_instance
)
:
_p_instance
(
p_instance
),
_p_typeinfo
(
NULL
)
{};
...
@@ -102,8 +101,6 @@ private:
...
@@ -102,8 +101,6 @@ private:
VLCPlugin
*
_p_instance
;
VLCPlugin
*
_p_instance
;
ITypeInfo
*
_p_typeinfo
;
ITypeInfo
*
_p_typeinfo
;
};
};
#endif
#endif
activex/vlccontrol2.cpp
View file @
fc9b8e56
...
@@ -26,6 +26,9 @@
...
@@ -26,6 +26,9 @@
#include "utils.h"
#include "utils.h"
#include <shlwapi.h>
#include <wininet.h>
using
namespace
std
;
using
namespace
std
;
VLCAudio
::~
VLCAudio
()
VLCAudio
::~
VLCAudio
()
...
@@ -581,6 +584,7 @@ STDMETHODIMP VLCInput::get_hasVout(VARIANT_BOOL* hasVout)
...
@@ -581,6 +584,7 @@ STDMETHODIMP VLCInput::get_hasVout(VARIANT_BOOL* hasVout)
VLCLog
::~
VLCLog
()
VLCLog
::~
VLCLog
()
{
{
delete
_p_vlcmessages
;
if
(
_p_log
)
if
(
_p_log
)
libvlc_log_close
(
_p_log
,
NULL
);
libvlc_log_close
(
_p_log
,
NULL
);
...
@@ -1202,8 +1206,157 @@ STDMETHODIMP VLCMessage::get_message(BSTR* message)
...
@@ -1202,8 +1206,157 @@ STDMETHODIMP VLCMessage::get_message(BSTR* message)
/*******************************************************************************/
/*******************************************************************************/
VLCPlaylistItems
::~
VLCPlaylistItems
()
{
if
(
_p_typeinfo
)
_p_typeinfo
->
Release
();
};
HRESULT
VLCPlaylistItems
::
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_IVLCPlaylistItems
,
&
_p_typeinfo
);
if
(
FAILED
(
hr
)
)
{
_p_typeinfo
=
NULL
;
}
p_typelib
->
Release
();
}
}
return
hr
;
};
STDMETHODIMP
VLCPlaylistItems
::
GetTypeInfoCount
(
UINT
*
pctInfo
)
{
if
(
NULL
==
pctInfo
)
return
E_INVALIDARG
;
if
(
SUCCEEDED
(
loadTypeInfo
())
)
*
pctInfo
=
1
;
else
*
pctInfo
=
0
;
return
NOERROR
;
};
STDMETHODIMP
VLCPlaylistItems
::
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
VLCPlaylistItems
::
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
VLCPlaylistItems
::
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
VLCPlaylistItems
::
get_count
(
long
*
count
)
{
if
(
NULL
==
count
)
return
E_POINTER
;
libvlc_instance_t
*
p_libvlc
;
HRESULT
hr
=
_p_instance
->
getVLC
(
&
p_libvlc
);
if
(
SUCCEEDED
(
hr
)
)
{
libvlc_exception_t
ex
;
libvlc_exception_init
(
&
ex
);
*
count
=
libvlc_playlist_items_count
(
p_libvlc
,
&
ex
);
if
(
libvlc_exception_raised
(
&
ex
)
)
{
_p_instance
->
setErrorInfo
(
IID_IVLCPlaylistItems
,
libvlc_exception_get_message
(
&
ex
));
libvlc_exception_clear
(
&
ex
);
return
E_FAIL
;
}
return
NOERROR
;
}
return
hr
;
};
STDMETHODIMP
VLCPlaylistItems
::
clear
()
{
libvlc_instance_t
*
p_libvlc
;
HRESULT
hr
=
_p_instance
->
getVLC
(
&
p_libvlc
);
if
(
SUCCEEDED
(
hr
)
)
{
libvlc_exception_t
ex
;
libvlc_exception_init
(
&
ex
);
libvlc_playlist_clear
(
p_libvlc
,
&
ex
);
if
(
libvlc_exception_raised
(
&
ex
)
)
{
_p_instance
->
setErrorInfo
(
IID_IVLCPlaylistItems
,
libvlc_exception_get_message
(
&
ex
));
libvlc_exception_clear
(
&
ex
);
return
E_FAIL
;
}
return
NOERROR
;
}
return
hr
;
};
STDMETHODIMP
VLCPlaylistItems
::
remove
(
long
item
)
{
libvlc_instance_t
*
p_libvlc
;
HRESULT
hr
=
_p_instance
->
getVLC
(
&
p_libvlc
);
if
(
SUCCEEDED
(
hr
)
)
{
libvlc_exception_t
ex
;
libvlc_exception_init
(
&
ex
);
libvlc_playlist_delete_item
(
p_libvlc
,
item
,
&
ex
);
if
(
libvlc_exception_raised
(
&
ex
)
)
{
_p_instance
->
setErrorInfo
(
IID_IVLCPlaylistItems
,
libvlc_exception_get_message
(
&
ex
));
libvlc_exception_clear
(
&
ex
);
return
E_FAIL
;
}
return
NOERROR
;
}
return
hr
;
};
/*******************************************************************************/
VLCPlaylist
::~
VLCPlaylist
()
VLCPlaylist
::~
VLCPlaylist
()
{
{
delete
_p_vlcplaylistitems
;
if
(
_p_typeinfo
)
if
(
_p_typeinfo
)
_p_typeinfo
->
Release
();
_p_typeinfo
->
Release
();
};
};
...
@@ -1344,18 +1497,44 @@ STDMETHODIMP VLCPlaylist::add(BSTR uri, VARIANT name, VARIANT options, long* ite
...
@@ -1344,18 +1497,44 @@ STDMETHODIMP VLCPlaylist::add(BSTR uri, VARIANT name, VARIANT options, long* ite
libvlc_exception_t
ex
;
libvlc_exception_t
ex
;
libvlc_exception_init
(
&
ex
);
libvlc_exception_init
(
&
ex
);
char
*
psz_uri
=
NULL
;
if
(
SysStringLen
(
_p_instance
->
getBaseURL
())
>
0
)
{
/*
** if the MRL a relative URL, we should end up with an absolute URL
*/
LPWSTR
abs_url
=
CombineURL
(
_p_instance
->
getBaseURL
(),
uri
);
if
(
NULL
!=
abs_url
)
{
psz_uri
=
CStrFromWSTR
(
CP_UTF8
,
abs_url
,
wcslen
(
abs_url
));
CoTaskMemFree
(
abs_url
);
}
else
{
psz_uri
=
CStrFromBSTR
(
CP_UTF8
,
uri
);
}
}
else
{
/*
** baseURL is empty, assume MRL is absolute
*/
psz_uri
=
CStrFromBSTR
(
CP_UTF8
,
uri
);
}
if
(
NULL
==
psz_uri
)
{
return
E_OUTOFMEMORY
;
}
int
i_options
;
int
i_options
;
char
**
ppsz_options
;
char
**
ppsz_options
;
hr
=
VLCControl
::
CreateTargetOptions
(
CP_UTF8
,
&
options
,
&
ppsz_options
,
&
i_options
);
hr
=
VLCControl
::
CreateTargetOptions
(
CP_UTF8
,
&
options
,
&
ppsz_options
,
&
i_options
);
if
(
FAILED
(
hr
)
)
if
(
FAILED
(
hr
)
)
return
hr
;
char
*
psz_uri
=
CStrFromBSTR
(
CP_UTF8
,
uri
);
if
(
NULL
==
psz_uri
)
{
{
VLCControl
::
FreeTargetOptions
(
ppsz_options
,
i_options
);
CoTaskMemFree
(
psz_uri
);
return
E_OUTOFMEMORY
;
return
hr
;
}
}
char
*
psz_name
=
NULL
;
char
*
psz_name
=
NULL
;
...
@@ -1566,6 +1745,20 @@ STDMETHODIMP VLCPlaylist::removeItem(long item)
...
@@ -1566,6 +1745,20 @@ STDMETHODIMP VLCPlaylist::removeItem(long item)
return
hr
;
return
hr
;
};
};
STDMETHODIMP
VLCPlaylist
::
get_items
(
IVLCPlaylistItems
**
obj
)
{
if
(
NULL
==
obj
)
return
E_POINTER
;
*
obj
=
_p_vlcplaylistitems
;
if
(
NULL
!=
_p_vlcplaylistitems
)
{
_p_vlcplaylistitems
->
AddRef
();
return
NOERROR
;
}
return
E_OUTOFMEMORY
;
};
/*******************************************************************************/
/*******************************************************************************/
VLCVideo
::~
VLCVideo
()
VLCVideo
::~
VLCVideo
()
...
@@ -1758,7 +1951,7 @@ STDMETHODIMP VLCVideo::get_height(long* height)
...
@@ -1758,7 +1951,7 @@ STDMETHODIMP VLCVideo::get_height(long* height)
return
hr
;
return
hr
;
};
};
STDMETHODIMP
VLCVideo
::
get_aspectRatio
(
BSTR
aspect
)
STDMETHODIMP
VLCVideo
::
get_aspectRatio
(
BSTR
*
aspect
)
{
{
if
(
NULL
==
aspect
)
if
(
NULL
==
aspect
)
return
E_POINTER
;
return
E_POINTER
;
...
@@ -1776,12 +1969,12 @@ STDMETHODIMP VLCVideo::get_aspectRatio(BSTR aspect)
...
@@ -1776,12 +1969,12 @@ STDMETHODIMP VLCVideo::get_aspectRatio(BSTR aspect)
char
*
psz_aspect
=
libvlc_video_get_aspect_ratio
(
p_input
,
&
ex
);
char
*
psz_aspect
=
libvlc_video_get_aspect_ratio
(
p_input
,
&
ex
);
libvlc_input_free
(
p_input
);
libvlc_input_free
(
p_input
);
if
(
!
libvlc_exception_raised
(
&
ex
)
)
{
if
(
NULL
==
psz_aspect
)
if
(
NULL
==
psz_aspect
)
return
E_OUTOFMEMORY
;
return
E_OUTOFMEMORY
;
if
(
!
libvlc_exception_raised
(
&
ex
)
)
*
aspect
=
SysAllocStringByteLen
(
psz_aspect
,
strlen
(
psz_aspect
));
{
aspect
=
SysAllocStringByteLen
(
psz_aspect
,
strlen
(
psz_aspect
));
free
(
psz_aspect
);
free
(
psz_aspect
);
psz_aspect
=
NULL
;
psz_aspect
=
NULL
;
return
NOERROR
;
return
NOERROR
;
...
@@ -1826,7 +2019,7 @@ STDMETHODIMP VLCVideo::put_aspectRatio(BSTR aspect)
...
@@ -1826,7 +2019,7 @@ STDMETHODIMP VLCVideo::put_aspectRatio(BSTR aspect)
libvlc_input_free
(
p_input
);
libvlc_input_free
(
p_input
);
if
(
libvlc_exception_raised
(
&
ex
)
)
if
(
libvlc_exception_raised
(
&
ex
)
)
{
{
_p_instance
->
setErrorInfo
(
IID_IVLC
Playlist
,
_p_instance
->
setErrorInfo
(
IID_IVLC
Video
,
libvlc_exception_get_message
(
&
ex
));
libvlc_exception_get_message
(
&
ex
));
libvlc_exception_clear
(
&
ex
);
libvlc_exception_clear
(
&
ex
);
return
E_FAIL
;
return
E_FAIL
;
...
...
activex/vlccontrol2.h
View file @
fc9b8e56
...
@@ -261,9 +261,9 @@ class VLCMessages : public IVLCMessages
...
@@ -261,9 +261,9 @@ class VLCMessages : public IVLCMessages
public:
public:
VLCMessages
(
VLCPlugin
*
p_instance
,
VLCLog
*
p_vlclog
)
:
VLCMessages
(
VLCPlugin
*
p_instance
,
VLCLog
*
p_vlclog
)
:
_p_vlclog
(
p_vlclog
),
_p_instance
(
p_instance
),
_p_instance
(
p_instance
),
_p_typeinfo
(
NULL
),
_p_typeinfo
(
NULL
)
{}
_p_vlclog
(
p_vlclog
)
{};
virtual
~
VLCMessages
();
virtual
~
VLCMessages
();
// IUnknown methods
// IUnknown methods
...
@@ -316,9 +316,10 @@ public:
...
@@ -316,9 +316,10 @@ public:
friend
class
VLCMessageIterator
;
friend
class
VLCMessageIterator
;
VLCLog
(
VLCPlugin
*
p_instance
)
:
VLCLog
(
VLCPlugin
*
p_instance
)
:
_p_log
(
NULL
),
_p_instance
(
p_instance
),
_p_instance
(
p_instance
),
_p_typeinfo
(
NULL
),
_p_typeinfo
(
NULL
),
_p_
log
(
NULL
)
_p_
vlcmessages
(
NULL
)
{
{
_p_vlcmessages
=
new
VLCMessages
(
p_instance
,
this
);
_p_vlcmessages
=
new
VLCMessages
(
p_instance
,
this
);
};
};
...
@@ -367,11 +368,63 @@ private:
...
@@ -367,11 +368,63 @@ private:
VLCMessages
*
_p_vlcmessages
;
VLCMessages
*
_p_vlcmessages
;
};
};
class
VLCPlaylistItems
:
public
IVLCPlaylistItems
{
public:
VLCPlaylistItems
(
VLCPlugin
*
p_instance
)
:
_p_instance
(
p_instance
),
_p_typeinfo
(
NULL
)
{};
virtual
~
VLCPlaylistItems
();
// IUnknown methods
STDMETHODIMP
QueryInterface
(
REFIID
riid
,
void
**
ppv
)
{
if
(
NULL
==
ppv
)
return
E_POINTER
;
if
(
(
IID_IUnknown
==
riid
)
||
(
IID_IDispatch
==
riid
)
||
(
IID_IVLCPlaylistItems
==
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
*
);
// IVLCPlaylistItems methods
STDMETHODIMP
get_count
(
long
*
);
STDMETHODIMP
clear
();
STDMETHODIMP
remove
(
long
);
protected:
HRESULT
loadTypeInfo
();
private:
VLCPlugin
*
_p_instance
;
ITypeInfo
*
_p_typeinfo
;
};
class
VLCPlaylist
:
public
IVLCPlaylist
class
VLCPlaylist
:
public
IVLCPlaylist
{
{
public:
public:
VLCPlaylist
(
VLCPlugin
*
p_instance
)
:
VLCPlaylist
(
VLCPlugin
*
p_instance
)
:
_p_instance
(
p_instance
),
_p_typeinfo
(
NULL
)
{};
_p_instance
(
p_instance
),
_p_typeinfo
(
NULL
),
_p_vlcplaylistitems
(
NULL
)
{
_p_vlcplaylistitems
=
new
VLCPlaylistItems
(
p_instance
);
};
virtual
~
VLCPlaylist
();
virtual
~
VLCPlaylist
();
// IUnknown methods
// IUnknown methods
...
@@ -412,6 +465,7 @@ public:
...
@@ -412,6 +465,7 @@ public:
STDMETHODIMP
prev
();
STDMETHODIMP
prev
();
STDMETHODIMP
clear
();
STDMETHODIMP
clear
();
STDMETHODIMP
removeItem
(
long
);
STDMETHODIMP
removeItem
(
long
);
STDMETHODIMP
get_items
(
IVLCPlaylistItems
**
);
protected:
protected:
HRESULT
loadTypeInfo
();
HRESULT
loadTypeInfo
();
...
@@ -420,6 +474,7 @@ private:
...
@@ -420,6 +474,7 @@ private:
VLCPlugin
*
_p_instance
;
VLCPlugin
*
_p_instance
;
ITypeInfo
*
_p_typeinfo
;
ITypeInfo
*
_p_typeinfo
;
VLCPlaylistItems
*
_p_vlcplaylistitems
;
};
};
class
VLCVideo
:
public
IVLCVideo
class
VLCVideo
:
public
IVLCVideo
...
@@ -460,7 +515,7 @@ public:
...
@@ -460,7 +515,7 @@ public:
STDMETHODIMP
put_fullscreen
(
VARIANT_BOOL
);
STDMETHODIMP
put_fullscreen
(
VARIANT_BOOL
);
STDMETHODIMP
get_width
(
long
*
);
STDMETHODIMP
get_width
(
long
*
);
STDMETHODIMP
get_height
(
long
*
);
STDMETHODIMP
get_height
(
long
*
);
STDMETHODIMP
get_aspectRatio
(
BSTR
);
STDMETHODIMP
get_aspectRatio
(
BSTR
*
);
STDMETHODIMP
put_aspectRatio
(
BSTR
);
STDMETHODIMP
put_aspectRatio
(
BSTR
);
STDMETHODIMP
toggleFullscreen
();
STDMETHODIMP
toggleFullscreen
();
...
...
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