<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.videolan.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=PaulTOTH</id>
	<title>VideoLAN Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.videolan.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=PaulTOTH"/>
	<link rel="alternate" type="text/html" href="https://wiki.videolan.org/Special:Contributions/PaulTOTH/"/>
	<updated>2026-11-04T16:41:49Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Talk:ExternalAPI&amp;diff=13902</id>
		<title>Talk:ExternalAPI</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Talk:ExternalAPI&amp;diff=13902"/>
		<updated>2009-05-03T18:38:34Z</updated>

		<summary type="html">&lt;p&gt;PaulTOTH: Delphi port&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Comments &lt;br /&gt;
&lt;br /&gt;
== Exception ==&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;libvcl_exception * libvlc_exception_create(void)&amp;quot; function should be great.&lt;br /&gt;
Actualy, the API let use an opaque exception structure but you need to know the structure size anyway !&lt;br /&gt;
&lt;br /&gt;
== Vout ==&lt;br /&gt;
&lt;br /&gt;
toggle_fullscreen() is useless from an embedder point of view: if I am writing an application, I need to set the movie fullscreen or not. Which makes me think that the same reasoning should apply to audio_mute: we should rather have set_mute/get_mute: the status of mute is of interest for an application developer.&lt;br /&gt;
&lt;br /&gt;
[[Zorglub]] Yes. I was thinking about actually putting both options for simplicity.&lt;br /&gt;
&lt;br /&gt;
[[OlivierAubert]] Both options can be a little redundant, but it does not cost much anyway.&lt;br /&gt;
&lt;br /&gt;
== Playlist ==&lt;br /&gt;
&lt;br /&gt;
[[Zorglub]] I don&#039;t really know how to handle playlist retrieval as VLC playlist is not a simple list ...&lt;br /&gt;
&lt;br /&gt;
[[OlivierAubert]] Yes, but it is a needed functionality anyway. We can defined a flattened view of the  playlist, which will not exactly map to the playlist but be a reasonable view.&lt;br /&gt;
&lt;br /&gt;
== VLM ==&lt;br /&gt;
&lt;br /&gt;
[[Dionoea]] Something like libvlc_vlm_cmd( libvlc_instance *, char *cmd, libvlc_exception ) could be usefull. This would let the enduser do whatever he wants with vlm easily.&lt;br /&gt;
&lt;br /&gt;
== autogeneration? ==&lt;br /&gt;
&lt;br /&gt;
I have been cutting and pasting out of this page into my code, and a number of the function names and arguments are slightly wrong.  I have corrected a few.  Is there a way to autogenerate *just* these API calls out of the sources? [[User:Davidlallen|Davidlallen]] 22:57, 20 August 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
It is possible to have a look to the doxygen [http://www.videolan.org/developers/vlc/doc/doxygen/html/group__libvlc.html autogenerated documentation] to have up-to-date names extracted from the source code. Copy as text the first part (summary docs), paste into a file, then apply a &amp;lt;code&amp;gt;grep -v &#039;^ &#039;&amp;lt;/code&amp;gt; on this file and you will have a quite good listing of its API. [[User:Thannoy/stripped_Libvlc_API| Here]] is a fast (not perfect) generation. --[[User:Thannoy|Thannoy]] 11:29, 1 March 2008 (CET)&lt;br /&gt;
&lt;br /&gt;
== Delphi port ==&lt;br /&gt;
VLC API as changed a lot seens I&#039;ve made the Delphi port...but there&#039;s no up to date documentation of the new API so I will not update my code...in fact, I&#039;ve tried with last release (0.9.9) with both this Wiki and doxygen, but libvlc_new() just hang the application after some debug messages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
program VLC99;&lt;br /&gt;
&lt;br /&gt;
{$APPTYPE CONSOLE}&lt;br /&gt;
&lt;br /&gt;
uses&lt;br /&gt;
  Windows;&lt;br /&gt;
&lt;br /&gt;
function getLibPath: string;&lt;br /&gt;
var&lt;br /&gt;
  Handle: HKEY;&lt;br /&gt;
  RegType: Integer;&lt;br /&gt;
  DataSize: Integer;&lt;br /&gt;
begin&lt;br /&gt;
  Result := &#039;&#039;;&lt;br /&gt;
  if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, &#039;Software\VideoLAN\VLC&#039;, 0, KEY_ALL_ACCESS, Handle) = ERROR_SUCCESS) then&lt;br /&gt;
  begin&lt;br /&gt;
    if RegQueryValueEx(Handle, &#039;InstallDir&#039;, nil, @RegType, nil, @DataSize) = ERROR_SUCCESS then&lt;br /&gt;
    begin&lt;br /&gt;
      SetLength(Result, Datasize);&lt;br /&gt;
      RegQueryValueEx(Handle, &#039;InstallDir&#039;, nil, @RegType, PByte(@Result[1]), @DataSize);&lt;br /&gt;
      Result[DataSize]:=&#039;\&#039;;&lt;br /&gt;
    end;&lt;br /&gt;
    RegCloseKey(Handle);&lt;br /&gt;
  end;&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
type&lt;br /&gt;
  libvlc_exception = record&lt;br /&gt;
    raised : Integer;&lt;br /&gt;
    code   : Integer;&lt;br /&gt;
    Msg    : PChar;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
var&lt;br /&gt;
  path    : string;&lt;br /&gt;
  lib     : THandle;&lt;br /&gt;
  core    : THandle;&lt;br /&gt;
  init    : function(argc: Integer; args: PPChar; var excpt: libvlc_exception): Pointer; cdecl;&lt;br /&gt;
  args    : array[0..1] of PChar;&lt;br /&gt;
  plugins : string;&lt;br /&gt;
  excpt   : libvlc_exception;&lt;br /&gt;
  vlc     : Pointer;&lt;br /&gt;
begin&lt;br /&gt;
  path := getLibPath;&lt;br /&gt;
  // load core dll first&lt;br /&gt;
  core := LoadLibrary(PChar(path + &#039;libvlccore.dll&#039;));&lt;br /&gt;
  if core = 0 then&lt;br /&gt;
    WriteLn(&#039;can&#039;&#039;t load libvlccore&#039;);&lt;br /&gt;
  lib := LoadLibrary(PChar(path + &#039;libvlc.dll&#039;));&lt;br /&gt;
  if lib = 0 then&lt;br /&gt;
    WriteLn(&#039;can&#039;&#039;t load libvlc&#039;);&lt;br /&gt;
  @init := GetProcAddress(lib, &#039;libvlc_new&#039;);&lt;br /&gt;
  if @init = nil then&lt;br /&gt;
    WriteLn(&#039;can&#039;&#039;t find libvlc_new()&#039;)&lt;br /&gt;
  else&lt;br /&gt;
  begin&lt;br /&gt;
    FillChar(excpt, SizeOf(excpt), 0);&lt;br /&gt;
    plugins := &#039;--plugin-path=&#039; + path + &#039;plugins&#039;;&lt;br /&gt;
    args[0] := PChar(plugins);&lt;br /&gt;
    args[1] := nil;&lt;br /&gt;
    vlc := init(1, @args[0], excpt);&lt;br /&gt;
    WriteLn(&#039;never executed !&#039;); // :(&lt;br /&gt;
  end;&lt;br /&gt;
  WriteLn(&#039;done&#039;);&lt;br /&gt;
  ReadLn;&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
just display this and never return to the calling delphi application :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[00000001] main libvlc debug: VLC media player - version 0.9.9 Grishenko - (c) 1&lt;br /&gt;
996-2009 the VideoLAN team&lt;br /&gt;
[00000001] main libvlc debug: libvlc was configured with ../configure  &#039;--host=i&lt;br /&gt;
586-mingw32msvc&#039; &#039;--build=i386-linux&#039; &#039;--enable-mkv&#039; &#039;--enable-release&#039; &#039;--witho&lt;br /&gt;
ut-contrib&#039; &#039;--enable-nls&#039; &#039;--enable-shared-libvlc&#039; &#039;--enable-update-check&#039; &#039;--e&lt;br /&gt;
nable-lua&#039; &#039;--enable-faad&#039; &#039;--enable-flac&#039; &#039;--enable-theora&#039; &#039;--enable-twolame&#039;&lt;br /&gt;
&#039;--enable-quicktime&#039; &#039;--enable-real&#039; &#039;--enable-realrtsp&#039; &#039;--enable-ffmpeg&#039; &#039;--wi&lt;br /&gt;
th-ffmpeg-mp3lame&#039; &#039;--with-ffmpeg-faac&#039; &#039;--with-ffmpeg-config-path=/usr/win32/bi&lt;br /&gt;
n&#039; &#039;--with-ffmpeg-zlib&#039; &#039;--enable-live555&#039; &#039;--with-live555-tree=/usr/win32/live.&lt;br /&gt;
com&#039; &#039;--en&lt;br /&gt;
[00000001] main libvlc debug: translation test: code is &amp;quot;C&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--[[User:PaulTOTH|PaulTOTH]] 20:38, 3 May 2009 (CEST)&lt;/div&gt;</summary>
		<author><name>PaulTOTH</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Talk:ExternalAPI&amp;diff=8567</id>
		<title>Talk:ExternalAPI</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Talk:ExternalAPI&amp;diff=8567"/>
		<updated>2007-05-08T11:16:31Z</updated>

		<summary type="html">&lt;p&gt;PaulTOTH: /* Vout */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Comments &lt;br /&gt;
&lt;br /&gt;
== Exception ==&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;libvcl_exception * libvlc_exception_create(void)&amp;quot; function should be great.&lt;br /&gt;
Actualy, the API let use an opaque exception structure but you need to know the structure size anyway !&lt;br /&gt;
&lt;br /&gt;
== Vout ==&lt;br /&gt;
&lt;br /&gt;
toggle_fullscreen() is useless from an embedder point of view: if I am writing an application, I need to set the movie fullscreen or not. Which makes me think that the same reasoning should apply to audio_mute: we should rather have set_mute/get_mute: the status of mute is of interest for an application developer.&lt;br /&gt;
&lt;br /&gt;
[[Zorglub]] Yes. I was thinking about actually putting both options for simplicity.&lt;br /&gt;
&lt;br /&gt;
[[OlivierAubert]] Both options can be a little redundant, but it does not cost much anyway.&lt;br /&gt;
&lt;br /&gt;
== Playlist ==&lt;br /&gt;
&lt;br /&gt;
[[Zorglub]] I don&#039;t really know how to handle playlist retrieval as VLC playlist is not a simple list ...&lt;br /&gt;
&lt;br /&gt;
[[OlivierAubert]] Yes, but it is a needed functionality anyway. We can defined a flattened view of the  playlist, which will not exactly map to the playlist but be a reasonable view.&lt;br /&gt;
&lt;br /&gt;
== VLM ==&lt;br /&gt;
&lt;br /&gt;
[[Dionoea]] Something like libvlc_vlm_cmd( libvlc_instance *, char *cmd, libvlc_exception ) could be usefull. This would let the enduser do whatever he wants with vlm easily.&lt;/div&gt;</summary>
		<author><name>PaulTOTH</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Talk:ActiveX/Delphi&amp;diff=6158</id>
		<title>Talk:ActiveX/Delphi</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Talk:ActiveX/Delphi&amp;diff=6158"/>
		<updated>2006-12-06T10:49:34Z</updated>

		<summary type="html">&lt;p&gt;PaulTOTH: /* To author: */  ExternalAPI&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Thanks to the article&#039;s author ==&lt;br /&gt;
&lt;br /&gt;
I would like to extend my deepest thanks to the author of this article for simplifying the process of integrating VLC into the Delphi mainstream.&lt;br /&gt;
&lt;br /&gt;
I find the tips in this article most helpful, and love the VideoLAN system immensley.&lt;br /&gt;
&lt;br /&gt;
Simon&lt;br /&gt;
&lt;br /&gt;
== To author: ==&lt;br /&gt;
&lt;br /&gt;
Thank you for your time and effort. Would it be too much to ask you to give us guidelines how to stream files using Delphi and ActiveX component?&lt;br /&gt;
: &#039;&#039;(unsigned by [[Derran]])&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== VLC and Delphi ==&lt;br /&gt;
&lt;br /&gt;
Delphi can also use the [[ExternalAPI]] like in [http://tothpaul.free.fr/sources.php?dprgrp.vld VideoLAN for Delphi] :D&lt;br /&gt;
&lt;br /&gt;
 { val:TValue }&lt;br /&gt;
 val.AsInteger := IntToStr(Panel1.Width);&lt;br /&gt;
 VLCLib.VLC_VariableSet(&#039;conf::width&#039;,val);&lt;br /&gt;
 val.AsInteger := inttostr(Panel1.Height);&lt;br /&gt;
 VLCLib.VLC_VariableSet(&#039;conf::height&#039;,val);&lt;br /&gt;
&lt;br /&gt;
== Controlling the size and client panel ==&lt;br /&gt;
&lt;br /&gt;
The ActiveX runs like a champ, but it wants to create its own window to display. I need it to show on a panel (or anything else to set size and position) within an application. I was able to set the size by:&lt;br /&gt;
  val := inttostr(Panel1.Width);&lt;br /&gt;
  VLCPlugin1.setVariable(&#039;conf::width&#039;,val);&lt;br /&gt;
  val := inttostr(Panel1.Height);&lt;br /&gt;
  VLCPlugin1.setVariable(&#039;conf::height&#039;,val);&lt;br /&gt;
&lt;br /&gt;
But this results in no display:&lt;br /&gt;
  val := inttostr(Panel1.Handle);&lt;br /&gt;
  VLCPlugin1.setVariable(&#039;drawable&#039;,val);&lt;br /&gt;
&lt;br /&gt;
You can hear the sound when you continue with:&lt;br /&gt;
  VLCPlugin1.addTarget(OpenDialog.FileName, null, $1, 0);&lt;br /&gt;
  VLCPlugin1.play;&lt;br /&gt;
&lt;br /&gt;
The &#039;drawable&#039; variable is evidently not right, but it doesn&#039;t kick a compile error.&lt;br /&gt;
What is the correct variable? Or is there a whole different way I should be doing this?&lt;br /&gt;
Thanks.&lt;/div&gt;</summary>
		<author><name>PaulTOTH</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=ActiveX/Delphi&amp;diff=5559</id>
		<title>ActiveX/Delphi</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=ActiveX/Delphi&amp;diff=5559"/>
		<updated>2006-09-14T09:23:37Z</updated>

		<summary type="html">&lt;p&gt;PaulTOTH: /* Alternative way to bring VLC to your Delphi Application */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{howto| use the [[ActiveX]] control with Delphi}}  &lt;br /&gt;
&lt;br /&gt;
==Getting started==&lt;br /&gt;
===What you need===&lt;br /&gt;
* Borland Delphi 3 or newer&lt;br /&gt;
* a running System with Microsoft Windows&lt;br /&gt;
* [http://www.videolan.org/ VideoLan] including the [[ActiveX]] Plugin installed&lt;br /&gt;
&lt;br /&gt;
===Import the ActiveX-Component===&lt;br /&gt;
*Start your Borland Delphi&lt;br /&gt;
*&amp;lt; Delphi2005: Select Components --&amp;gt; Import ActiveX --&amp;gt; VideoLan VLC ActiveX Plugin&lt;br /&gt;
*&amp;gt;= Delphi 2006: Select Components --&amp;gt; Import component --&amp;gt; Import ActiveX Control --&amp;gt; VideoLan VLC ActiveX Plugin&lt;br /&gt;
*Otherwise try creating a new package using the created &#039;&#039;AXVLC_TLB.pas&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Confirm successfull installation===&lt;br /&gt;
*You should now be able to add the &#039;&#039;TVLCPlugin&#039;&#039; from the ActiveX-Tab of your Component toolbox.&lt;br /&gt;
&lt;br /&gt;
==Usage Development-Time==&lt;br /&gt;
The VLC-Player Object &#039;&#039;TVLCPlugin&#039;&#039; can be found in your ActiveX-Components Tabsheet.&lt;br /&gt;
Place one of it in your Form1, place a TButton and use the following code:&lt;br /&gt;
&lt;br /&gt;
 unit Unit1;&lt;br /&gt;
 &lt;br /&gt;
 interface&lt;br /&gt;
 &lt;br /&gt;
 uses&lt;br /&gt;
   Windows, Variants, Forms, Classes, Controls, StdCtrls, OleCtrls,&lt;br /&gt;
   AXVLC_TLB;&lt;br /&gt;
 &lt;br /&gt;
 type&lt;br /&gt;
   TForm1 = class(TForm)&lt;br /&gt;
     VLCPlugin1: TVLCPlugin;&lt;br /&gt;
     Button1: TButton;&lt;br /&gt;
     procedure Button1Click(Sender: TObject);&lt;br /&gt;
   private&lt;br /&gt;
     { Private-Deklarationen }&lt;br /&gt;
   public&lt;br /&gt;
     { Public-Deklarationen }&lt;br /&gt;
   end;&lt;br /&gt;
 &lt;br /&gt;
 type&lt;br /&gt;
   VLCPlaylistMode = TOleEnum;&lt;br /&gt;
 &lt;br /&gt;
 const&lt;br /&gt;
   VLCPlayListInsert      = $00000001;&lt;br /&gt;
   VLCPlayListReplace     = $00000002;&lt;br /&gt;
   VLCPlayListAppend      = $00000004;&lt;br /&gt;
   VLCPlayListGo          = $00000008;&lt;br /&gt;
   VLCPlayListCheckInsert = $00000010;&lt;br /&gt;
 &lt;br /&gt;
 var&lt;br /&gt;
   Form1: TForm1;&lt;br /&gt;
 &lt;br /&gt;
 implementation&lt;br /&gt;
 &lt;br /&gt;
 {$R *.dfm}&lt;br /&gt;
 &lt;br /&gt;
 procedure TForm1.Button1Click(Sender: TObject);&lt;br /&gt;
 begin&lt;br /&gt;
   VLCPlugin1.addTarget(&#039;C:\video.mpg&#039;, null, VLCPlayListInsert, 0);&lt;br /&gt;
   // you can use any MRL with parameters instead of &#039;c:\video.mpg&#039; here&lt;br /&gt;
   VLCPlugin1.play;&lt;br /&gt;
 end;&lt;br /&gt;
 &lt;br /&gt;
 end.&lt;br /&gt;
&lt;br /&gt;
==Usage Runtime==&lt;br /&gt;
If you&#039;re planning to use the VLC-Player in your application but don&#039;t know when and where, use this code to create the component on-demand.&lt;br /&gt;
&lt;br /&gt;
 unit Unit1;&lt;br /&gt;
 &lt;br /&gt;
 interface&lt;br /&gt;
 &lt;br /&gt;
 uses&lt;br /&gt;
   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, OleCtrls,&lt;br /&gt;
   AXVLC_TLB, StdCtrls, Registry, Dialogs;&lt;br /&gt;
 &lt;br /&gt;
 type&lt;br /&gt;
   TForm1 = class(TForm)&lt;br /&gt;
     Button1: TButton;&lt;br /&gt;
     Button2: TButton;&lt;br /&gt;
     procedure Button2Click(Sender: TObject);&lt;br /&gt;
     procedure Button1Click(Sender: TObject);&lt;br /&gt;
   private&lt;br /&gt;
     { Private-Deklarationen }&lt;br /&gt;
   public&lt;br /&gt;
     { Public-Deklarationen }&lt;br /&gt;
   end;&lt;br /&gt;
 &lt;br /&gt;
 var&lt;br /&gt;
   Form1: TForm1;&lt;br /&gt;
   VLCPlugin1: TVLCPlugin;&lt;br /&gt;
   blVLCPluginFound: boolean;&lt;br /&gt;
 &lt;br /&gt;
 type&lt;br /&gt;
   VLCPlaylistMode = TOleEnum;&lt;br /&gt;
 &lt;br /&gt;
 const&lt;br /&gt;
   VLCPlayListInsert      = $00000001;&lt;br /&gt;
   VLCPlayListReplace     = $00000002;&lt;br /&gt;
   VLCPlayListAppend      = $00000004;&lt;br /&gt;
   VLCPlayListGo          = $00000008;&lt;br /&gt;
   VLCPlayListCheckInsert = $00000010;&lt;br /&gt;
 &lt;br /&gt;
 implementation&lt;br /&gt;
 &lt;br /&gt;
 {$R *.dfm}&lt;br /&gt;
 &lt;br /&gt;
 procedure TForm1.Button1Click(Sender: TObject);&lt;br /&gt;
 var&lt;br /&gt;
   Reg: TRegistry;&lt;br /&gt;
 begin&lt;br /&gt;
   blVLCPluginFound := false;&lt;br /&gt;
 &lt;br /&gt;
   // Is VLC ActiveX Plugin installed on this PC?&lt;br /&gt;
   Reg := TRegistry.Create;&lt;br /&gt;
   try&lt;br /&gt;
     Reg.RootKey := HKEY_LOCAL_MACHINE;&lt;br /&gt;
     if Reg.OpenKeyReadOnly(&#039;\Software\Classes\VideoLAN.VLCPlugin.1\&#039;) then begin&lt;br /&gt;
         blVLCPluginFound := true;&lt;br /&gt;
     end;&lt;br /&gt;
   finally&lt;br /&gt;
     FreeAndNil(Reg);&lt;br /&gt;
   end;&lt;br /&gt;
 &lt;br /&gt;
   if blVLCPluginFound then begin&lt;br /&gt;
     VLCPlugin1 := TVLCPlugin.Create(Self);&lt;br /&gt;
     VLCPlugin1.Parent := Self; // Means: Place the VLC-Player into Form1&lt;br /&gt;
     VLCPlugin1.Width  := 400;&lt;br /&gt;
     VLCPlugin1.Height := 300;&lt;br /&gt;
     VLCPlugin1.Top  := 50;&lt;br /&gt;
     VLCPlugin1.Left := 50;&lt;br /&gt;
     VLCPlugin1.Show;&lt;br /&gt;
     VLCPlugin1.addTarget(&#039;C:\video.mpg&#039;, null, VLCPlayListInsert, 0);&lt;br /&gt;
     // you can use any MRL with parameters instead of &#039;c:\video.mpg&#039; here&lt;br /&gt;
     VLCPlugin1.play;&lt;br /&gt;
   end else begin&lt;br /&gt;
     ShowMessage(&#039;I am really sorry, but VLC (or its ActiveX Plugin) is currently not installed on this PC!&#039;);&lt;br /&gt;
   end;&lt;br /&gt;
 end;&lt;br /&gt;
 &lt;br /&gt;
 procedure TForm1.Button2Click(Sender: TObject);&lt;br /&gt;
 begin&lt;br /&gt;
   if blVLCPluginFound then begin&lt;br /&gt;
     VLCPlugin1.stop;&lt;br /&gt;
     FreeAndNil(VLCPlugin1);&lt;br /&gt;
   end;&lt;br /&gt;
 end;&lt;br /&gt;
 &lt;br /&gt;
 end.&lt;br /&gt;
&lt;br /&gt;
==Alternative way to bring VLC to your Delphi Application==&lt;br /&gt;
Much easier way to bring VLC to your Delphi Application is to paste a TWebbrowser Object in your Form, is generate Code for the HTML and m3u file and let the Webbrowser load the HTML-file. For detailed information have a look at [[ActiveX/HTML]].&lt;br /&gt;
&lt;br /&gt;
You can also use the [[ExternalAPI]] like in [[http://tothpaul.free.fr/sources.php?dprgrp.vld VideoLAN for Delphi]].&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
[[ActiveX/HTML]]&lt;/div&gt;</summary>
		<author><name>PaulTOTH</name></author>
	</entry>
</feed>