Jump to content
Sign in to follow this  
seangriffin

VLC (Media Player) UDF

Recommended Posts

I just redownloaded both the udf and example from 1st post.

The example worked straight out of the box, but of course I have vlc installed including the activex.

Ps, you did not post a script to run anyway.

thank you for your support after reading your post i ran the script on my xp box and indeed it worked great... before i posted i thought had a problem because i was on a 64 bit box so i moved to a 32 but both were win7 so let it be known that the issues i experienced i am guessing a win7 problem did not check vista... also if you compile the script on an xp box then move it to the win7 its runs fine idk... again thank you JohnOne for helping me sir

-Pyro

Share this post


Link to post
Share on other sites

This is awesome - thanks.

Question. I want to stream a rtsp feed from an IP CCTV camera. I can do this in the VLC client by going to Media | Open network Stream and typing rtsp://172.16.20.11/channel1 Any ideas how I can do this in the VLC udf/activex plugin?

thanks again.

Share this post


Link to post
Share on other sites

I would like to figure this out as well....

I found that in the VLC.au3 file it is hard coded to only accept files.

Func _GUICtrlVLC_Add($vlc, $path)
if IsObj($vlc) = False Then Return False
Return $vlc.playlist.add("file:///" & $path)
EndFunc

So I tried to change it to this

Func _GUICtrlVLC_Add($vlc, $path)
if IsObj($vlc) = False Then Return False
Return $vlc.playlist.add($path)
EndFunc

But it didn't work like I had hoped. I think I'm headed in the right direction though. I will look into it further unless someone has already accomplished this and posts a solution to playing a stream with this UDF.

Share this post


Link to post
Share on other sites

Actually this did work... I must have mistyped the location of the stream the first couple of times.

Just change the _GUICtrlVLC_Add function in the VLC.au3 to this...

Func _GUICtrlVLC_Add($vlc, $path)
if IsObj($vlc) = False Then Return False
Return $vlc.playlist.add($path)
EndFunc

Share this post


Link to post
Share on other sites

I added a fullscreen function to the end of my VLC.au3 that works great. I think you need version 1.1.11 or higher of VLC for it to work.

; #FUNCTION# ;===============================================================================
;
; Name...........: _GUICtrlVLC_Fullscreen
; Description ...: Sets the video to fullscreen.
; Syntax.........: _GUICtrlVLC_Fullscreen($vlc)
; Parameters ....: $vlc   - The control identifier (controlID) as returned by _GUICtrlVLC_Create.
; Return values .:  On Success  - Returns True.
;                 On Failure  - Returns False.
; Modified.......:
; Remarks .......:
; Related .......:
; Link ..........:
; Example .......: Yes
;
; ;==========================================================================================
Func _GUICtrlVLC_Fullscreen($vlc)
if IsObj($vlc) = False Then Return False
$vlc.video.toggleFullscreen()
Return True
EndFunc

Share this post


Link to post
Share on other sites

Thank-you for all the hard work.

I was wondering if you could add a function to switch audio track on a video? I work with a lot of video files. Some of these files have two tracks, English and non English, sometimes the tracks are in reverse order. I need to manipulate the video files depending on the audio track. If you can show me how this can be done, it would be much appreciated. Thank-you.

Share this post


Link to post
Share on other sites

I noticed, if the filename is unicode, it would not play the file. I have files that is named in French with accents, these files would not play. Anyway around this?

Share this post


Link to post
Share on other sites

I'm sory! My English very Bad! :D

I look forward to having 1 of VLC ActiveX use UDF rather than creating an object. Because if you use the ActiveX of VLC do not need to install VLC on your machine that just two files libvlc.dll and libvlccore.dll.I really look forward to having 1 UDF uses ActiveX of VLC. Thank you very much!

Share this post


Link to post
Share on other sites

I'm sory! My English very Bad! :D

I look forward to having 1 of VLC ActiveX use UDF rather than creating an object. Because if you use the ActiveX of VLC do not need to install VLC on your machine that just two files libvlc.dll and libvlccore.dll.I really look forward to having 1 UDF uses ActiveX of VLC. Thank you very much!

When are you making this available?

Share this post


Link to post
Share on other sites

Thank you for your helpful UDF!

It is necessary to move and resize the object VLC during its operation. Can you please tell how to do this?

Functions GUICtrlSetPos and WinMove not work with this element. GUICtrlDelete function also does not work. :(

Thanks!

Edited by AndreyS

Share this post


Link to post
Share on other sites
Guest

It does not work on the latest version of VLC ...

Please update the UDF to support the latest version ..

Share this post


Link to post
Share on other sites

Just thought Id point out that there is a take snap shot command, but unfortunately it crashs when ever I use it...

$vlc.video.takeSnapshot()

You can find a full list of commands here....

http://git.videolan.org/?p=npapi-vlc.git;a=blob;f=activex/vlccontrol2.h;h=f89d4b7cc2967f15f590318dc2b34da70d1490fb;hb=HEAD

and alternatively the com/ole viewer thingy would have told you this...

ftp://www.247technologies.co.za/Public/Applications%20for%20Support/Resource%20Kit/oleview.exe

http://www.dllme.com/dll/download/11343/IVIEWERS.DLL

// Generated .IDL file (by the OLE/COM Object Viewer)
// 
// typelib filename: axvlc.dll

[
  uuid(DF2BBE39-40A8-433B-A279-073F48DA94B6),
  version(1.0),
  helpstring("VideoLAN VLC ActiveX Plugin")
]
library AXVLC
{
    // TLib :     // TLib : OLE Automation : {00020430-0000-0000-C000-000000000046}
    importlib("stdole2.tlb");

    // Forward declare all types defined in this typelib
    interface IVLCControl;
    interface IVLCAudio;
    interface IVLCInput;
    interface IVLCLogo;
    interface IVLCDeinterlace;
    interface IVLCMarquee;
    interface IVLCPlaylist;
    interface IVLCPlaylistItems;
    interface IVLCSubtitle;
    interface IVLCVideo;
    interface IPictureDisp;
    interface IVLCControl2;
    dispinterface DVLCEvents;

    [
      odl,
      uuid(C2FA41D0-B113-476E-AC8C-9BD14999C1C1),
      helpstring("VLC Control (deprecated)"),
      dual,
      oleautomation
    ]
    interface IVLCControl : IDispatch {
        [id(0x00000064), propget, bindable, helpstring("Returns/sets a value that determines whether viewing area is visible or hidden.")]
        HRESULT Visible([out, retval] VARIANT_BOOL* Visible);
        [id(0x00000064), propput, bindable, helpstring("Returns/sets a value that determines whether viewing area is visible or hidden.")]
        HRESULT Visible([in] VARIANT_BOOL Visible);
        [id(0x60020002), helpstring("Play current target in playlist.")]
        HRESULT play();
        [id(0x60020003), helpstring("Pause playback.")]
        HRESULT pause();
        [id(0x60020004), helpstring("Stop playback.")]
        HRESULT stop();
        [id(0x00000065), propget, hidden, helpstring("Returns a value that determines whether VLC is currently playing.")]
        HRESULT Playing([out, retval] VARIANT_BOOL* isPlaying);
        [id(0x00000066), propget, helpstring("Returns/sets playback position within the current item. Position is a relative value ranging from 0.0 to 1.0.")]
        HRESULT Position([out, retval] single* Position);
        [id(0x00000066), propput, helpstring("Returns/sets playback position within the current item. Position is a relative value ranging from 0.0 to 1.0.")]
        HRESULT Position([in] single Position);
        [id(0x00000067), propget, helpstring("Returns/sets playback time relative to the start of the current item.")]
        HRESULT Time([out, retval] int* seconds);
        [id(0x00000067), propput, helpstring("Returns/sets playback time relative to the start of the current item.")]
        HRESULT Time([in] int seconds);
        [id(0x6002000a), helpstring("Advance or backtrack playback time, relative to current time.")]
        HRESULT shuttle([in] int seconds);
        [id(0x6002000b), helpstring("Switch video between normal and fullscreen view modes.")]
        HRESULT fullscreen();
        [id(0x00000068), propget, hidden, helpstring("Returns the total length, in seconds, of the current item, may be unknown.")]
        HRESULT Length([out, retval] int* seconds);
        [id(0x6002000d), helpstring("Increases playback speed. Possible speeds are: 1x, 2x, 4x, 8x.")]
        HRESULT playFaster();
        [id(0x6002000e), helpstring("Decreases playback speed. Possible speeds are: 1x, 2x, 4x, 8x.")]
        HRESULT playSlower();
        [id(0x00000069), propget, helpstring("Returns/sets playback volume, ranges from 0 to 200%.")]
        HRESULT Volume([out, retval] int* Volume);
        [id(0x00000069), propput, helpstring("Returns/sets playback volume, ranges from 0 to 200%.")]
        HRESULT Volume([in] int Volume);
        [id(0x60020011), helpstring("Mute/unmute playback audio.")]
        HRESULT toggleMute();
        [id(0x60020012), helpstring("Sets the value of a VLC variable.")]
        HRESULT setVariable(
                        [in] BSTR name, 
                        [in] VARIANT value);
        [id(0x60020013), helpstring("Returns the value of a VLC variable.")]
        HRESULT getVariable(
                        [in] BSTR name, 
                        [out, retval] VARIANT* value);
        [id(0x60020014), helpstring("Add an item to the playlist.")]
        HRESULT addTarget(
                        [in] BSTR uri, 
                        [in] VARIANT options, 
                        [in] VLCPlaylistMode mode, 
                        [in] int Position);
        [id(0x60020015), propget, helpstring("Returns index of current item in playlist.")]
        HRESULT PlaylistIndex([out, retval] int* index);
        [id(0x60020016), propget, helpstring("Returns number of items in playlist.")]
        HRESULT PlaylistCount([out, retval] int* index);
        [id(0x60020017), helpstring("Advance to next item in playlist.")]
        HRESULT playlistNext();
        [id(0x60020018), helpstring("Advance to previous item in playlist.")]
        HRESULT playlistPrev();
        [id(0x60020019), helpstring("Remove all items from playlist.")]
        HRESULT playlistClear();
        [id(0x6002001a), propget, hidden, helpstring("Returns VLC Version.")]
        HRESULT VersionInfo([out, retval] BSTR* version);
        [id(0x0000006a), propget, helpstring("Returns/sets the first MRL in playlist, used for AutoPlay")]
        HRESULT MRL([out, retval] BSTR* MRL);
        [id(0x0000006a), propput, helpstring("Returns/sets the first MRL in playlist, used for AutoPlay")]
        HRESULT MRL([in] BSTR MRL);
        [id(0x0000006b), propget, helpstring("Returns/sets a value that determines whether the playlist is played on startup")]
        HRESULT AutoPlay([out, retval] VARIANT_BOOL* AutoPlay);
        [id(0x0000006b), propput, helpstring("Returns/sets a value that determines whether the playlist is played on startup")]
        HRESULT AutoPlay([in] VARIANT_BOOL AutoPlay);
        [id(0x0000006c), propget, helpstring("Returns/sets a value that determines whether the playlist is looped")]
        HRESULT AutoLoop([out, retval] VARIANT_BOOL* AutoLoop);
        [id(0x0000006c), propput, helpstring("Returns/sets a value that determines whether the playlist is looped")]
        HRESULT AutoLoop([in] VARIANT_BOOL AutoLoop);
    };

    typedef enum {
        VLCPlayListInsert = 1,
        VLCPlayListInsertAndGo = 9,
        VLCPlayListReplace = 2,
        VLCPlayListReplaceAndGo = 10,
        VLCPlayListAppend = 4,
        VLCPlayListAppendAndGo = 12,
        VLCPlayListCheckInsert = 16
    } VLCPlaylistMode;

    [
      odl,
      uuid(9E0BD17B-2D3C-4656-B94D-03084F3FD9D4),
      helpstring("VLC Audio APIs"),
      dual,
      oleautomation
    ]
    interface IVLCAudio : IDispatch {
        [id(0x60020000), propget, helpstring("Returns/sets the audio mute state.")]
        HRESULT mute([out, retval] VARIANT_BOOL* muted);
        [id(0x60020000), propput, helpstring("Returns/sets the audio mute state.")]
        HRESULT mute([in] VARIANT_BOOL muted);
        [id(0x60020002), propget, helpstring("Returns/sets audio volume as a percent value.")]
        HRESULT Volume([out, retval] long* Volume);
        [id(0x60020002), propput, helpstring("Returns/sets audio volume as a percent value.")]
        HRESULT Volume([in] long Volume);
        [id(0x60020004), helpstring("Mute/unmute audio playback.")]
        HRESULT toggleMute();
        [id(0x60020005), propget, helpstring("Returns/sets audio track used/to use.")]
        HRESULT track([out, retval] long* track);
        [id(0x60020005), propput, helpstring("Returns/sets audio track used/to use.")]
        HRESULT track([in] long track);
        [id(0x60020007), propget, helpstring("Returns the number of audio tracks available.")]
        HRESULT count([out, retval] long* trackNumber);
        [id(0x60020008), helpstring("Returns audio track name.")]
        HRESULT description(
                        [in] long trackID, 
                        [out, retval] BSTR* name);
        [id(0x60020009), propget, helpstring("Returns audio channel [1-5] indicating; stereo, reverse stereo, left, right, dolby.")]
        HRESULT channel([out, retval] long* channel);
        [id(0x60020009), propput, helpstring("Returns audio channel [1-5] indicating; stereo, reverse stereo, left, right, dolby.")]
        HRESULT channel([in] long channel);
    };

    [
      odl,
      uuid(49E0DBD1-9440-466C-9C97-95C67190C603),
      helpstring("VLC Input APIs"),
      dual,
      oleautomation
    ]
    interface IVLCInput : IDispatch {
        [id(0x60020000), propget, helpstring("Returns the clip length, in milliseconds.")]
        HRESULT Length([out, retval] double* Length);
        [id(0x60020001), propget, helpstring("Returns/sets playback position in current clip.  Position is ranging from 0.0 to 1.0.")]
        HRESULT Position([out, retval] double* Position);
        [id(0x60020001), propput, helpstring("Returns/sets playback position in current clip.  Position is ranging from 0.0 to 1.0.")]
        HRESULT Position([in] double Position);
        [id(0x60020003), propget, helpstring("Returns/sets playback time in current clip, in milliseconds.")]
        HRESULT Time([out, retval] double* Time);
        [id(0x60020003), propput, helpstring("Returns/sets playback time in current clip, in milliseconds.")]
        HRESULT Time([in] double Time);
        [id(0x60020005), propget, helpstring("Returns current playback state.")]
        HRESULT state([out, retval] long* state);
        [id(0x60020006), propget, helpstring("Returns/sets current playback rate, normal rate is 1.0 ")]
        HRESULT rate([out, retval] double* rate);
        [id(0x60020006), propput, helpstring("Returns/sets current playback rate, normal rate is 1.0 ")]
        HRESULT rate([in] double rate);
        [id(0x60020008), propget, helpstring("Returns current playback frames per seconds if available.")]
        HRESULT fps([out, retval] double* fps);
        [id(0x60020009), propget, helpstring("Returns whether current playback displays video.")]
        HRESULT hasVout([out, retval] VARIANT_BOOL* hasVout);
    };

    [
      odl,
      uuid(8A4A20C2-93F3-44E8-8644-BEB2E3487E84),
      helpstring("VLC Logo Filter"),
      dual,
      oleautomation
    ]
    interface IVLCLogo : IDispatch {
        [id(0x60020000), helpstring("Enable the logo filter.")]
        HRESULT enable();
        [id(0x60020001), helpstring("Disable the logo filter.")]
        HRESULT disable();
        [id(0x60020002), helpstring("specify input file[[,delay],alpha].")]
        HRESULT file([in] BSTR fname);
        [id(0x60020003), propget]
        HRESULT delay([out, retval] long* val);
        [id(0x60020003), propput]
        HRESULT delay([in] long val);
        [id(0x60020005), propget]
        HRESULT repeat([out, retval] long* val);
        [id(0x60020005), propput]
        HRESULT repeat([in] long val);
        [id(0x60020007), propget, helpstring("Returns the `global' alpha value.")]
        HRESULT opacity([out, retval] long* val);
        [id(0x60020007), propput, helpstring("Returns the `global' alpha value.")]
        HRESULT opacity([in] long val);
        [id(0x60020009), propget, helpstring("Retrieve picture position.")]
        HRESULT Position([out, retval] BSTR* val);
        [id(0x60020009), propput, helpstring("Retrieve picture position.")]
        HRESULT Position([in] BSTR val);
        [id(0x6002000b), propget, helpstring("Picture x offset.")]
        HRESULT x([out, retval] long* val);
        [id(0x6002000b), propput, helpstring("Picture x offset.")]
        HRESULT x([in] long val);
        [id(0x6002000d), propget, helpstring("Picture y offset.")]
        HRESULT y([out, retval] long* val);
        [id(0x6002000d), propput, helpstring("Picture y offset.")]
        HRESULT y([in] long val);
    };

    [
      odl,
      uuid(BC97469F-CB11-4037-8DCE-5FC9F5F85307),
      helpstring("VLC Deinterlace Filter"),
      dual,
      oleautomation
    ]
    interface IVLCDeinterlace : IDispatch {
        [id(0x60020000), helpstring("Enable deinterlace filter and set method.")]
        HRESULT enable([in] BSTR mode);
        [id(0x60020001), helpstring("Disable deinterlace filter.")]
        HRESULT disable();
    };

    [
      odl,
      uuid(8D076AD6-9B6F-4150-A0FD-5D7E8C8CB02C),
      helpstring("VLC Marquee Filter"),
      dual,
      oleautomation
    ]
    interface IVLCMarquee : IDispatch {
        [id(0x60020000), helpstring("enable Marquee Filter.")]
        HRESULT enable();
        [id(0x60020001), helpstring("disable Marquee Filter.")]
        HRESULT disable();
        [id(0x60020002), propget, helpstring("Retrieve marquee text.")]
        HRESULT text([out, retval] BSTR* val);
        [id(0x60020002), propput, helpstring("Retrieve marquee text.")]
        HRESULT text([in] BSTR val);
        [id(0x60020004), propget, helpstring("Retrieve text color.")]
        HRESULT color([out, retval] long* val);
        [id(0x60020004), propput, helpstring("Retrieve text color.")]
        HRESULT color([in] long val);
        [id(0x60020006), propget, helpstring("Retrieve text opacity.")]
        HRESULT opacity([out, retval] long* val);
        [id(0x60020006), propput, helpstring("Retrieve text opacity.")]
        HRESULT opacity([in] long val);
        [id(0x60020008), propget, helpstring("Retrieve text position.")]
        HRESULT Position([out, retval] BSTR* val);
        [id(0x60020008), propput, helpstring("Retrieve text position.")]
        HRESULT Position([in] BSTR val);
        [id(0x6002000a), propget, helpstring("Retrieve text refresh time.")]
        HRESULT refresh([out, retval] long* val);
        [id(0x6002000a), propput, helpstring("Retrieve text refresh time.")]
        HRESULT refresh([in] long val);
        [id(0x6002000c), propget, helpstring("Retrieve text size.")]
        HRESULT size([out, retval] long* val);
        [id(0x6002000c), propput, helpstring("Retrieve text size.")]
        HRESULT size([in] long val);
        [id(0x6002000e), propget, helpstring("Retrieve timeout.")]
        HRESULT timeout([out, retval] long* val);
        [id(0x6002000e), propput, helpstring("Retrieve timeout.")]
        HRESULT timeout([in] long val);
        [id(0x60020010), propget, helpstring("Retrieve text abcissa.")]
        HRESULT x([out, retval] long* val);
        [id(0x60020010), propput, helpstring("Retrieve text abcissa.")]
        HRESULT x([in] long val);
        [id(0x60020012), propget, helpstring("Retrieve text ordinate.")]
        HRESULT y([out, retval] long* val);
        [id(0x60020012), propput, helpstring("Retrieve text ordinate.")]
        HRESULT y([in] long val);
    };

    [
      odl,
      uuid(54613049-40BF-4035-9E70-0A9312C0188D),
      helpstring("VLC Playlist APIs"),
      dual,
      oleautomation
    ]
    interface IVLCPlaylist : IDispatch {
        [id(0x60020000), propget, hidden, helpstring("Returns number of items in playlist. (deprecated)")]
        HRESULT itemCount([out, retval] long* count);
        [id(0x60020001), propget, helpstring("Returns whether playback displays video.")]
        HRESULT isPlaying([out, retval] VARIANT_BOOL* Playing);
        [id(0x60020002), helpstring("Add a playlist item.")]
        HRESULT add(
                        [in] BSTR uri, 
                        [in, optional] VARIANT name, 
                        [in, optional] VARIANT options, 
                        [out, retval] long* itemId);
        [id(0x60020003), helpstring("Play/Resume the playlist.")]
        HRESULT play();
        [id(0x60020004), helpstring("Play item in playlist.")]
        HRESULT playItem([in] long itemId);
        [id(0x60020005), helpstring("Play/Pause current clip.")]
        HRESULT togglePause();
        [id(0x60020006), helpstring("Stop current clip.")]
        HRESULT stop();
        [id(0x60020007), helpstring("Advance to next item in playlist.")]
        HRESULT next();
        [id(0x60020008), helpstring("Advance to previous item in playlist.")]
        HRESULT prev();
        [id(0x60020009), hidden, helpstring("Remove all items from playlist. (deprecated)")]
        HRESULT clear();
        [id(0x6002000a), hidden, helpstring("Remove item from playlist. (deprecated)")]
        HRESULT removeItem([in] long item);
        [id(0x6002000b), propget, helpstring("Returns the playlist items collection object.")]
        HRESULT items([out, retval] IVLCPlaylistItems** obj);
    };

    [
      odl,
      uuid(FD37FE32-82BC-4A25-B056-315F4DBB194D),
      helpstring("VLC Playlist Items collection"),
      dual,
      oleautomation
    ]
    interface IVLCPlaylistItems : IDispatch {
        [id(0x60020000), propget, helpstring("Returns number of items in playlist.")]
        HRESULT count([out, retval] long* count);
        [id(0x60020001), helpstring("Remove all items from playlist.")]
        HRESULT clear();
        [id(0x60020002), helpstring("remove item from playlist.")]
        HRESULT remove([in] long itemId);
    };

    [
      odl,
      uuid(465E787A-0556-452F-9477-954E4A940003),
      helpstring("VLC Subtitle APIs"),
      dual,
      oleautomation
    ]
    interface IVLCSubtitle : IDispatch {
        [id(0x60020000), propget, helpstring("Returns video subtitle used.")]
        HRESULT track([out, retval] long* spu);
        [id(0x60020000), propput, helpstring("Returns video subtitle used.")]
        HRESULT track([in] long spu);
        [id(0x60020002), propget, helpstring("Returns the number of video subtitles available.")]
        HRESULT count([out, retval] long* spuNumber);
        [id(0x60020003), helpstring("Returns video subtitle name.")]
        HRESULT description(
                        [in] long nameID, 
                        [out, retval] BSTR* name);
    };

    [
      odl,
      uuid(0AAEDF0B-D333-4B27-A0C6-BBF31413A42E),
      helpstring("VLC Video APIs"),
      dual,
      oleautomation
    ]
    interface IVLCVideo : IDispatch {
        [id(0x60020000), propget, helpstring("Returns/sets the fullscreen state.")]
        HRESULT fullscreen([out, retval] VARIANT_BOOL* fullscreen);
        [id(0x60020000), propput, helpstring("Returns/sets the fullscreen state.")]
        HRESULT fullscreen([in] VARIANT_BOOL fullscreen);
        [id(0x60020002), propget, helpstring("Returns video original width.")]
        HRESULT width([out, retval] long* width);
        [id(0x60020003), propget, helpstring("Returns video original height.")]
        HRESULT height([out, retval] long* height);
        [id(0x60020004), propget, helpstring("Returns video aspect ratio.")]
        HRESULT aspectRatio([out, retval] BSTR* aspect);
        [id(0x60020004), propput, helpstring("Returns video aspect ratio.")]
        HRESULT aspectRatio([in] BSTR aspect);
        [id(0x60020006), propget, helpstring("Returns video subtitle used.")]
        HRESULT subtitle([out, retval] long* spu);
        [id(0x60020006), propput, helpstring("Returns video subtitle used.")]
        HRESULT subtitle([in] long spu);
        [id(0x60020008), propget, helpstring("Returns crop filter geometry.")]
        HRESULT crop([out, retval] BSTR* geometry);
        [id(0x60020008), propput, helpstring("Returns crop filter geometry.")]
        HRESULT crop([in] BSTR geometry);
        [id(0x6002000a), propget, helpstring("Returns teletext page used.")]
        HRESULT teletext([out, retval] long* page);
        [id(0x6002000a), propput, helpstring("Returns teletext page used.")]
        HRESULT teletext([in] long page);
        [id(0x6002000c), helpstring("toggle fullscreen/windowed state.")]
        HRESULT toggleFullscreen();
        [id(0x6002000d), helpstring("take video snapshot and save it into picture object.")]
        HRESULT takeSnapshot([out, retval] IPictureDisp** picture);
        [id(0x6002000e), helpstring("toggle teletext transparent state.")]
        HRESULT toggleTeletext();
        [id(0x6002000f), propget, helpstring("Returns the marquee object.")]
        HRESULT marquee([out, retval] IVLCMarquee** obj);
        [id(0x60020010), propget, helpstring("Returns the logo object.")]
        HRESULT logo([out, retval] IVLCLogo** obj);
        [id(0x60020011), propget, helpstring("Returns the logo object.")]
        HRESULT deinterlace([out, retval] IVLCDeinterlace** obj);
    };

    [
      odl,
      uuid(7BF80981-BF32-101A-8BBB-00AA00300CAB)
    ]
    interface IPictureDisp : IDispatch {
    };

    [
      odl,
      uuid(2D719729-5333-406C-BF12-8DE787FD65E3),
      helpstring("VLC Control"),
      dual,
      oleautomation
    ]
    interface IVLCControl2 : IDispatch {
        [id(0x0000006c), propget, helpstring("Returns/sets a value that determines whether the playlist is looped")]
        HRESULT AutoLoop([out, retval] VARIANT_BOOL* AutoLoop);
        [id(0x0000006c), propput, helpstring("Returns/sets a value that determines whether the playlist is looped")]
        HRESULT AutoLoop([in] VARIANT_BOOL AutoLoop);
        [id(0x0000006b), propget, helpstring("Returns/sets a value that determines whether the playlist is played on startup")]
        HRESULT AutoPlay([out, retval] VARIANT_BOOL* AutoPlay);
        [id(0x0000006b), propput, helpstring("Returns/sets a value that determines whether the playlist is played on startup")]
        HRESULT AutoPlay([in] VARIANT_BOOL AutoPlay);
        [id(0x0000006e), propget, helpstring("Returns/sets the base URL for relative paths")]
        HRESULT BaseURL([out, retval] BSTR* url);
        [id(0x0000006e), propput, helpstring("Returns/sets the base URL for relative paths")]
        HRESULT BaseURL([in] BSTR url);
        [id(0x0000006d), propget, helpstring("Returns/sets playback start time of URL.")]
        HRESULT StartTime([out, retval] long* seconds);
        [id(0x0000006d), propput, helpstring("Returns/sets playback start time of URL.")]
        HRESULT StartTime([in] long seconds);
        [id(0x0000006a), propget, helpstring("Returns/sets the default MRL in playlist")]
        HRESULT MRL([out, retval] BSTR* MRL);
        [id(0x0000006a), propput, helpstring("Returns/sets the default MRL in playlist")]
        HRESULT MRL([in] BSTR MRL);
        [id(0x6002000a), propget, helpstring("Returns VLC Version.")]
        HRESULT VersionInfo([out, retval] BSTR* version);
        [id(0x00000064), propget, helpstring("Returns/sets a value that determines whether viewing area is visible or hidden.")]
        HRESULT Visible([out, retval] VARIANT_BOOL* Visible);
        [id(0x00000064), propput, helpstring("Returns/sets a value that determines whether viewing area is visible or hidden.")]
        HRESULT Visible([in] VARIANT_BOOL Visible);
        [id(0x00000069), propget, helpstring("Returns/sets default audio volume.")]
        HRESULT Volume([out, retval] long* Volume);
        [id(0x00000069), propput, helpstring("Returns/sets default audio volume.")]
        HRESULT Volume([in] long Volume);
        [id(0xfffffe0b), propget, helpstring("Returns/sets background color.")]
        HRESULT BackColor([out, retval] unsigned long* BackColor);
        [id(0xfffffe0b), propput, helpstring("Returns/sets background color.")]
        HRESULT BackColor([in] unsigned long BackColor);
        [id(0x0000006f), propget, helpstring("Returns/sets visibility of the toolbar")]
        HRESULT Toolbar([out, retval] VARIANT_BOOL* Visible);
        [id(0x0000006f), propput, helpstring("Returns/sets visibility of the toolbar")]
        HRESULT Toolbar([in] VARIANT_BOOL Visible);
        [id(0x60020013), propget, helpstring("Returns the audio object.")]
        HRESULT audio([out, retval] IVLCAudio** obj);
        [id(0x60020014), propget, helpstring("Returns the audio object.")]
        HRESULT input([out, retval] IVLCInput** obj);
        [id(0x60020015), propget, helpstring("Returns the playlist object.")]
        HRESULT playlist([out, retval] IVLCPlaylist** obj);
        [id(0x60020016), propget, helpstring("Returns the audio object.")]
        HRESULT subtitle([out, retval] IVLCSubtitle** obj);
        [id(0x60020017), propget, helpstring("Returns the audio object.")]
        HRESULT video([out, retval] IVLCVideo** obj);
    };

    [
      uuid(DF48072F-5EF8-434E-9B40-E2F3AE759B5F),
      helpstring("Event interface for VLC control")
    ]
    dispinterface DVLCEvents {
        properties:
        methods:
            [id(0x00000064), helpstring("Playing")]
            void play();
            [id(0x00000065), helpstring("Paused")]
            void pause();
            [id(0x00000066), helpstring("Stopped")]
            void stop();
            [id(0x000000c8), helpstring("Idle state")]
            void MediaPlayerNothingSpecial();
            [id(0x000000c9), helpstring("Opening media")]
            void MediaPlayerOpening();
            [id(0x000000ca), helpstring("Buffering media")]
            void MediaPlayerBuffering([in] long cache);
            [id(0x000000cb), helpstring("Media is playing")]
            void MediaPlayerPlaying();
            [id(0x000000cc), helpstring("Media is paused")]
            void MediaPlayerPaused();
            [id(0x000000cd), helpstring("Forward playback")]
            void MediaPlayerForward();
            [id(0x000000ce), helpstring("Backward playback")]
            void MediaPlayerBackward();
            [id(0x000000cf), helpstring("An error has been encountered")]
            void MediaPlayerEncounteredError();
            [id(0x000000d0), helpstring("End of playback reached")]
            void MediaPlayerEndReached();
            [id(0x000000d1), helpstring("Playback stopped")]
            void MediaPlayerStopped();
            [id(0x000000d2), helpstring("Time changed")]
            void MediaPlayerTimeChanged([in] long Time);
            [id(0x000000d3), helpstring("Position changed")]
            void MediaPlayerPositionchanged([in] long Position);
            [id(0x000000d4), helpstring("Seek changed")]
            void MediaPlayerSeekableChanged([in] VARIANT_BOOL seekable);
            [id(0x000000d5), helpstring("Pause setting changed")]
            void MediaPlayerPausableChanged([in] VARIANT_BOOL pausable);
    };

    typedef [public]
    VLCPlaylistMode eVLCPlaylistMode;

    typedef enum {
        VLCPlayListInsert = 1,
        VLCPlayListInsertAndGo = 9,
        VLCPlayListReplace = 2,
        VLCPlayListReplaceAndGo = 10,
        VLCPlayListAppend = 4,
        VLCPlayListAppendAndGo = 12,
        VLCPlayListCheckInsert = 16
    } VLCPlaylistMode;

    [
      uuid(E23FE9C6-778E-49D4-B537-38FCDE4887D8),
      helpstring("VLC control (deprecated)"),
      control
    ]
    coclass VLCPlugin {
        [default] interface IVLCControl;
        interface IVLCControl2;
        [default, source] dispinterface DVLCEvents;
    };

    [
      uuid(9BE31822-FDAD-461B-AD51-BE1D1C159921),
      helpstring("VLC control"),
      control
    ]
    coclass VLCPlugin2 {
        [default] interface IVLCControl2;
        interface IVLCControl;
        [default, source] dispinterface DVLCEvents;
    };
};

Share this post


Link to post
Share on other sites

Hi Ptrex, I know it is quite an old thread but by the way, is it possible to capture a video stream? 

thanks a lot and regards.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...