]> git.sesse.net Git - vlc/commitdiff
Remove activex project
authorRafaël Carré <rafael.carre@gmail.com>
Tue, 19 Oct 2010 20:19:20 +0000 (22:19 +0200)
committerRafaël Carré <rafael.carre@gmail.com>
Tue, 19 Oct 2010 20:21:54 +0000 (22:21 +0200)
It is now available at git://git.videolan.org/activex-vlc.git
Fetch, configure, and build it when making windows packages

Modify npapi-vlc dependencies, and move install of the dll in
package-win-common rule

Pass $(SHELL) to npapi & activex ./configure to be sure they pick
/bin/bash and not /bin/sh (which might be incompatible with libtool)

58 files changed:
Makefile.am
configure.ac
extras/package/activex.am [new file with mode: 0644]
extras/package/npapi.am
extras/package/win32/configure-common.sh
extras/package/win32/configure-mingw64.sh
extras/package/win32/vlc.win32.nsi.in
projects/activex/.gitignore [deleted file]
projects/activex/Makefile.am [deleted file]
projects/activex/README.TXT [deleted file]
projects/activex/axvlc.def [deleted file]
projects/activex/axvlc.dll.manifest [deleted file]
projects/activex/axvlc.idl [deleted file]
projects/activex/axvlc.inf.in [deleted file]
projects/activex/axvlc.tlb [deleted file]
projects/activex/axvlc_idl.c [deleted file]
projects/activex/axvlc_idl.h [deleted file]
projects/activex/axvlc_rc.rc.in [deleted file]
projects/activex/connectioncontainer.cpp [deleted file]
projects/activex/connectioncontainer.h [deleted file]
projects/activex/dataobject.cpp [deleted file]
projects/activex/dataobject.h [deleted file]
projects/activex/guiddef.h [deleted file]
projects/activex/inplace.bmp [deleted file]
projects/activex/main.cpp [deleted file]
projects/activex/objectsafety.cpp [deleted file]
projects/activex/objectsafety.h [deleted file]
projects/activex/olecontrol.cpp [deleted file]
projects/activex/olecontrol.h [deleted file]
projects/activex/oleinplaceactiveobject.cpp [deleted file]
projects/activex/oleinplaceactiveobject.h [deleted file]
projects/activex/oleinplaceobject.cpp [deleted file]
projects/activex/oleinplaceobject.h [deleted file]
projects/activex/oleobject.cpp [deleted file]
projects/activex/oleobject.h [deleted file]
projects/activex/persistpropbag.cpp [deleted file]
projects/activex/persistpropbag.h [deleted file]
projects/activex/persiststorage.cpp [deleted file]
projects/activex/persiststorage.h [deleted file]
projects/activex/persiststreaminit.cpp [deleted file]
projects/activex/persiststreaminit.h [deleted file]
projects/activex/plugin.cpp [deleted file]
projects/activex/plugin.h [deleted file]
projects/activex/position.h [deleted file]
projects/activex/provideclassinfo.cpp [deleted file]
projects/activex/provideclassinfo.h [deleted file]
projects/activex/supporterrorinfo.cpp [deleted file]
projects/activex/supporterrorinfo.h [deleted file]
projects/activex/test.html [deleted file]
projects/activex/utils.cpp [deleted file]
projects/activex/utils.h [deleted file]
projects/activex/viewobject.cpp [deleted file]
projects/activex/viewobject.h [deleted file]
projects/activex/vlc16x16.bmp [deleted file]
projects/activex/vlccontrol.cpp [deleted file]
projects/activex/vlccontrol.h [deleted file]
projects/activex/vlccontrol2.cpp [deleted file]
projects/activex/vlccontrol2.h [deleted file]

index caf3d71de604ac773d7167bb95c1d04e678e0f62..7b63bcfcce11a1cf4dc0370fbc8e17b2797507c7 100644 (file)
@@ -9,8 +9,7 @@
 #  - libs/* are needed by modules
 BASE_SUBDIRS = po compat src bin modules share doc test
 EXTRA_SUBDIRS = m4 \
-       libs/loader libs/srtp libs/unzip \
-       projects/activex
+       libs/loader libs/srtp libs/unzip
 DIST_SUBDIRS = $(BASE_SUBDIRS) $(EXTRA_SUBDIRS)
 
 SUBDIRS = po compat src
@@ -29,9 +28,6 @@ if BUILD_VLC
 SUBDIRS += bin
 endif
 SUBDIRS += modules share doc test
-if BUILD_ACTIVEX
-SUBDIRS += projects/activex
-endif
 
 EXTRA_DIST = \
        HACKING \
@@ -697,10 +693,11 @@ win32_xpi_destdir=$(win32_destdir)/vlc-plugin
 
 if HAVE_WIN32
 include extras/package/npapi.am
+include extras/package/activex.am
 endif
 
 #Win-common is for win32 and wince
-package-win-common: install
+package-win-common: install build-npapi build-activex
 # Check that tmp isn't in the way
        @if test -e "$(win32_destdir)"; then \
            echo "Error: please remove $(win32_destdir), it is in the way"; \
@@ -796,8 +793,11 @@ if BUILD_OSDMENU
                rm -f -- "$$file.tmp"; \
        done
 endif
-if BUILD_ACTIVEX
-       cp $(top_srcdir)/projects/activex/axvlc.dll.manifest $(win32_destdir)
+if !HAVE_WIN64
+       cp "$(top_builddir)/activex-vlc/src/axvlc.dll.manifest" "$(win32_destdir)/"
+       cp "$(top_builddir)/activex-vlc/installed/lib/axvlc.dll" "$(win32_destdir)/"
+       cp "$(top_builddir)/npapi-vlc/src/npvlc.dll.manifest" "$(win32_destdir)/"
+       cp "$(top_builddir)/npapi-vlc/installed/lib/npvlc.dll" "$(win32_destdir)/"
 endif
 
 # SDK
@@ -806,10 +806,10 @@ endif
        cp -r $(destdir)/lib/pkgconfig "$(win32_destdir)/sdk/lib"
        for file in libvlc.dll.a libvlc.la libvlccore.dll.a libvlccore.la; do \
         cp -r $(destdir)/lib/$$file "$(win32_destdir)/sdk/lib"; done
-if BUILD_ACTIVEX
+if !HAVE_WIN64
        mkdir -p "$(win32_destdir)/sdk/activex"
-       cp $(srcdir)/projects/activex/README.TXT $(win32_destdir)/sdk/activex/
-       cp $(srcdir)/projects/activex/test.html $(win32_destdir)/sdk/activex/
+       cp $(top_builddir)/activex-vlc/README $(win32_destdir)/sdk/activex/README.TXT
+       cp $(top_builddir)/activex-vlc/src/test.html $(win32_destdir)/sdk/activex/
 endif
 
        find $(win32_destdir) -type f \( -name "*xml" -or -name "*html" -or -name '*js' -or -name '*css' -or -name '*hosts' -or -iname '*txt' -or -name '*.cfg' -or -name '*.lua' \) -exec $(U2D) {} \;
@@ -829,36 +829,32 @@ package-win-base: package-win-common
          fi ; \
        done
 
-package-win32-webplugin-common: package-win-base build-npapi
+package-win32-webplugin-common: package-win-base
        mkdir -p "$(win32_xpi_destdir)/plugins"
        find $(destdir) -maxdepth 4 -name "*$(LIBEXT)" -exec cp {} "$(win32_xpi_destdir)/" \;
 if !HAVE_WIN64
-       cp $(top_srcdir)/npapi-vlc/src/npvlc.dll.manifest "$(win32_xpi_destdir)/plugins"
+       cp $(top_builddir)/npapi-vlc/src/npvlc.dll.manifest "$(win32_xpi_destdir)/plugins"
 endif
        cp "$(top_srcdir)/extras/package/win32/libvlc.dll.manifest" "$(win32_xpi_destdir)/plugins"
        cp -r $(win32_destdir)/plugins/ "$(win32_xpi_destdir)/plugins"
        rm -rf "$(win32_xpi_destdir)/plugins/plugins/*qt*"
        rm -rf "$(win32_xpi_destdir)/plugins/plugins/*skins*"
 
-package-win32-xpi: package-win32-webplugin-common build-npapi
+package-win32-xpi: package-win32-webplugin-common
 if !HAVE_WIN64
        cp $(top_builddir)/npapi-vlc/src/install.rdf "$(win32_xpi_destdir)"
        cd $(win32_xpi_destdir) && zip -r "../vlc-$(VERSION).xpi" install.rdf plugins
 endif
 
-package-win32-crx: package-win32-webplugin-common build-npapi
+package-win32-crx: package-win32-webplugin-common
 if !HAVE_WIN64
        cp $(top_builddir)/npapi-vlc/src/manifest.json "$(win32_xpi_destdir)"
        crxmake --pack-extension "$(win32_xpi_destdir)" \
                --extension-output "$(win32_destdir)/vlc-$(VERSION).crx" --ignore-file install.rdf
 endif
 
-package-win32-base-exe: package-win-base build-npapi
+package-win32-base-exe: package-win-base
 # Script installer
-if !HAVE_WIN64
-       cp "$(top_builddir)/npapi-vlc/installed/lib/npvlc.dll" "$(win32_destdir)/"
-       cp "$(top_builddir)/npapi-vlc/src/npvlc.dll.manifest" "$(win32_destdir)/"
-endif
        cp "$(top_builddir)/extras/package/win32/vlc.win32.nsi" "$(win32_destdir)/"
        cp "$(top_builddir)/extras/package/win32/spad.nsi" "$(win32_destdir)/"
        mkdir "$(win32_destdir)/languages"
index 6c8a5623752523db77568a86d0f508696bb13693..c876727313069b35f7ae7607c94b3b443d8e1540 100644 (file)
@@ -313,7 +313,7 @@ case "${host_os}" in
         # add ws2_32 for closesocket, select, recv
         VLC_ADD_LIBS([libvlccore],[-lws2_32 -lnetapi32 -lwinmm])
         VLC_ADD_LDFLAGS([vlc],[-mwindows])
-        VLC_ADD_LIBS([activex win32text],[-lgdi32])
+        VLC_ADD_LIBS([win32text],[-lgdi32])
         VLC_ADD_LIBS([cdda vcdx sdl_image aout_sdl vout_sdl],[-lwinmm])
         VLC_ADD_LIBS([access_http access_mms access_udp access_tcp access_ftp access_rtmp access_output_udp access_output_shout access_output_rtmp sap oldhttp stream_out_standard stream_out_rtp stream_out_raop vod_rtsp access_realrtsp rtp oldrc netsync gnutls growl_udp flac ts audioscrobbler lua remoteosd zvbi audiobargraph_a netsync],[-lws2_32])
         VLC_ADD_LIBS([filesystem], [-lshlwapi])
@@ -4242,57 +4242,6 @@ AC_ARG_ENABLE(vlc,
   [  --enable-vlc            build the VLC media player (default enabled)])
 AM_CONDITIONAL(BUILD_VLC, [test "${enable_vlc}" != "no"])
 
-dnl
-dnl  Microsoft ActiveX support
-dnl
-activex=false
-AC_ARG_ENABLE(activex,
-  AS_HELP_STRING([--enable-activex],[build a vlc-based ActiveX control
-                 (default enabled on Win32)]))
-AC_ARG_WITH(wine-sdk-path,
-  [  --with-wine-sdk-path=PATH path to wine sdk])
-if test "${enable_activex}" != "no"
-then
-  if test "${SYS}" = "mingw32"
-  then
-    AC_CHECK_PROGS(MIDL, [midl], no)
-    if test "${with_wine_sdk_path}" != ""
-    then
-       WINE_SDK_PATH=${with_wine_sdk_path}
-       AC_PATH_PROG(WIDL, widl, no, [$WINE_SDK_PATH/bin:$WINE_SDK_PATH/tools/widl])
-    else
-       WIDL=no
-    fi
-    AC_LANG_PUSH(C++)
-    AC_CHECK_HEADERS(ole2.h,
-      [AC_CHECK_HEADERS(olectl.h,
-        [ VLC_ADD_CPPFLAGS([activex],[-DUNICODE -D_UNICODE -D_MIDL_USE_GUIDDEF_])
-          VLC_ADD_CXXFLAGS([activex],[-fno-exceptions])
-          VLC_ADD_LIBS([activex],[-lole32 -loleaut32 -luuid -lshlwapi])
-          AC_CHECK_HEADERS(objsafe.h,
-            VLC_ADD_CXXFLAGS([activex],[-DHAVE_OBJSAFE_HEADER]),,
-            [
-             #if HAVE_OLE2_H
-             #   include <ole2.h>
-             #endif
-            ]
-          )
-          activex=:
-          PLUGINS_BINDINGS="${PLUGINS_BINDINGS} activex"
-        ],
-        [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
-      )],
-      [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
-    )
-    AC_LANG_POP(C++)
-  fi
-fi
-AC_ARG_VAR(MIDL, [Microsoft IDL compiler (Win32 platform only)])
-AM_CONDITIONAL(HAS_MIDL_COMPILER, test "${MIDL}" != "no")
-AC_ARG_VAR(WIDL, [Wine IDL compiler (requires Wine SDK)])
-AM_CONDITIONAL(HAS_WIDL_COMPILER, test "${WIDL}" != "no")
-AM_CONDITIONAL(BUILD_ACTIVEX,${activex})
-
 
 dnl
 dnl  Plugin and builtin checks
@@ -4394,7 +4343,6 @@ VLC_OUTPUT_VLC_CONFIG_IN
 
 AC_CONFIG_FILES([
   Makefile
-  projects/activex/Makefile
   doc/Makefile
   libs/loader/Makefile
   libs/srtp/Makefile
@@ -4490,12 +4438,6 @@ AM_COND_IF([HAVE_WIN32], [
     extras/package/win32/spad.nsi
     extras/package/win32/vlc.win32.nsi
   ])
-  AM_COND_IF([BUILD_ACTIVEX], [
-    AC_CONFIG_FILES([
-      projects/activex/axvlc.inf
-      projects/activex/axvlc_rc.rc
-    ])
-  ])
 ])
 
 AM_COND_IF([HAVE_DARWIN], [
diff --git a/extras/package/activex.am b/extras/package/activex.am
new file mode 100644 (file)
index 0000000..fa8e560
--- /dev/null
@@ -0,0 +1,38 @@
+#! /usr/bin/make -f
+
+if HAVE_WIN64
+build-activex:
+       touch $@
+else
+build-activex: stamp-activex-build
+endif
+
+stamp-activex-fetch:
+       rm -Rf activex-vlc
+       git clone git://git.videolan.org/activex-vlc.git activex-vlc
+       touch $@
+
+stamp-activex-autogen: stamp-activex-fetch
+# extras/package/activex.am
+       cd activex-vlc && \
+       $(SHELL) ./autogen.sh
+       touch $@
+
+stamp-activex-configure: stamp-activex-autogen
+       cd activex-vlc && \
+       $(SHELL) ./configure \
+               --prefix=/ \
+               --host=$(host_alias) --build=$(build_alias) \
+               CPP="$(CPP)" CPPFLAGS="$(CPPFLAGS)" \
+               CC="$(CC)" CFLAGS="$(CFLAGS)" \
+               CXX="$(CXX)" CXXFLAGS="$(CXXFLAGS)" \
+               LD="$(LD)" LDFLAGS="$(LDFLAGS)" \
+               SHELL="$(SHELL)" \
+               PKG_CONFIG_LIBDIR="../$(srcdir)/extras/contrib/lib/pkgconfig:../src"
+       touch $@
+
+stamp-activex-build: stamp-activex-configure
+       cd activex-vlc && \
+       $(MAKE) $(MAKEFLAGS) all && \
+       $(MAKE) $(MAKEFLAGS) DESTDIR="$(abs_builddir)/activex-vlc/installed" install
+       touch $@
index d8600e8d51ac2cbda8ffd8ff1453e864598ff77d..28bc359f048beacbefcf31f87c47b15c10deee9a 100644 (file)
@@ -28,6 +28,7 @@ stamp-npapi-configure: stamp-npapi-autogen
                CC="$(CC)" CFLAGS="$(CFLAGS)" \
                CXX="$(CXX)" CXXFLAGS="$(CXXFLAGS)" \
                LD="$(LD)" LDFLAGS="$(LDFLAGS)" \
+               SHELL="$(SHELL)" \
                PKG_CONFIG_LIBDIR="../$(srcdir)/extras/contrib/lib/pkgconfig:../src"
        touch $@
 
index e9845d30cb35f959062238c1b9abb426e498bd7e..e37d2adb4756ec20738bdf27f6e68c63caa705bc 100755 (executable)
@@ -25,7 +25,6 @@
       --enable-portaudio \
       --enable-sdl \
       --enable-qt4 \
-      --enable-activex \
       --enable-sse --enable-mmx \
       --enable-libcddb \
       --enable-zvbi --disable-telx \
index e47634d218371c80e19711d2901969e228a436b1..9a7e91d7f83d0031b34059d9bee8f0bb9a44fa0b 100755 (executable)
@@ -14,5 +14,5 @@ CC=amd64-mingw32msvc-gcc CXX=amd64-mingw32msvc-g++ \
 CONFIGURE="${root}configure" \
 CONFIGOPTS="--host=amd64-mingw32msvc --build=i386-linux
  --enable-dirac --enable-mkv --enable-taglib --enable-debug --enable-projectm
- --disable-qt4 --disable-skins2 --disable-activex" \
+ --disable-qt4 --disable-skins2" \
 sh ${root}extras/package/win32/configure-common.sh
index 4efd7f72edbc980b1a9b270b18caa0ad6c875e49..fd37d3ca3f9542fe37eacce69c2658ab131d5737 100644 (file)
@@ -20,7 +20,7 @@
 !define MUI_LANGDLL_REGISTRY_KEY "${PRODUCT_DIR_REGKEY}"
 !define MUI_LANGDLL_REGISTRY_VALUENAME "Language"
 
-@BUILD_ACTIVEX_TRUE@ !define INSTALL_ACTIVEX
+@HAVE_WIN64_FALSE@ !define INSTALL_ACTIVEX
 @HAVE_WIN64_FALSE@ !define INSTALL_MOZILLA
 
 @FILE_LIBVLCCORE_DLL@
@@ -756,7 +756,9 @@ SectionEnd
 !ifdef INSTALL_MOZILLA
   !insertmacro MUI_DESCRIPTION_TEXT ${SEC03} $Desc_Section03
 !endif
-@BUILD_ACTIVEX_TRUE@ !insertmacro MUI_DESCRIPTION_TEXT ${SEC04} $Desc_Section04
+!ifdef INSTALL_ACTIVEX
+  !insertmacro MUI_DESCRIPTION_TEXT ${SEC04} $Desc_Section04
+!endif
   !insertmacro MUI_DESCRIPTION_TEXT ${SEC05} $Desc_Section05
   !insertmacro MUI_DESCRIPTION_TEXT ${SEC06} $Desc_Section06
   !insertmacro MUI_DESCRIPTION_TEXT ${SEC07} $Desc_Section07
diff --git a/projects/activex/.gitignore b/projects/activex/.gitignore
deleted file mode 100644 (file)
index 3d0cc4f..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-axvlc.inf
-axvlc_rc.rc
diff --git a/projects/activex/Makefile.am b/projects/activex/Makefile.am
deleted file mode 100644 (file)
index 693274c..0000000
+++ /dev/null
@@ -1,133 +0,0 @@
-###############################################################################
-# Building the Activex plugin
-###############################################################################
-
-MOSTLYCLEANFILES = 
-EXTRA_DIST = $(SOURCES_activex) $(DIST_rsrc) $(DIST_misc)
-BUILT_SOURCES = $(BUILT_SOURCES_activex)
-
-SOURCES_activex = \
-    main.cpp \
-    utils.cpp \
-    utils.h \
-    olecontrol.cpp \
-    olecontrol.h \
-    oleinplaceactiveobject.cpp \
-    oleinplaceactiveobject.h \
-    oleinplaceobject.cpp \
-    oleinplaceobject.h \
-    oleobject.cpp \
-    oleobject.h \
-    persistpropbag.cpp \
-    persistpropbag.h \
-    persiststorage.cpp \
-    persiststorage.h \
-    persiststreaminit.cpp \
-    persiststreaminit.h \
-    position.h \
-    provideclassinfo.cpp \
-    provideclassinfo.h \
-    connectioncontainer.cpp \
-    connectioncontainer.h \
-    objectsafety.cpp \
-    objectsafety.h \
-    dataobject.cpp \
-    dataobject.h \
-    viewobject.cpp \
-    viewobject.h \
-    supporterrorinfo.cpp \
-    supporterrorinfo.h \
-    vlccontrol.cpp \
-    vlccontrol.h \
-    vlccontrol2.cpp \
-    vlccontrol2.h \
-    plugin.cpp \
-    plugin.h \
-    axvlc_idl.c \
-    axvlc_idl.h \
-    guiddef.h \
-    $(NULL)
-
-DIST_rsrc = \
-    axvlc_rc.rc.in \
-    $(NULL)
-
-DIST_misc = \
-    README.TXT \
-    axvlc.inf.in \
-    axvlc.def \
-    axvlc.dll.manifest \
-    axvlc.idl \
-    axvlc.tlb \
-    inplace.bmp \
-    vlc16x16.bmp \
-    test.html \
-    $(NULL)
-
-if BUILD_ACTIVEX
-
-lib_LTLIBRARIES = axvlc.la
-
-LIBRARIES_libvlc = $(top_builddir)/src/libvlc.la \
-                                  $(top_builddir)/src/libvlccore.la
-
-axvlc_la_SOURCES = $(SOURCES_activex)
-axvlc_la_CFLAGS = `$(VLC_CONFIG) --cflags activex`
-axvlc_la_CXXFLAGS = `$(VLC_CONFIG) --cxxflags activex`
-axvlc_la_DEPENDENCIES = axvlc.def $(DATA_axvlc_rc) $(LIBRARIES_libvlc)
-axvlc_la_LDFLAGS = -Wl,$(srcdir)/axvlc.def -Wl,$(DATA_axvlc_rc) \
-    -no-undefined -avoid-version -module \
-    `$(VLC_CONFIG) --ldflags activex libvlc`
-axvlc_la_LIBADD = $(LIBRARIES_libvlc) \
-       `$(VLC_CONFIG) -libs activex`
-
-DATA_axvlc_rc = $(noinst_axvlc_rc_DATA)
-noinst_axvlc_rc_DATA = axvlc_rc.$(OBJEXT)
-noinst_axvlc_rcdir = 
-axvlc_rc.$(OBJEXT): axvlc_rc.rc inplace.bmp axvlc.tlb
-       $(WINDRES) --include-dir $(srcdir) -i $< -o $@
-
-DATA_axvlc_tlb = $(axvlc_tlb_DATA)
-noinst_axvlc_tlb_DATA = axvlc.tlb
-noinst_axvlc_tlbdir = $(libdir)
-
-if HAS_MIDL_COMPILER
-
-axvlc.tlb axvlc_idl.c axvlc_idl.h: axvlc.idl
-       $(MIDL) -Oicf -error all -env win32 -tlb axvlc.tlb -iid axvlc_idl.c -h axvlc_idl.h axvlc.idl
-
-clean-tlb:
-       rm -f axvlc.tlb axvlc_idl.c axvlc_idl.h
-
-else
-if HAS_WIDL_COMPILER
-
-axvlc.tlb axvlc_idl.c axvlc_idl.h: axvlc.idl
-       $(WIDL) -I$(WINE_SDK_PATH)/include -tuh -T axvlc.tlb -U axvlc_idl.c -H axvlc_idl.h axvlc.idl
-
-clean-tlb:
-       rm -f axvlc.tlb axvlc_idl.c axvlc_idl.h
-
-else
-
-clean-tlb:
-
-endif
-endif
-
-else
-
-clean-tlb:
-
-endif
-
-###############################################################################
-# Clean rules
-###############################################################################
-
-clean-local: clean-tlb
-
-###############################################################################
-# Force rules
-###############################################################################
-
diff --git a/projects/activex/README.TXT b/projects/activex/README.TXT
deleted file mode 100644 (file)
index 8e0e990..0000000
+++ /dev/null
@@ -1,237 +0,0 @@
-== ACTIVEX Control for VLC ==
-
-The VLC ActiveX Control has been primary designed to work with Internet
-Explorer. However it may also work with Visual Basic and/or .NET. Please
-note, that this code does not rely upon Microsoft MFC/ATL code, hence
-good compatibility is not guaranteed.
-
-I. Compiling
-
-The ActiveX Control should compile without any glitches as long as you
-have the latest version of mingw gcc and headers.
-
-In order to script the ActiveX Control on Internet Explorer, a type
-library is required. This type library is usually generated from an IDL
-file using Microsoft MIDL compiler. Therefore, for convenience I have
-checked in the output of the MIDL compiler in the repository so that you
-will only need the MIDL compiler if you change axvlc.idl. the generated
-files are as follow:
-
-axvlc_idl.c
-axvlc_idl.h
-axvlc.tlb
-
-To use the MIDL compiler on cygwin, you will need to set some
-environment variables before configuring vlc. If you have a copy of
-'Microsoft Visual C++ 6.0' installed, the following settings are
-correct:
-
-export PATH=$PATH:"/cygdrive/c/Program Files/Microsoft Visual Studio/COMMON/MSDev98/Bin":"/cygdrive/c/Program Files/Microsoft Visual Studio/VC98/Bin"
-export INCLUDE='C:\Program Files\Microsoft Visual Studio\VC98\Include'
-export MIDL="midl"
-
-If you are cross-compiling on Linux, you can use 'widl' which is part of
-the WINE project (http://www.winehq.com). At leat wine-dev-0.9.57 works,
-the comand line to compile IDL should looks like the following :
-
-widl -I/usr/include/wine/windows/ \
-       -h -H axvlc_idl.h -t -T axvlc.tlb -u -U axvlc_idl.c axvlc.idl
-
-NOTE: widl breaks compatibility with Visual Basic. If that is important
-to you then you must use midl.
-
-II. Debugging
-
-The ActiveX control is compiled with verbose output by default, but you
-will need to launch Internet Explorer from a Cygwin shell to see the
-output. Alternatively, the plugin will also use the VLC preferences, so
-if you enable the file logging interface through the player and save the
-preferences, the control will automatically log its verbose output into
-the designated file.
-
-Debugging the ActiveX control DLL with GNU GDB can be difficult.
-Fortunately the ActiveX control can also be compiled as an executable
-rather than a DLL. In ActiveX terms, this is called a local server. The
-advantage of a local server is that it will never crash its client,
-i.e. Internet Explorer, even if the local server crashes. The build
-system does not currently allow to create an executable version of the
-ActiveX control, you will need to manually define the BUILD_LOCALSERVER
-pre-processor variable and modify the Makefile to exclude the '-shared'
-option at the linking stage. Once this is done, launch axvlc.exe to have
-a working Activex control. Please note, that executable version of the
-ActiveX control will override any settings required for the DLL version,
-which will no longer work until you (re)register it as shown in the
-following section
-
-III. Local Install
-
-The VLC NSIS installer will install the ActiveX Control without
-requiring any further manual intervention, but for people who like to
-live on the edge, here are the steps you need to perform once you have
-built the ActiveX Control.
-
-The ActiveX control DLL file may be copied anywhere on the target
-machine, but before you can use the control, you will need to register
-it with Windows by using the REGSVR32 command, as per following example:
-
-REGSVR32 C:\WINDOWS\AXVLC.DLL
-
-If the control needs to use external VLC plugins (i.e other than the
-built-in ones), make sure that the plugin path is set in the registry as
-per following example:
-
-[HKEY_LOCAL_MACHINE\Software\VideoLAN\VLC]
-InstallDir="C:\Program Files\VideoLAN\VLC"
-
-The InstallDir must be the parent directory of the 'plugins' directory.
-
-WARNING: Both control and plugins must come from the same source build
-tree. Otherwise, at best, the control will not play any content,
-at worse it may crash Internet Explorer while attempting to load
-incompatible plugins.
-
-IV. Internet Install
-
-The activex control may be installed from a remote through Internet
-Installer if it is packaged up in a CAB file. The following link
-explains how to achieve this
-
-http://msdn.microsoft.com/workshop/components/activex/packaging.asp
-
-For convenience, I have provided a sample axvlc.INF file, which assumes
-that the VLC NSIS Installer has been packaged up a CAB file called
-AXVLC.CAB.
-
-The ActiveX Control DLL file can also be distributed by itself if it has
-been compiled with built-in VLC plugins; check developer information for
-more information on built-in plugins.
-
-V. Controlling the plugin
-
-1) Properties
-
-The following public properties can be used to control the plugin
-from HTML, the property panel of Visual Basic and most ActiveX aware
-applications.
-
-+==========+=========+===================================+===============+
-| Name:    | Type:   |   Description:                    | Alias:        |
-+==========+=========+===================================+===============+
-| autoplay | boolean | play when control is activated    | autostart     |
-+----------+---------+-----------------------------------+---------------+
-| autoloop | boolean | loop the playlist                 | loop          |
-+----------+---------+-----------------------------------+---------------+
-| mrl      | string  | initial MRL in playlist           | src, filename |
-+----------+---------+-----------------------------------+---------------+
-| mute     | boolean | mute audio volume                 |               |
-+----------+---------+-----------------------------------+---------------+
-| visible  | boolean | show/hide control viewport        | showdisplay   |
-+----------+---------+-----------------------------------+---------------+
-| volume   | integer | set/get audio volume              |               |
-+----------+---------+-----------------------------------+---------------+
-| toolbar  | boolean | set/get visibility of the toolbar |               |
-+----------+---------+-----------------------------------+---------------+
-
-The alias column shows an alternative <PARAM name> for the property in
-internet explorer, which is useful to maintain compatibility with HTML
-pages already leveraging Windows Media Player
-
-2) Programming APIs
-
-The MRL, Autoplay and Autoloop properties are only used to configure the
-initial state of the ActiveX control,i.e before its activation; they are
-ignored afterward. Therefore, if some runtime control is required, the
-following APIs should be used within your programming environment:
-
-Variables:
-
-+==========+=========+=========+=======================================+
-| Name:    | Type:   | Access: | Description:                          |
-+==========+=========+=========+=======================================+
-| Playing  | boolean |   RO    | Returns whether some MRL is playing   |
-+----------+---------+---------+---------------------------------------+
-| Time     | integer |   RW    | Time elapsed in seconds playing       |
-|          |         |         | current MRL                           |
-|          |         |         | NOTE: live feeds returns 0            |
-+----------+---------+---------+---------------------------------------+
-| Position | real    |   RW    | Playback position within current MRL  |
-|          |         |         | in a scale from 0.0 to 1.0            |
-|          |         |         | NOTE: live feeds returns 0.0          |
-+----------+---------+---------+---------------------------------------+
-| Length   | integer |   RO    | Total length in seconds of current MRL|
-|          |         |         | NOTE: live feeds returns 0            |
-+----------+---------+---------+---------------------------------------+
-| Volume   | integer |   RW    | Current volume from 0 to 100          |
-+----------+---------+---------+---------------------------------------+
-| Visible  | boolean |   RW    | Indicates whether control is visible  |
-+----------+---------+---------+---------------------------------------+
-
-Methods:
-
-  *** current interface (0.8.6+) ***
-UUID : 9BE31822-FDAD-461B-AD51-BE1D1C159921
-defined in axvlc.idl as "coclass VLCPlugin2", "interface IVLCControl2"
-
-This interface organizes an API with several objects (like .audio.mute).
-It is currently documented on videolan wiki (the url may change) at
-http://wiki.videolan.org/Documentation:Play_HowTo/Advanced_Use_of_VLC
-
-
-  ***  old interface (deprecated)  ***
-UUID : E23FE9C6-778E-49D4-B537-38FCDE4887D8
-defined in axvlc.idl as "coclass VLCPlugin", "interface IVLCControl"
-
-play()
-    Play current item the playlist
-
-pause()
-    Pause current item in the playlist
-
-stop()
-    Stop playing current item in playlist
-
-shuttle(Seconds as integer)
-    Advance/backtrack playback by specified amount (which is negative for
-    backtracking). This is also called relative seeking.
-    This method does not work for live streams.
-
-fullscreen()
-    Switch between normal and full screen video
-
-playFaster()
-    Increase play back speed by 2X, 4X, 8X
-
-playSlower()
-    Decrease play back speed by 2X, 4X, 8X
-
-toggleMute()
-    mute/unmute sound output
-
-addTarget(MRL As String, Options as array of strings,
-          Mode as enumeration, Position as integer)
-    Add an MRL into the default playlist, you can also specify a list
-    of playlist options to attach to this MRL or Null for no options.
-    Mode indicates the action taken by the playlist on MRL and is one
-    the following:
-
-        VLCPlayListInsert       =  1 (Insert MRL into playlist at Position)
-        VLCPlayListInsertAndGo  =  9 (Insert MRL into playlist at Position and play it immediately)
-        VLCPlayListReplace      =  2 (Replace MRL in playlist at Position)
-        VLCPlayListReplaceAndGo = 10 (Replace MRL in playlist at Position and play it immediately)
-        VLCPlayListAppend       =  4 (Append MRL in playlist after Position)
-        VLCPlayListAppendAndGo  = 12 (Append MRL in playlist after Position and play it immediately)
-        VLCPlayListCheckInsert  = 16 (Verify if MRL is in playlist) 
-
-    Position can take the value of -666 as wildcard for the last element
-    in the playlist.
-
-
-setVariable(Name as string, Value as object);
-    Set a value into a VLC variables
-
-getVariable(Name as string) as object
-    Retrieve the value of a VLC variable.
-
-Regards,
-    Damien Fouilleul <Damien dot Fouilleul at laposte dot net>
-
diff --git a/projects/activex/axvlc.def b/projects/activex/axvlc.def
deleted file mode 100644 (file)
index 87e32f9..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-LIBRARY AXVLC.DLL
-EXPORTS
-    DllMain = DllMain@12
-    DllCanUnloadNow = DllCanUnloadNow@0
-    DllGetClassObject = DllGetClassObject@12
-    DllRegisterServer = DllRegisterServer@0
-    DllUnregisterServer = DllUnregisterServer@0
diff --git a/projects/activex/axvlc.dll.manifest b/projects/activex/axvlc.dll.manifest
deleted file mode 100644 (file)
index a95a7d3..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
-       <assemblyIdentity
-               version="1.0.0.0"
-               processorArchitecture="x86"
-               name="axvlc.dll"
-               type="win32"
-       />
-       <description>VLC ActiveX plugin</description>
-</assembly>
diff --git a/projects/activex/axvlc.idl b/projects/activex/axvlc.idl
deleted file mode 100644 (file)
index 85ef773..0000000
+++ /dev/null
@@ -1,672 +0,0 @@
-/*****************************************************************************\r
- * axvlc.idl: ActiveX control for VLC\r
- *****************************************************************************\r
- * Copyright (C) 2006 the VideoLAN team\r
- * Copyright (C) 2010 M2X BV\r
- *\r
- * Authors: Damien Fouilleul <Damien.Fouilleul@laposte.net>\r
- *          Jean-Paul Saman <jpsaman _at_ m2x _dot_ nl>\r
- *\r
- * This program is free software; you can redistribute it and/or modify\r
- * it under the terms of the GNU General Public License as published by\r
- * the Free Software Foundation; either version 2 of the License, or\r
- * (at your option) any later version.\r
- *\r
- * This program is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
- * GNU General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU General Public License\r
- * along with this program; if not, write to the Free Software\r
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.\r
- *****************************************************************************/\r
-\r
-// comments terminated by [t] are by tonsofpcs, regarding the string\r
-// review. April 02, 2006. [t]\r
-// Possibly change all instances of "the current playlist" to "the\r
-// playlist" and "current playlist" to "the playlist" [t]\r
-\r
-import "ocidl.idl";\r
-\r
-[\r
-  uuid(DF2BBE39-40A8-433b-A279-073F48DA94B6),\r
-  version(1.0),\r
-  helpstring("VideoLAN VLC ActiveX Plugin")\r
-]\r
-library AXVLC\r
-{\r
-    // Forward declare all types defined in this typelib\r
-    interface IVLCControl;\r
-    interface IVLCAudio;\r
-    interface IVLCInput;\r
-    interface IVLCLogo;\r
-    interface IVLCDeinterlace;\r
-    interface IVLCMarquee;\r
-    interface IVLCPlaylist;\r
-    interface IVLCSubtitle;\r
-    interface IVLCVideo;\r
-    interface IVLCControl2;\r
-    dispinterface DVLCEvents;\r
-\r
-    importlib("stdole2.tlb");\r
-\r
-    typedef [public] enum VLCPlaylistMode\r
-    {\r
-        VLCPlayListInsert       =  1,\r
-        VLCPlayListInsertAndGo  =  9,\r
-        VLCPlayListReplace      =  2,\r
-        VLCPlayListReplaceAndGo = 10,\r
-        VLCPlayListAppend       =  4,\r
-        VLCPlayListAppendAndGo  = 12,\r
-        VLCPlayListCheckInsert  = 16\r
-    } eVLCPlaylistMode;\r
-\r
-    // playlist target position\r
-    const int VLCPlayListEnd    = -666;\r
-\r
-    // DISPID definitions\r
-    const int DISPID_BackColor  = -501;\r
-\r
-    const int DISPID_Visible    = 100;\r
-    const int DISPID_Playing    = 101;\r
-    const int DISPID_Position   = 102;\r
-    const int DISPID_Time       = 103;\r
-    const int DISPID_Length     = 104;\r
-    const int DISPID_Volume     = 105;\r
-    const int DISPID_MRL        = 106;\r
-    const int DISPID_AutoPlay   = 107;\r
-    const int DISPID_AutoLoop   = 108;\r
-    const int DISPID_StartTime  = 109;\r
-    const int DISPID_BaseURL    = 110;\r
-    const int DISPID_Toolbar     = 111;\r
-\r
-    [\r
-      odl,\r
-      uuid(C2FA41D0-B113-476e-AC8C-9BD14999C1C1),\r
-      helpstring("VLC Control (deprecated)"),\r
-      dual,\r
-      oleautomation\r
-    ]\r
-    interface IVLCControl : IDispatch\r
-    {\r
-        [id(DISPID_Visible), propget, bindable, helpstring("Returns/sets a value that determines whether viewing area is visible or hidden.")]\r
-        HRESULT Visible([out, retval] VARIANT_BOOL* visible);\r
-        [id(DISPID_Visible), propput, bindable, helpstring("Returns/sets a value that determines whether viewing area is visible or hidden.")]\r
-        HRESULT Visible([in] VARIANT_BOOL visible);\r
-        [helpstring("Play current target in playlist.")]\r
-        HRESULT play();\r
-        [helpstring("Pause playback.")]\r
-        HRESULT pause();\r
-        [helpstring("Stop playback.")]\r
-        HRESULT stop();\r
-        [id(DISPID_Playing), hidden, propget, helpstring("Returns a value that determines whether VLC is currently playing.")]\r
-        HRESULT Playing([out, retval] VARIANT_BOOL* isPlaying);\r
-        [id(DISPID_Position), propget, helpstring("Returns/sets playback position within the current item. Position is a relative value ranging from 0.0 to 1.0.")]\r
-        HRESULT Position([out, retval] float* position);\r
-        [id(DISPID_Position), propput, helpstring("Returns/sets playback position within the current item. Position is a relative value ranging from 0.0 to 1.0.")]\r
-        HRESULT Position([in] float position);\r
-        [id(DISPID_Time), propget, helpstring("Returns/sets playback time relative to the start of the current item.")]\r
-        HRESULT Time([out, retval] int* seconds);\r
-        [id(DISPID_Time), propput, helpstring("Returns/sets playback time relative to the start of the current item.")]\r
-        HRESULT Time([in] int seconds);\r
-        [helpstring("Advance or backtrack playback time, relative to current time.")]  //possibly find a better word to replace 'backtrack' [t]\r
-        HRESULT shuttle([in] int seconds);\r
-        [helpstring("Switch video between normal and fullscreen view modes.")]\r
-        HRESULT fullscreen();\r
-        [id(DISPID_Length), propget, hidden, helpstring("Returns the total length, in seconds, of the current item, may be unknown.")]\r
-        HRESULT Length([out, retval] int* seconds);\r
-        [helpstring("Increases playback speed. Possible speeds are: 1x, 2x, 4x, 8x.")]\r
-        HRESULT playFaster();\r
-        [helpstring("Decreases playback speed. Possible speeds are: 1x, 2x, 4x, 8x.")]\r
-        HRESULT playSlower();\r
-        [id(DISPID_Volume), propget, helpstring("Returns/sets playback volume, ranges from 0 to 200%.")]  //possibly remove % from 'ranges', change to 'values', and specify that 200 is equivilant to 200% (remember, 200% == 2.0, but this gets an int not a float) [t]\r
-        HRESULT Volume([out, retval] int* volume);\r
-        [id(DISPID_Volume), propput, helpstring("Returns/sets playback volume, ranges from 0 to 200%.")]\r
-        HRESULT Volume([in] int volume);\r
-        [helpstring("Mute/unmute playback audio.")]\r
-        HRESULT toggleMute();\r
-        [helpstring("Sets the value of a VLC variable.")]\r
-        HRESULT setVariable([in] BSTR name, [in] VARIANT value);\r
-        [helpstring("Returns the value of a VLC variable.")]\r
-        HRESULT getVariable([in] BSTR name, [out, retval] VARIANT *value);\r
-\r
-/*\r
-** use VARIANT rather than a SAFEARRAY as argument type\r
-** for compatibility with some scripting language (JScript)\r
-*/\r
-\r
-        [helpstring("Add an item to the playlist.")]\r
-        HRESULT addTarget([in] BSTR uri, [in] VARIANT options, [in] enum VLCPlaylistMode mode, [in] int position);\r
-        [propget, helpstring("Returns index of current item in playlist.")]\r
-        HRESULT PlaylistIndex([out, retval] int* index);\r
-        [propget, helpstring("Returns number of items in playlist.")]\r
-        HRESULT PlaylistCount([out, retval] int* index);\r
-        [helpstring("Advance to next item in playlist.")]\r
-        HRESULT playlistNext();\r
-        [helpstring("Advance to previous item in playlist.")]\r
-        HRESULT playlistPrev();\r
-        [helpstring("Remove all items from playlist.")]\r
-        HRESULT playlistClear();\r
-        [propget, hidden, helpstring("Returns VLC Version.")]\r
-        HRESULT VersionInfo([out, retval] BSTR* version);\r
-        [id(DISPID_MRL), propget, helpstring("Returns/sets the first MRL in playlist, used for AutoPlay")]\r
-        HRESULT MRL([out, retval] BSTR* mrl);\r
-        [id(DISPID_MRL), propput, helpstring("Returns/sets the first MRL in playlist, used for AutoPlay")]\r
-        HRESULT MRL([in] BSTR mrl);\r
-        [id(DISPID_AutoPlay), propget, helpstring("Returns/sets a value that determines whether the playlist is played on startup")]\r
-        HRESULT AutoPlay([out, retval] VARIANT_BOOL* autoplay);\r
-        [id(DISPID_AutoPlay), propput, helpstring("Returns/Sets a value that determines whether the playlist is played on startup")]\r
-        HRESULT AutoPlay([in] VARIANT_BOOL autoplay);\r
-        [id(DISPID_AutoLoop), propget, helpstring("Returns/sets a value that determines whether the playlist is looped")]\r
-        HRESULT AutoLoop([out, retval] VARIANT_BOOL* autoloop);\r
-        [id(DISPID_AutoLoop), propput, helpstring("Returns/sets a value that determines whether the playlist is looped")]\r
-        HRESULT AutoLoop([in] VARIANT_BOOL autoloop);\r
-    };\r
-\r
-    const int DISPID_PlayEvent  = 100;\r
-    const int DISPID_PauseEvent = 101;\r
-    const int DISPID_StopEvent  = 102;\r
-\r
-    /* async events from libvlc */\r
-    const int DISPID_MediaPlayerNothingSpecialEvent = 200;\r
-    const int DISPID_MediaPlayerOpeningEvent = 201;\r
-    const int DISPID_MediaPlayerBufferingEvent = 202;\r
-    const int DISPID_MediaPlayerPlayingEvent = 203;\r
-    const int DISPID_MediaPlayerPausedEvent = 204;\r
-    const int DISPID_MediaPlayerForwardEvent = 205;\r
-    const int DISPID_MediaPlayerBackwardEvent = 206;\r
-    const int DISPID_MediaPlayerEncounteredErrorEvent = 207;\r
-    const int DISPID_MediaPlayerEndReachedEvent = 208;\r
-    const int DISPID_MediaPlayerStoppedEvent = 209;\r
-\r
-    const int DISPID_MediaPlayerTimeChangedEvent = 210;\r
-    const int DISPID_MediaPlayerPositionChangedEvent = 211;\r
-    const int DISPID_MediaPlayerSeekableChangedEvent = 212;\r
-    const int DISPID_MediaPlayerPausableChangedEvent = 213;\r
-\r
-    [\r
-      uuid(DF48072F-5EF8-434e-9B40-E2F3AE759B5F),\r
-      helpstring("Event interface for VLC control"),\r
-    ]\r
-    dispinterface DVLCEvents\r
-    {\r
-        properties:\r
-        methods:\r
-            [id(DISPID_PlayEvent), helpstring("Playing")]\r
-            void play();\r
-            [id(DISPID_PauseEvent), helpstring("Paused")]\r
-            void pause();\r
-            [id(DISPID_StopEvent), helpstring("Stopped")]\r
-            void stop();\r
-\r
-            /* asyn events from libvlc */\r
-            [id(DISPID_MediaPlayerNothingSpecialEvent), helpstring("Idle state")]\r
-            void MediaPlayerNothingSpecial();\r
-            [id(DISPID_MediaPlayerOpeningEvent), helpstring("Opening media")]\r
-            void MediaPlayerOpening();\r
-            [id(DISPID_MediaPlayerBufferingEvent), helpstring("Buffering media")]\r
-            void MediaPlayerBuffering([in] long cache);\r
-            [id(DISPID_MediaPlayerPlayingEvent), helpstring("Media is playing")]\r
-            void MediaPlayerPlaying();\r
-            [id(DISPID_MediaPlayerPausedEvent), helpstring("Media is paused")]\r
-            void MediaPlayerPaused();\r
-            [id(DISPID_MediaPlayerForwardEvent), helpstring("Forward playback")]\r
-            void MediaPlayerForward();\r
-            [id(DISPID_MediaPlayerBackwardEvent), helpstring("Backward playback")]\r
-            void MediaPlayerBackward();\r
-            [id(DISPID_MediaPlayerEncounteredErrorEvent), helpstring("An error has been encountered")]\r
-            void MediaPlayerEncounteredError();\r
-            [id(DISPID_MediaPlayerEndReachedEvent), helpstring("End of playback reached")]\r
-            void MediaPlayerEndReached();\r
-            [id(DISPID_MediaPlayerStoppedEvent), helpstring("Playback stopped")]\r
-            void MediaPlayerStopped();\r
-\r
-            [id(DISPID_MediaPlayerTimeChangedEvent), helpstring("Time changed")]\r
-            void MediaPlayerTimeChanged([in] long time);\r
-            [id(DISPID_MediaPlayerPositionChangedEvent), helpstring("Position changed")]\r
-            void MediaPlayerPositionChanged([in] long position);\r
-            [id(DISPID_MediaPlayerSeekableChangedEvent), helpstring("Seek changed")]\r
-            void MediaPlayerSeekableChanged([in] VARIANT_BOOL seekable);\r
-            [id(DISPID_MediaPlayerPausableChangedEvent), helpstring("Pause setting changed")]\r
-            void MediaPlayerPausableChanged([in] VARIANT_BOOL pausable);\r
-    };\r
-\r
-    [\r
-      odl,\r
-      uuid(9E0BD17B-2D3C-4656-B94D-03084F3FD9D4),\r
-      helpstring("VLC Audio APIs"),\r
-      dual,\r
-      oleautomation\r
-    ]\r
-    interface IVLCAudio : IDispatch\r
-    {\r
-        [propget, helpstring("Returns/sets the audio mute state.")]\r
-        HRESULT mute([out, retval] VARIANT_BOOL* muted);\r
-        [propput, helpstring("Returns/sets the audio mute state.")]\r
-        HRESULT mute([in] VARIANT_BOOL muted);\r
-\r
-        [propget, helpstring("Returns/sets audio volume as a percent value.")]\r
-        HRESULT volume([out, retval] long* volume);\r
-        [propput, helpstring("Returns/sets audio volume as a percent value.")]\r
-        HRESULT volume([in] long volume);\r
-\r
-        [helpstring("Mute/unmute audio playback.")]\r
-        HRESULT toggleMute();\r
-\r
-        [propget, helpstring("Returns/sets audio track used/to use.")]\r
-        HRESULT track([out, retval] long* track);\r
-        [propput, helpstring("Returns/sets audio track used/to use.")]\r
-        HRESULT track([in] long track);\r
-\r
-        [propget, helpstring("Returns the number of audio tracks available.")]\r
-        HRESULT count([out, retval] long* trackNumber);\r
-        [helpstring("Returns audio track name.")]\r
-        HRESULT description([in] long trackID, [out, retval] BSTR* name);\r
-\r
-        [propget, helpstring("Returns audio channel [1-5] indicating; stereo, reverse stereo, left, right, dolby.")]\r
-        HRESULT channel([out, retval] long* channel);\r
-        [propput, helpstring("Sets audio channel to [1-5] indicating; stereo, reverse stereo, left, right, dolby.")]\r
-        HRESULT channel([in] long channel);\r
-    };\r
-\r
-    [\r
-      odl,\r
-      uuid(49E0DBD1-9440-466C-9C97-95C67190C603),\r
-      helpstring("VLC Input APIs"),\r
-      dual,\r
-      oleautomation\r
-    ]\r
-    interface IVLCInput : IDispatch\r
-    {\r
-        [propget, helpstring("Returns the clip length, in milliseconds.")]\r
-        HRESULT length([out, retval] double* length);\r
-\r
-        [propget, helpstring("Returns/sets playback position in current clip.  Position is ranging from 0.0 to 1.0.")]\r
-        HRESULT position([out, retval] double* position);\r
-        [propput, helpstring("Returns/sets playback position in the current clip.  Position ranging from 0.0 to 1.0.")]\r
-        HRESULT position([in] double position);\r
-\r
-        [propget, helpstring("Returns/sets playback time in current clip, in milliseconds.")]\r
-        HRESULT time([out, retval] double* time);\r
-        [propput, helpstring("Returns/sets playback time in the current clip, in milliseconds.")]\r
-        HRESULT time([in] double time);\r
-\r
-        [propget, helpstring("Returns current playback state.")]\r
-        HRESULT state([out, retval] long* state);\r
-\r
-        [propget, helpstring("Returns/sets current playback rate, normal rate is 1.0 ")]\r
-        HRESULT rate([out, retval] double* rate);\r
-        [propput, helpstring("Returns/sets current playback rate, normal rate is 1.0.")]\r
-        HRESULT rate([in] double rate);\r
-\r
-        [propget, helpstring("Returns current playback frames per seconds if available.")]\r
-        HRESULT fps([out, retval] double* fps);\r
-\r
-        [propget, helpstring("Returns whether current playback displays video.")]\r
-        HRESULT hasVout([out, retval] VARIANT_BOOL* hasVout);\r
-    };\r
-\r
-    [\r
-      odl,\r
-      uuid(FD37FE32-82BC-4A25-B056-315F4DBB194D),\r
-      helpstring("VLC Playlist Items collection"),\r
-      dual,\r
-      oleautomation\r
-    ]\r
-    interface IVLCPlaylistItems : IDispatch\r
-    {\r
-        [propget, helpstring("Returns number of items in playlist.")]\r
-        HRESULT count([out, retval] long* count);\r
-\r
-        [helpstring("Remove all items from playlist.")]\r
-        HRESULT clear();\r
-\r
-        [helpstring("remove item from playlist.")]\r
-        HRESULT remove([in] long itemId);\r
-    };\r
-\r
-    [\r
-      odl,\r
-      uuid(54613049-40BF-4035-9E70-0A9312C0188D),\r
-      helpstring("VLC Playlist APIs"),\r
-      dual,\r
-      oleautomation\r
-    ]\r
-    interface IVLCPlaylist : IDispatch\r
-    {\r
-        [hidden, propget, helpstring("Returns number of items in playlist. (deprecated)")]\r
-        HRESULT itemCount([out, retval] long* count);\r
-\r
-        [propget, helpstring("Returns whether playback displays video.")]\r
-        HRESULT isPlaying([out, retval] VARIANT_BOOL* playing);\r
-\r
-        [helpstring("Add a playlist item.")]\r
-        HRESULT add([in] BSTR uri, [in, optional] VARIANT name, [in, optional] VARIANT options, [out, retval] long* itemId);\r
-\r
-        [helpstring("Play/Resume the playlist.")]\r
-        HRESULT play();\r
-\r
-        [helpstring("Play item in playlist.")]\r
-        HRESULT playItem([in] long itemId);\r
-\r
-        [helpstring("Play/Pause current clip.")]\r
-        HRESULT togglePause();\r
-\r
-        [helpstring("Stop current clip.")]\r
-        HRESULT stop();\r
-\r
-        [helpstring("Advance to next item in playlist.")]\r
-        HRESULT next();\r
-\r
-        [helpstring("Advance to previous item in playlist.")]\r
-        HRESULT prev();\r
-\r
-        [hidden, helpstring("Remove all items from playlist. (deprecated)")]\r
-        HRESULT clear();\r
-\r
-        [hidden, helpstring("Remove item from playlist. (deprecated)")]\r
-        HRESULT removeItem([in] long item);\r
-\r
-        [propget, helpstring("Returns the playlist items collection object.")]\r
-        HRESULT items([out, retval] IVLCPlaylistItems** obj);\r
-    };\r
-\r
-    [\r
-      odl,\r
-      uuid(465E787A-0556-452F-9477-954E4A940003),\r
-      helpstring("VLC Subtitle APIs"),\r
-      dual,\r
-      oleautomation\r
-    ]\r
-    interface IVLCSubtitle : IDispatch\r
-    {\r
-        [propget, helpstring("Returns video subtitle used.")]\r
-        HRESULT track([out, retval] long* spu);\r
-        [propput, helpstring("Sets video subtitle to use.")]\r
-        HRESULT track([in] long spu);\r
-\r
-        [propget, helpstring("Returns the number of video subtitles available.")]\r
-        HRESULT count([out, retval] long* spuNumber);\r
-        [helpstring("Returns video subtitle name.")]\r
-        HRESULT description([in] long nameID, [out, retval] BSTR* name);\r
-    };\r
-\r
-    [\r
-      odl,\r
-      uuid(8D076AD6-9B6F-4150-A0FD-5D7E8C8CB02C),\r
-      helpstring("VLC Marquee Filter"),\r
-      dual,\r
-      oleautomation\r
-    ]\r
-    interface IVLCMarquee : IDispatch\r
-    {\r
-        [helpstring("enable Marquee Filter.")]\r
-        HRESULT enable();\r
-        [helpstring("disable Marquee Filter.")]\r
-        HRESULT disable();\r
-\r
-        [propget, helpstring("Retrieve marquee text.")]\r
-        HRESULT text([out, retval] BSTR* val);\r
-        [propput, helpstring("Change marquee text.")]\r
-        HRESULT text([in] BSTR val);\r
-\r
-        [propget, helpstring("Retrieve text color.")]\r
-        HRESULT color([out, retval] LONG* val);\r
-        [propput, helpstring("Change text color.")]\r
-        HRESULT color([in] LONG val);\r
-        [propget, helpstring("Retrieve text opacity.")]\r
-        HRESULT opacity([out, retval] LONG* val);\r
-        [propput, helpstring("Set text opacity (0=transparent, 255=opaque).")]\r
-        HRESULT opacity([in] LONG val);\r
-        [propget, helpstring("Retrieve text position.")]\r
-        HRESULT position([out, retval] BSTR* val);\r
-        [propput, helpstring("Text positioning relative to: center, left, right, top, bottom, top-left, top-right, bottom-left, bottom-right.")]\r
-        HRESULT position([in] BSTR val);\r
-        [propget, helpstring("Retrieve text refresh time.")]\r
-        HRESULT refresh([out, retval] LONG* val);\r
-        [propput, helpstring("Set text refresh time.")]\r
-        HRESULT refresh([in] LONG val);\r
-        [propget, helpstring("Retrieve text size.")]\r
-        HRESULT size([out, retval] LONG* val);\r
-        [propput, helpstring("Set text size.")]\r
-        HRESULT size([in] LONG val);\r
-        [propget, helpstring("Retrieve timeout.")]\r
-        HRESULT timeout([out, retval] LONG* val);\r
-        [propput, helpstring("Change timeout.")]\r
-        HRESULT timeout([in] LONG val);\r
-        [propget, helpstring("Retrieve text abcissa.")]\r
-        HRESULT x([out, retval] LONG* val);\r
-        [propput, helpstring("Change text abcissa.")]\r
-        HRESULT x([in] LONG val);\r
-        [propget, helpstring("Retrieve text ordinate.")]\r
-        HRESULT y([out, retval] LONG* val);\r
-        [propput, helpstring("Change text ordinate.")]\r
-        HRESULT y([in] LONG val);\r
-    };\r
-\r
-    [\r
-      odl,\r
-      uuid(8a4a20c2-93f3-44e8-8644-beb2e3487e84),\r
-      helpstring("VLC Logo Filter"),\r
-      dual,\r
-      oleautomation\r
-    ]\r
-    interface IVLCLogo : IDispatch\r
-    {\r
-        [helpstring("Enable the logo filter.")]\r
-        HRESULT enable();\r
-        [helpstring("Disable the logo filter.")]\r
-        HRESULT disable();\r
-\r
-        [helpstring("specify input file[[,delay],alpha].")]\r
-        HRESULT file([in] BSTR fname);\r
-\r
-        [propget, helpstring("")]\r
-        HRESULT delay([out, retval] long* val);\r
-        [propput, helpstring("Set delay-to-next-picture in miliseconds.")]\r
-        HRESULT delay([in] long val);\r
-\r
-        [propget, helpstring("")]\r
-        HRESULT repeat([out, retval] long* val);\r
-        [propput, helpstring("Repeat: -1 continuous (default), 0 no repeat, ....")]\r
-        HRESULT repeat([in] long val);\r
-\r
-        [propget, helpstring("Returns the `global' alpha value.")]\r
-        HRESULT opacity([out, retval] long* val);\r
-        [propput, helpstring("Alpha value: 0 opaque to 255 fully transparent")]\r
-        HRESULT opacity([in] long val);\r
-\r
-        [propget, helpstring("Retrieve picture position.")]\r
-        HRESULT position([out, retval] BSTR* val);\r
-        [propput, helpstring("Picture positioning relative to: center, left, right, top, bottom, top-left, top-right, bottom-left, bottom-right.")]\r
-        HRESULT position([in] BSTR val);\r
-\r
-        [propget, helpstring("Picture x offset.")]\r
-        HRESULT x([out, retval] long* val);\r
-        [propput, helpstring("Picture x offset.")]\r
-        HRESULT x([in] long val);\r
-        [propget, helpstring("Picture y offset.")]\r
-        HRESULT y([out, retval] long* val);\r
-        [propput, helpstring("Picture y offset.")]\r
-        HRESULT y([in] long val);\r
-\r
-    };\r
-    [\r
-      odl,\r
-      uuid(bc97469f-cb11-4037-8dce-5fc9f5f85307),\r
-      helpstring("VLC Deinterlace Filter"),\r
-      dual,\r
-      oleautomation\r
-    ]\r
-    interface IVLCDeinterlace : IDispatch\r
-    {\r
-        [helpstring("Enable deinterlace filter and set method.")]\r
-        HRESULT enable([in] BSTR mode);\r
-        [helpstring("Disable deinterlace filter.")]\r
-        HRESULT disable();\r
-\r
-    };\r
-\r
-    [\r
-      odl,\r
-      uuid(0AAEDF0B-D333-4B27-A0C6-BBF31413A42E),\r
-      helpstring("VLC Video APIs"),\r
-      dual,\r
-      oleautomation\r
-    ]\r
-    interface IVLCVideo : IDispatch\r
-    {\r
-        [propget, helpstring("Returns/sets the fullscreen state.")]\r
-        HRESULT fullscreen([out, retval] VARIANT_BOOL* fullscreen);\r
-\r
-        [propput, helpstring("Returns/sets the fullscreen state.")]\r
-        HRESULT fullscreen([in] VARIANT_BOOL fullscreen);\r
-\r
-        [propget, helpstring("Returns video original width.")]\r
-        HRESULT width([out, retval] long* width);\r
-\r
-        [propget, helpstring("Returns video original height.")]\r
-        HRESULT height([out, retval] long* height);\r
-\r
-        [propget, helpstring("Returns video aspect ratio.")]\r
-        HRESULT aspectRatio([out, retval] BSTR* aspect);\r
-        [propput, helpstring("Sets video aspect ratio.")]\r
-        HRESULT aspectRatio([in] BSTR aspect);\r
-\r
-        [propget, helpstring("Returns video subtitle used.")]\r
-        HRESULT subtitle([out, retval] long* spu);\r
-        [propput, helpstring("Sets video subtitle to use.")]\r
-        HRESULT subtitle([in] long spu);\r
-\r
-        [propget, helpstring("Returns crop filter geometry.")]\r
-        HRESULT crop([out, retval] BSTR* geometry);\r
-        [propput, helpstring("Sets crop filter geometry.")]\r
-        HRESULT crop([in] BSTR geometry);\r
-\r
-        [propget, helpstring("Returns teletext page used.")]\r
-        HRESULT teletext([out, retval] long* page);\r
-        [propput, helpstring("Sets teletext page to use.")]\r
-        HRESULT teletext([in] long page);\r
-\r
-        [helpstring("toggle fullscreen/windowed state.")]\r
-        HRESULT toggleFullscreen();\r
-\r
-        [helpstring("take video snapshot and save it into picture object.")]\r
-        HRESULT takeSnapshot([out, retval] IPictureDisp** picture);\r
-\r
-        [helpstring("toggle teletext transparent state.")]\r
-        HRESULT toggleTeletext();\r
-\r
-        [propget, helpstring("Returns the marquee object.")]\r
-        HRESULT marquee([out, retval] IVLCMarquee** obj);\r
-\r
-        [propget, helpstring("Returns the logo object.")]\r
-        HRESULT logo([out, retval] IVLCLogo** obj);\r
-\r
-        [propget, helpstring("Returns the logo object.")]\r
-        HRESULT deinterlace([out, retval] IVLCDeinterlace** obj);\r
-    };\r
-\r
-    [\r
-      odl,\r
-      uuid(2D719729-5333-406C-BF12-8DE787FD65E3),\r
-      helpstring("VLC Control"),\r
-      dual,\r
-      oleautomation\r
-    ]\r
-    interface IVLCControl2 : IDispatch\r
-    {\r
-        [id(DISPID_AutoLoop), propget, helpstring("Returns/sets a value that determines whether the playlist is looped")]\r
-        HRESULT AutoLoop([out, retval] VARIANT_BOOL* autoloop);\r
-        [id(DISPID_AutoLoop), propput, helpstring("Returns/sets a value that determines whether the playlist is looped")]\r
-        HRESULT AutoLoop([in] VARIANT_BOOL autoloop);\r
-\r
-        [id(DISPID_AutoPlay), propget, helpstring("Returns/sets a value that determines whether the playlist is played on startup")]\r
-        HRESULT AutoPlay([out, retval] VARIANT_BOOL* autoplay);\r
-        [id(DISPID_AutoPlay), propput, helpstring("Returns/Sets a value that determines whether the playlist is played on startup")]\r
-        HRESULT AutoPlay([in] VARIANT_BOOL autoplay);\r
-\r
-        [id(DISPID_BaseURL), propget, helpstring("Returns/sets the base URL for relative paths")]\r
-        HRESULT BaseURL([out, retval] BSTR* url);\r
-        [id(DISPID_BaseURL), propput, helpstring("Returns/sets the base URL for relative paths")]\r
-        HRESULT BaseURL([in] BSTR url);\r
-\r
-        [id(DISPID_StartTime), propget, helpstring("Returns/sets playback start time of URL.")]\r
-        HRESULT StartTime([out, retval] long* seconds);\r
-        [id(DISPID_StartTime), propput, helpstring("Returns/sets playback start time of URL.")]\r
-        HRESULT StartTime([in] long seconds);\r
-\r
-        [id(DISPID_MRL), propget, helpstring("Returns/sets the default MRL in playlist")]\r
-        HRESULT MRL([out, retval] BSTR* mrl);\r
-        [id(DISPID_MRL), propput, helpstring("Returns/sets the default MRL in playlist")]\r
-        HRESULT MRL([in] BSTR mrl);\r
-\r
-        [propget, helpstring("Returns VLC Version.")]\r
-        HRESULT VersionInfo([out, retval] BSTR* version);\r
-\r
-        [id(DISPID_Visible), propget, helpstring("Returns/sets a value that determines whether viewing area is visible or hidden.")]\r
-        HRESULT Visible([out, retval] VARIANT_BOOL* visible);\r
-        [id(DISPID_Visible), propput, helpstring("Returns/sets a value that determines whether viewing area is visible or hidden.")]\r
-        HRESULT Visible([in] VARIANT_BOOL visible);\r
-\r
-        [id(DISPID_Volume), propget, helpstring("Returns/sets default audio volume.")]\r
-        HRESULT Volume([out, retval] long* volume);\r
-        [id(DISPID_Volume), propput, helpstring("Returns/sets default audio volume.")]\r
-        HRESULT Volume([in] long volume);\r
-\r
-        [id(DISPID_BackColor), propget, helpstring("Returns/sets background color.")]\r
-        HRESULT BackColor([out, retval] OLE_COLOR* backcolor);\r
-        [id(DISPID_BackColor), propput, helpstring("Returns/sets background color.")]\r
-        HRESULT BackColor([in] OLE_COLOR backcolor);\r
-\r
-        /*\r
-         * caution: vlcobject.toolbar:bool does not yet exists in Firefox\r
-         * plugin. Official usage is through "toolbar" property for now,\r
-         * which is compatibile with Firefox.\r
-         */\r
-        [id(DISPID_Toolbar), propget, helpstring("Returns/sets visibility of the toolbar")]\r
-        HRESULT Toolbar([out, retval] VARIANT_BOOL* visible);\r
-        [id(DISPID_Toolbar), propput, helpstring("Returns/sets visibility of the toolbar")]\r
-        HRESULT Toolbar([in] VARIANT_BOOL visible);\r
-\r
-        [propget, helpstring("Returns the audio object.")]\r
-        HRESULT audio([out, retval] IVLCAudio** obj);\r
-\r
-        [propget, helpstring("Returns the audio object.")]\r
-        HRESULT input([out, retval] IVLCInput** obj);\r
-\r
-        [propget, helpstring("Returns the playlist object.")]\r
-        HRESULT playlist([out, retval] IVLCPlaylist** obj);\r
-\r
-        [propget, helpstring("Returns the audio object.")]\r
-        HRESULT subtitle([out, retval] IVLCSubtitle** obj);\r
-\r
-        [propget, helpstring("Returns the audio object.")]\r
-        HRESULT video([out, retval] IVLCVideo** obj);\r
-    };\r
-\r
-    [\r
-      uuid(E23FE9C6-778E-49D4-B537-38FCDE4887D8),\r
-      helpstring("VLC control (deprecated)"),\r
-      control\r
-    ]\r
-    coclass VLCPlugin\r
-    {\r
-        [default] interface IVLCControl;\r
-        interface IVLCControl2;\r
-        [default, source] dispinterface DVLCEvents;\r
-    };\r
-\r
-    [\r
-      uuid(9BE31822-FDAD-461B-AD51-BE1D1C159921),\r
-      helpstring("VLC control"),\r
-      control\r
-    ]\r
-    coclass VLCPlugin2\r
-    {\r
-        [default] interface IVLCControl2;\r
-        interface IVLCControl;\r
-        [default, source] dispinterface DVLCEvents;\r
-    };\r
-};\r
diff --git a/projects/activex/axvlc.inf.in b/projects/activex/axvlc.inf.in
deleted file mode 100644 (file)
index 38f7c3b..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-; Version number and signature of INF file.\r
-;\r
-[version]\r
-  signature="$CHICAGO$"\r
-  AdvancedINF=2.0\r
-\r
-[Add.Code]\r
-  axvlc.dll=axvlc.dll\r
-  vlc-@VERSION@-win32.exe=vlc-@VERSION@-win32.exe\r
-\r
-[axvlc.dll]\r
-  FileVersion=@VERSION_MAJOR@,@VERSION_MINOR@,@VERSION_REVISION@,0\r
-  clsid={9BE31822-FDAD-461B-AD51-BE1D1C159921}\r
-  RegisterServer=no\r
-  Hook=runinstaller\r
-\r
-[vlc-@VERSION@-win32.exe]\r
-  FileVersion=@VERSION_MAJOR@,@VERSION_MINOR@,@VERSION_REVISION@,0\r
-  file-win32-x86=http://downloads.videolan.org/pub/videolan/vlc/@VERSION@/win32/vlc-@VERSION@-win32.exe\r
-\r
-[runinstaller]\r
-  run=%EXTRACT_DIR%\vlc-@VERSION@-win32.exe\r
-\r
diff --git a/projects/activex/axvlc.tlb b/projects/activex/axvlc.tlb
deleted file mode 100644 (file)
index ac0a118..0000000
Binary files a/projects/activex/axvlc.tlb and /dev/null differ
diff --git a/projects/activex/axvlc_idl.c b/projects/activex/axvlc_idl.c
deleted file mode 100644 (file)
index 49a90bf..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-/*** Autogenerated by WIDL 1.1.38 from axvlc.idl - Do not edit ***/
-
-#include <rpc.h>
-#include <rpcndr.h>
-
-#include <initguid.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-DEFINE_GUID(LIBID_AXVLC, 0xdf2bbe39, 0x40a8, 0x433b, 0xa2,0x79, 0x07,0x3f,0x48,0xda,0x94,0xb6);
-DEFINE_GUID(IID_IVLCControl, 0xc2fa41d0, 0xb113, 0x476e, 0xac,0x8c, 0x9b,0xd1,0x49,0x99,0xc1,0xc1);
-DEFINE_GUID(DIID_DVLCEvents, 0xdf48072f, 0x5ef8, 0x434e, 0x9b,0x40, 0xe2,0xf3,0xae,0x75,0x9b,0x5f);
-DEFINE_GUID(IID_IVLCAudio, 0x9e0bd17b, 0x2d3c, 0x4656, 0xb9,0x4d, 0x03,0x08,0x4f,0x3f,0xd9,0xd4);
-DEFINE_GUID(IID_IVLCInput, 0x49e0dbd1, 0x9440, 0x466c, 0x9c,0x97, 0x95,0xc6,0x71,0x90,0xc6,0x03);
-DEFINE_GUID(IID_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_IVLCSubtitle, 0x465e787a, 0x0556, 0x452f, 0x94,0x77, 0x95,0x4e,0x4a,0x94,0x00,0x03);
-DEFINE_GUID(IID_IVLCMarquee, 0x8d076ad6, 0x9b6f, 0x4150, 0xa0,0xfd, 0x5d,0x7e,0x8c,0x8c,0xb0,0x2c);
-DEFINE_GUID(IID_IVLCLogo, 0x8a4a20c2, 0x93f3, 0x44e8, 0x86,0x44, 0xbe,0xb2,0xe3,0x48,0x7e,0x84);
-DEFINE_GUID(IID_IVLCDeinterlace, 0xbc97469f, 0xcb11, 0x4037, 0x8d,0xce, 0x5f,0xc9,0xf5,0xf8,0x53,0x07);
-DEFINE_GUID(IID_IVLCVideo, 0x0aaedf0b, 0xd333, 0x4b27, 0xa0,0xc6, 0xbb,0xf3,0x14,0x13,0xa4,0x2e);
-DEFINE_GUID(IID_IVLCControl2, 0x2d719729, 0x5333, 0x406c, 0xbf,0x12, 0x8d,0xe7,0x87,0xfd,0x65,0xe3);
-DEFINE_GUID(CLSID_VLCPlugin, 0xe23fe9c6, 0x778e, 0x49d4, 0xb5,0x37, 0x38,0xfc,0xde,0x48,0x87,0xd8);
-DEFINE_GUID(CLSID_VLCPlugin2, 0x9be31822, 0xfdad, 0x461b, 0xad,0x51, 0xbe,0x1d,0x1c,0x15,0x99,0x21);
-
-#ifdef __cplusplus
-}
-#endif
-
diff --git a/projects/activex/axvlc_idl.h b/projects/activex/axvlc_idl.h
deleted file mode 100644 (file)
index d7baa93..0000000
+++ /dev/null
@@ -1,3641 +0,0 @@
-/*** Autogenerated by WIDL 1.1.38 from axvlc.idl - Do not edit ***/
-
-#include <rpc.h>
-#include <rpcndr.h>
-
-#ifndef __WIDL_AXVLC_IDL_H
-#define __WIDL_AXVLC_IDL_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Headers for imported files */
-
-#include <ocidl.h>
-
-/* Forward declarations */
-
-#ifndef __IVLCControl_FWD_DEFINED__
-#define __IVLCControl_FWD_DEFINED__
-typedef interface IVLCControl IVLCControl;
-#endif
-
-#ifndef __DVLCEvents_FWD_DEFINED__
-#define __DVLCEvents_FWD_DEFINED__
-typedef interface DVLCEvents DVLCEvents;
-#endif
-
-#ifndef __IVLCAudio_FWD_DEFINED__
-#define __IVLCAudio_FWD_DEFINED__
-typedef interface IVLCAudio IVLCAudio;
-#endif
-
-#ifndef __IVLCInput_FWD_DEFINED__
-#define __IVLCInput_FWD_DEFINED__
-typedef interface IVLCInput IVLCInput;
-#endif
-
-#ifndef __IVLCPlaylistItems_FWD_DEFINED__
-#define __IVLCPlaylistItems_FWD_DEFINED__
-typedef interface IVLCPlaylistItems IVLCPlaylistItems;
-#endif
-
-#ifndef __IVLCPlaylist_FWD_DEFINED__
-#define __IVLCPlaylist_FWD_DEFINED__
-typedef interface IVLCPlaylist IVLCPlaylist;
-#endif
-
-#ifndef __IVLCSubtitle_FWD_DEFINED__
-#define __IVLCSubtitle_FWD_DEFINED__
-typedef interface IVLCSubtitle IVLCSubtitle;
-#endif
-
-#ifndef __IVLCMarquee_FWD_DEFINED__
-#define __IVLCMarquee_FWD_DEFINED__
-typedef interface IVLCMarquee IVLCMarquee;
-#endif
-
-#ifndef __IVLCLogo_FWD_DEFINED__
-#define __IVLCLogo_FWD_DEFINED__
-typedef interface IVLCLogo IVLCLogo;
-#endif
-
-#ifndef __IVLCDeinterlace_FWD_DEFINED__
-#define __IVLCDeinterlace_FWD_DEFINED__
-typedef interface IVLCDeinterlace IVLCDeinterlace;
-#endif
-
-#ifndef __IVLCVideo_FWD_DEFINED__
-#define __IVLCVideo_FWD_DEFINED__
-typedef interface IVLCVideo IVLCVideo;
-#endif
-
-#ifndef __IVLCControl2_FWD_DEFINED__
-#define __IVLCControl2_FWD_DEFINED__
-typedef interface IVLCControl2 IVLCControl2;
-#endif
-
-#ifndef __VLCPlugin_FWD_DEFINED__
-#define __VLCPlugin_FWD_DEFINED__
-typedef struct VLCPlugin VLCPlugin;
-#endif /* defined __VLCPlugin_FWD_DEFINED__ */
-
-#ifndef __VLCPlugin2_FWD_DEFINED__
-#define __VLCPlugin2_FWD_DEFINED__
-typedef struct VLCPlugin2 VLCPlugin2;
-#endif /* defined __VLCPlugin2_FWD_DEFINED__ */
-
-
-
-DEFINE_GUID(LIBID_AXVLC, 0xdf2bbe39, 0x40a8, 0x433b, 0xa2,0x79, 0x07,0x3f,0x48,0xda,0x94,0xb6);
-
-#ifndef __IVLCControl_FWD_DEFINED__
-#define __IVLCControl_FWD_DEFINED__
-typedef interface IVLCControl IVLCControl;
-#endif
-
-#ifndef __IVLCAudio_FWD_DEFINED__
-#define __IVLCAudio_FWD_DEFINED__
-typedef interface IVLCAudio IVLCAudio;
-#endif
-
-#ifndef __IVLCInput_FWD_DEFINED__
-#define __IVLCInput_FWD_DEFINED__
-typedef interface IVLCInput IVLCInput;
-#endif
-
-#ifndef __IVLCLogo_FWD_DEFINED__
-#define __IVLCLogo_FWD_DEFINED__
-typedef interface IVLCLogo IVLCLogo;
-#endif
-
-#ifndef __IVLCDeinterlace_FWD_DEFINED__
-#define __IVLCDeinterlace_FWD_DEFINED__
-typedef interface IVLCDeinterlace IVLCDeinterlace;
-#endif
-
-#ifndef __IVLCMarquee_FWD_DEFINED__
-#define __IVLCMarquee_FWD_DEFINED__
-typedef interface IVLCMarquee IVLCMarquee;
-#endif
-
-#ifndef __IVLCPlaylist_FWD_DEFINED__
-#define __IVLCPlaylist_FWD_DEFINED__
-typedef interface IVLCPlaylist IVLCPlaylist;
-#endif
-
-#ifndef __IVLCSubtitle_FWD_DEFINED__
-#define __IVLCSubtitle_FWD_DEFINED__
-typedef interface IVLCSubtitle IVLCSubtitle;
-#endif
-
-#ifndef __IVLCVideo_FWD_DEFINED__
-#define __IVLCVideo_FWD_DEFINED__
-typedef interface IVLCVideo IVLCVideo;
-#endif
-
-#ifndef __IVLCControl2_FWD_DEFINED__
-#define __IVLCControl2_FWD_DEFINED__
-typedef interface IVLCControl2 IVLCControl2;
-#endif
-
-#ifndef __DVLCEvents_FWD_DEFINED__
-#define __DVLCEvents_FWD_DEFINED__
-typedef interface DVLCEvents DVLCEvents;
-#endif
-
-typedef enum VLCPlaylistMode {
-    VLCPlayListInsert = 1,
-    VLCPlayListInsertAndGo = 9,
-    VLCPlayListReplace = 2,
-    VLCPlayListReplaceAndGo = 10,
-    VLCPlayListAppend = 4,
-    VLCPlayListAppendAndGo = 12,
-    VLCPlayListCheckInsert = 16
-} eVLCPlaylistMode;
-#define VLCPlayListEnd (-666)
-
-#define DISPID_BackColor (-501)
-
-#define DISPID_Visible (100)
-
-#define DISPID_Playing (101)
-
-#define DISPID_Position (102)
-
-#define DISPID_Time (103)
-
-#define DISPID_Length (104)
-
-#define DISPID_Volume (105)
-
-#define DISPID_MRL (106)
-
-#define DISPID_AutoPlay (107)
-
-#define DISPID_AutoLoop (108)
-
-#define DISPID_StartTime (109)
-
-#define DISPID_BaseURL (110)
-
-#define DISPID_Toolbar (111)
-
-/*****************************************************************************
- * IVLCControl interface
- */
-#ifndef __IVLCControl_INTERFACE_DEFINED__
-#define __IVLCControl_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_IVLCControl, 0xc2fa41d0, 0xb113, 0x476e, 0xac,0x8c, 0x9b,0xd1,0x49,0x99,0xc1,0xc1);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface IVLCControl : public IDispatch
-{
-    virtual HRESULT STDMETHODCALLTYPE get_Visible(
-        VARIANT_BOOL *visible) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE put_Visible(
-        VARIANT_BOOL visible) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE play(
-        ) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE pause(
-        ) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE stop(
-        ) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_Playing(
-        VARIANT_BOOL *isPlaying) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_Position(
-        float *position) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE put_Position(
-        float position) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_Time(
-        int *seconds) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE put_Time(
-        int seconds) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE shuttle(
-        int seconds) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE fullscreen(
-        ) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_Length(
-        int *seconds) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE playFaster(
-        ) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE playSlower(
-        ) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_Volume(
-        int *volume) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE put_Volume(
-        int volume) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE toggleMute(
-        ) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE setVariable(
-        BSTR name,
-        VARIANT value) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE getVariable(
-        BSTR name,
-        VARIANT *value) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE addTarget(
-        BSTR uri,
-        VARIANT options,
-        enum VLCPlaylistMode mode,
-        int position) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_PlaylistIndex(
-        int *index) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_PlaylistCount(
-        int *index) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE playlistNext(
-        ) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE playlistPrev(
-        ) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE playlistClear(
-        ) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_VersionInfo(
-        BSTR *version) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_MRL(
-        BSTR *mrl) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE put_MRL(
-        BSTR mrl) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_AutoPlay(
-        VARIANT_BOOL *autoplay) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE put_AutoPlay(
-        VARIANT_BOOL autoplay) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_AutoLoop(
-        VARIANT_BOOL *autoloop) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE put_AutoLoop(
-        VARIANT_BOOL autoloop) = 0;
-
-};
-#else
-typedef struct IVLCControlVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IVLCControl* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        IVLCControl* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        IVLCControl* This);
-
-    /*** IDispatch methods ***/
-    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
-        IVLCControl* This,
-        UINT *pctinfo);
-
-    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
-        IVLCControl* This,
-        UINT iTInfo,
-        LCID lcid,
-        ITypeInfo **ppTInfo);
-
-    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
-        IVLCControl* This,
-        REFIID riid,
-        LPOLESTR *rgszNames,
-        UINT cNames,
-        LCID lcid,
-        DISPID *rgDispId);
-
-    HRESULT (STDMETHODCALLTYPE *Invoke)(
-        IVLCControl* This,
-        DISPID dispIdMember,
-        REFIID riid,
-        LCID lcid,
-        WORD wFlags,
-        DISPPARAMS *pDispParams,
-        VARIANT *pVarResult,
-        EXCEPINFO *pExcepInfo,
-        UINT *puArgErr);
-
-    /*** IVLCControl methods ***/
-    HRESULT (STDMETHODCALLTYPE *get_Visible)(
-        IVLCControl* This,
-        VARIANT_BOOL *visible);
-
-    HRESULT (STDMETHODCALLTYPE *put_Visible)(
-        IVLCControl* This,
-        VARIANT_BOOL visible);
-
-    HRESULT (STDMETHODCALLTYPE *play)(
-        IVLCControl* This);
-
-    HRESULT (STDMETHODCALLTYPE *pause)(
-        IVLCControl* This);
-
-    HRESULT (STDMETHODCALLTYPE *stop)(
-        IVLCControl* This);
-
-    HRESULT (STDMETHODCALLTYPE *get_Playing)(
-        IVLCControl* This,
-        VARIANT_BOOL *isPlaying);
-
-    HRESULT (STDMETHODCALLTYPE *get_Position)(
-        IVLCControl* This,
-        float *position);
-
-    HRESULT (STDMETHODCALLTYPE *put_Position)(
-        IVLCControl* This,
-        float position);
-
-    HRESULT (STDMETHODCALLTYPE *get_Time)(
-        IVLCControl* This,
-        int *seconds);
-
-    HRESULT (STDMETHODCALLTYPE *put_Time)(
-        IVLCControl* This,
-        int seconds);
-
-    HRESULT (STDMETHODCALLTYPE *shuttle)(
-        IVLCControl* This,
-        int seconds);
-
-    HRESULT (STDMETHODCALLTYPE *fullscreen)(
-        IVLCControl* This);
-
-    HRESULT (STDMETHODCALLTYPE *get_Length)(
-        IVLCControl* This,
-        int *seconds);
-
-    HRESULT (STDMETHODCALLTYPE *playFaster)(
-        IVLCControl* This);
-
-    HRESULT (STDMETHODCALLTYPE *playSlower)(
-        IVLCControl* This);
-
-    HRESULT (STDMETHODCALLTYPE *get_Volume)(
-        IVLCControl* This,
-        int *volume);
-
-    HRESULT (STDMETHODCALLTYPE *put_Volume)(
-        IVLCControl* This,
-        int volume);
-
-    HRESULT (STDMETHODCALLTYPE *toggleMute)(
-        IVLCControl* This);
-
-    HRESULT (STDMETHODCALLTYPE *setVariable)(
-        IVLCControl* This,
-        BSTR name,
-        VARIANT value);
-
-    HRESULT (STDMETHODCALLTYPE *getVariable)(
-        IVLCControl* This,
-        BSTR name,
-        VARIANT *value);
-
-    HRESULT (STDMETHODCALLTYPE *addTarget)(
-        IVLCControl* This,
-        BSTR uri,
-        VARIANT options,
-        enum VLCPlaylistMode mode,
-        int position);
-
-    HRESULT (STDMETHODCALLTYPE *get_PlaylistIndex)(
-        IVLCControl* This,
-        int *index);
-
-    HRESULT (STDMETHODCALLTYPE *get_PlaylistCount)(
-        IVLCControl* This,
-        int *index);
-
-    HRESULT (STDMETHODCALLTYPE *playlistNext)(
-        IVLCControl* This);
-
-    HRESULT (STDMETHODCALLTYPE *playlistPrev)(
-        IVLCControl* This);
-
-    HRESULT (STDMETHODCALLTYPE *playlistClear)(
-        IVLCControl* This);
-
-    HRESULT (STDMETHODCALLTYPE *get_VersionInfo)(
-        IVLCControl* This,
-        BSTR *version);
-
-    HRESULT (STDMETHODCALLTYPE *get_MRL)(
-        IVLCControl* This,
-        BSTR *mrl);
-
-    HRESULT (STDMETHODCALLTYPE *put_MRL)(
-        IVLCControl* This,
-        BSTR mrl);
-
-    HRESULT (STDMETHODCALLTYPE *get_AutoPlay)(
-        IVLCControl* This,
-        VARIANT_BOOL *autoplay);
-
-    HRESULT (STDMETHODCALLTYPE *put_AutoPlay)(
-        IVLCControl* This,
-        VARIANT_BOOL autoplay);
-
-    HRESULT (STDMETHODCALLTYPE *get_AutoLoop)(
-        IVLCControl* This,
-        VARIANT_BOOL *autoloop);
-
-    HRESULT (STDMETHODCALLTYPE *put_AutoLoop)(
-        IVLCControl* This,
-        VARIANT_BOOL autoloop);
-
-    END_INTERFACE
-} IVLCControlVtbl;
-interface IVLCControl {
-    CONST_VTBL IVLCControlVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define IVLCControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IVLCControl_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IVLCControl_Release(This) (This)->lpVtbl->Release(This)
-/*** IDispatch methods ***/
-#define IVLCControl_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define IVLCControl_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define IVLCControl_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define IVLCControl_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-/*** IVLCControl methods ***/
-#define IVLCControl_get_Visible(This,visible) (This)->lpVtbl->get_Visible(This,visible)
-#define IVLCControl_put_Visible(This,visible) (This)->lpVtbl->put_Visible(This,visible)
-#define IVLCControl_play(This) (This)->lpVtbl->play(This)
-#define IVLCControl_pause(This) (This)->lpVtbl->pause(This)
-#define IVLCControl_stop(This) (This)->lpVtbl->stop(This)
-#define IVLCControl_get_Playing(This,isPlaying) (This)->lpVtbl->get_Playing(This,isPlaying)
-#define IVLCControl_get_Position(This,position) (This)->lpVtbl->get_Position(This,position)
-#define IVLCControl_put_Position(This,position) (This)->lpVtbl->put_Position(This,position)
-#define IVLCControl_get_Time(This,seconds) (This)->lpVtbl->get_Time(This,seconds)
-#define IVLCControl_put_Time(This,seconds) (This)->lpVtbl->put_Time(This,seconds)
-#define IVLCControl_shuttle(This,seconds) (This)->lpVtbl->shuttle(This,seconds)
-#define IVLCControl_fullscreen(This) (This)->lpVtbl->fullscreen(This)
-#define IVLCControl_get_Length(This,seconds) (This)->lpVtbl->get_Length(This,seconds)
-#define IVLCControl_playFaster(This) (This)->lpVtbl->playFaster(This)
-#define IVLCControl_playSlower(This) (This)->lpVtbl->playSlower(This)
-#define IVLCControl_get_Volume(This,volume) (This)->lpVtbl->get_Volume(This,volume)
-#define IVLCControl_put_Volume(This,volume) (This)->lpVtbl->put_Volume(This,volume)
-#define IVLCControl_toggleMute(This) (This)->lpVtbl->toggleMute(This)
-#define IVLCControl_setVariable(This,name,value) (This)->lpVtbl->setVariable(This,name,value)
-#define IVLCControl_getVariable(This,name,value) (This)->lpVtbl->getVariable(This,name,value)
-#define IVLCControl_addTarget(This,uri,options,mode,position) (This)->lpVtbl->addTarget(This,uri,options,mode,position)
-#define IVLCControl_get_PlaylistIndex(This,index) (This)->lpVtbl->get_PlaylistIndex(This,index)
-#define IVLCControl_get_PlaylistCount(This,index) (This)->lpVtbl->get_PlaylistCount(This,index)
-#define IVLCControl_playlistNext(This) (This)->lpVtbl->playlistNext(This)
-#define IVLCControl_playlistPrev(This) (This)->lpVtbl->playlistPrev(This)
-#define IVLCControl_playlistClear(This) (This)->lpVtbl->playlistClear(This)
-#define IVLCControl_get_VersionInfo(This,version) (This)->lpVtbl->get_VersionInfo(This,version)
-#define IVLCControl_get_MRL(This,mrl) (This)->lpVtbl->get_MRL(This,mrl)
-#define IVLCControl_put_MRL(This,mrl) (This)->lpVtbl->put_MRL(This,mrl)
-#define IVLCControl_get_AutoPlay(This,autoplay) (This)->lpVtbl->get_AutoPlay(This,autoplay)
-#define IVLCControl_put_AutoPlay(This,autoplay) (This)->lpVtbl->put_AutoPlay(This,autoplay)
-#define IVLCControl_get_AutoLoop(This,autoloop) (This)->lpVtbl->get_AutoLoop(This,autoloop)
-#define IVLCControl_put_AutoLoop(This,autoloop) (This)->lpVtbl->put_AutoLoop(This,autoloop)
-#endif
-
-#endif
-
-HRESULT STDMETHODCALLTYPE IVLCControl_get_Visible_Proxy(
-    IVLCControl* This,
-    VARIANT_BOOL *visible);
-void __RPC_STUB IVLCControl_get_Visible_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCControl_put_Visible_Proxy(
-    IVLCControl* This,
-    VARIANT_BOOL visible);
-void __RPC_STUB IVLCControl_put_Visible_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCControl_play_Proxy(
-    IVLCControl* This);
-void __RPC_STUB IVLCControl_play_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCControl_pause_Proxy(
-    IVLCControl* This);
-void __RPC_STUB IVLCControl_pause_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCControl_stop_Proxy(
-    IVLCControl* This);
-void __RPC_STUB IVLCControl_stop_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCControl_get_Playing_Proxy(
-    IVLCControl* This,
-    VARIANT_BOOL *isPlaying);
-void __RPC_STUB IVLCControl_get_Playing_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCControl_get_Position_Proxy(
-    IVLCControl* This,
-    float *position);
-void __RPC_STUB IVLCControl_get_Position_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCControl_put_Position_Proxy(
-    IVLCControl* This,
-    float position);
-void __RPC_STUB IVLCControl_put_Position_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCControl_get_Time_Proxy(
-    IVLCControl* This,
-    int *seconds);
-void __RPC_STUB IVLCControl_get_Time_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCControl_put_Time_Proxy(
-    IVLCControl* This,
-    int seconds);
-void __RPC_STUB IVLCControl_put_Time_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCControl_shuttle_Proxy(
-    IVLCControl* This,
-    int seconds);
-void __RPC_STUB IVLCControl_shuttle_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCControl_fullscreen_Proxy(
-    IVLCControl* This);
-void __RPC_STUB IVLCControl_fullscreen_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCControl_get_Length_Proxy(
-    IVLCControl* This,
-    int *seconds);
-void __RPC_STUB IVLCControl_get_Length_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCControl_playFaster_Proxy(
-    IVLCControl* This);
-void __RPC_STUB IVLCControl_playFaster_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCControl_playSlower_Proxy(
-    IVLCControl* This);
-void __RPC_STUB IVLCControl_playSlower_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCControl_get_Volume_Proxy(
-    IVLCControl* This,
-    int *volume);
-void __RPC_STUB IVLCControl_get_Volume_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCControl_put_Volume_Proxy(
-    IVLCControl* This,
-    int volume);
-void __RPC_STUB IVLCControl_put_Volume_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCControl_toggleMute_Proxy(
-    IVLCControl* This);
-void __RPC_STUB IVLCControl_toggleMute_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCControl_setVariable_Proxy(
-    IVLCControl* This,
-    BSTR name,
-    VARIANT value);
-void __RPC_STUB IVLCControl_setVariable_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCControl_getVariable_Proxy(
-    IVLCControl* This,
-    BSTR name,
-    VARIANT *value);
-void __RPC_STUB IVLCControl_getVariable_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCControl_addTarget_Proxy(
-    IVLCControl* This,
-    BSTR uri,
-    VARIANT options,
-    enum VLCPlaylistMode mode,
-    int position);
-void __RPC_STUB IVLCControl_addTarget_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCControl_get_PlaylistIndex_Proxy(
-    IVLCControl* This,
-    int *index);
-void __RPC_STUB IVLCControl_get_PlaylistIndex_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCControl_get_PlaylistCount_Proxy(
-    IVLCControl* This,
-    int *index);
-void __RPC_STUB IVLCControl_get_PlaylistCount_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCControl_playlistNext_Proxy(
-    IVLCControl* This);
-void __RPC_STUB IVLCControl_playlistNext_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCControl_playlistPrev_Proxy(
-    IVLCControl* This);
-void __RPC_STUB IVLCControl_playlistPrev_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCControl_playlistClear_Proxy(
-    IVLCControl* This);
-void __RPC_STUB IVLCControl_playlistClear_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCControl_get_VersionInfo_Proxy(
-    IVLCControl* This,
-    BSTR *version);
-void __RPC_STUB IVLCControl_get_VersionInfo_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCControl_get_MRL_Proxy(
-    IVLCControl* This,
-    BSTR *mrl);
-void __RPC_STUB IVLCControl_get_MRL_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCControl_put_MRL_Proxy(
-    IVLCControl* This,
-    BSTR mrl);
-void __RPC_STUB IVLCControl_put_MRL_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCControl_get_AutoPlay_Proxy(
-    IVLCControl* This,
-    VARIANT_BOOL *autoplay);
-void __RPC_STUB IVLCControl_get_AutoPlay_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCControl_put_AutoPlay_Proxy(
-    IVLCControl* This,
-    VARIANT_BOOL autoplay);
-void __RPC_STUB IVLCControl_put_AutoPlay_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCControl_get_AutoLoop_Proxy(
-    IVLCControl* This,
-    VARIANT_BOOL *autoloop);
-void __RPC_STUB IVLCControl_get_AutoLoop_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCControl_put_AutoLoop_Proxy(
-    IVLCControl* This,
-    VARIANT_BOOL autoloop);
-void __RPC_STUB IVLCControl_put_AutoLoop_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __IVLCControl_INTERFACE_DEFINED__ */
-
-#define DISPID_PlayEvent (100)
-
-#define DISPID_PauseEvent (101)
-
-#define DISPID_StopEvent (102)
-
-#define DISPID_MediaPlayerNothingSpecialEvent (200)
-
-#define DISPID_MediaPlayerOpeningEvent (201)
-
-#define DISPID_MediaPlayerBufferingEvent (202)
-
-#define DISPID_MediaPlayerPlayingEvent (203)
-
-#define DISPID_MediaPlayerPausedEvent (204)
-
-#define DISPID_MediaPlayerForwardEvent (205)
-
-#define DISPID_MediaPlayerBackwardEvent (206)
-
-#define DISPID_MediaPlayerEncounteredErrorEvent (207)
-
-#define DISPID_MediaPlayerEndReachedEvent (208)
-
-#define DISPID_MediaPlayerStoppedEvent (209)
-
-#define DISPID_MediaPlayerTimeChangedEvent (210)
-
-#define DISPID_MediaPlayerPositionChangedEvent (211)
-
-#define DISPID_MediaPlayerSeekableChangedEvent (212)
-
-#define DISPID_MediaPlayerPausableChangedEvent (213)
-
-/*****************************************************************************
- * DVLCEvents dispinterface
- */
-#ifndef __DVLCEvents_DISPINTERFACE_DEFINED__
-#define __DVLCEvents_DISPINTERFACE_DEFINED__
-
-DEFINE_GUID(DIID_DVLCEvents, 0xdf48072f, 0x5ef8, 0x434e, 0x9b,0x40, 0xe2,0xf3,0xae,0x75,0x9b,0x5f);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface DVLCEvents : public IDispatch
-{
-};
-#else
-typedef struct DVLCEventsVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        DVLCEvents* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        DVLCEvents* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        DVLCEvents* This);
-
-    /*** IDispatch methods ***/
-    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
-        DVLCEvents* This,
-        UINT *pctinfo);
-
-    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
-        DVLCEvents* This,
-        UINT iTInfo,
-        LCID lcid,
-        ITypeInfo **ppTInfo);
-
-    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
-        DVLCEvents* This,
-        REFIID riid,
-        LPOLESTR *rgszNames,
-        UINT cNames,
-        LCID lcid,
-        DISPID *rgDispId);
-
-    HRESULT (STDMETHODCALLTYPE *Invoke)(
-        DVLCEvents* This,
-        DISPID dispIdMember,
-        REFIID riid,
-        LCID lcid,
-        WORD wFlags,
-        DISPPARAMS *pDispParams,
-        VARIANT *pVarResult,
-        EXCEPINFO *pExcepInfo,
-        UINT *puArgErr);
-
-    END_INTERFACE
-} DVLCEventsVtbl;
-interface DVLCEvents {
-    CONST_VTBL DVLCEventsVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define DVLCEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define DVLCEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define DVLCEvents_Release(This) (This)->lpVtbl->Release(This)
-/*** IDispatch methods ***/
-#define DVLCEvents_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define DVLCEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define DVLCEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define DVLCEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#endif
-
-#endif
-
-#endif  /* __DVLCEvents_DISPINTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * IVLCAudio interface
- */
-#ifndef __IVLCAudio_INTERFACE_DEFINED__
-#define __IVLCAudio_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_IVLCAudio, 0x9e0bd17b, 0x2d3c, 0x4656, 0xb9,0x4d, 0x03,0x08,0x4f,0x3f,0xd9,0xd4);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface IVLCAudio : public IDispatch
-{
-    virtual HRESULT STDMETHODCALLTYPE get_mute(
-        VARIANT_BOOL *muted) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE put_mute(
-        VARIANT_BOOL muted) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_volume(
-        LONG *volume) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE put_volume(
-        LONG volume) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE toggleMute(
-        ) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_track(
-        LONG *track) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE put_track(
-        LONG track) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_count(
-        LONG *trackNumber) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE description(
-        LONG trackID,
-        BSTR *name) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_channel(
-        LONG *channel) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE put_channel(
-        LONG channel) = 0;
-
-};
-#else
-typedef struct IVLCAudioVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IVLCAudio* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        IVLCAudio* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        IVLCAudio* This);
-
-    /*** IDispatch methods ***/
-    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
-        IVLCAudio* This,
-        UINT *pctinfo);
-
-    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
-        IVLCAudio* This,
-        UINT iTInfo,
-        LCID lcid,
-        ITypeInfo **ppTInfo);
-
-    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
-        IVLCAudio* This,
-        REFIID riid,
-        LPOLESTR *rgszNames,
-        UINT cNames,
-        LCID lcid,
-        DISPID *rgDispId);
-
-    HRESULT (STDMETHODCALLTYPE *Invoke)(
-        IVLCAudio* This,
-        DISPID dispIdMember,
-        REFIID riid,
-        LCID lcid,
-        WORD wFlags,
-        DISPPARAMS *pDispParams,
-        VARIANT *pVarResult,
-        EXCEPINFO *pExcepInfo,
-        UINT *puArgErr);
-
-    /*** IVLCAudio methods ***/
-    HRESULT (STDMETHODCALLTYPE *get_mute)(
-        IVLCAudio* This,
-        VARIANT_BOOL *muted);
-
-    HRESULT (STDMETHODCALLTYPE *put_mute)(
-        IVLCAudio* This,
-        VARIANT_BOOL muted);
-
-    HRESULT (STDMETHODCALLTYPE *get_volume)(
-        IVLCAudio* This,
-        LONG *volume);
-
-    HRESULT (STDMETHODCALLTYPE *put_volume)(
-        IVLCAudio* This,
-        LONG volume);
-
-    HRESULT (STDMETHODCALLTYPE *toggleMute)(
-        IVLCAudio* This);
-
-    HRESULT (STDMETHODCALLTYPE *get_track)(
-        IVLCAudio* This,
-        LONG *track);
-
-    HRESULT (STDMETHODCALLTYPE *put_track)(
-        IVLCAudio* This,
-        LONG track);
-
-    HRESULT (STDMETHODCALLTYPE *get_count)(
-        IVLCAudio* This,
-        LONG *trackNumber);
-
-    HRESULT (STDMETHODCALLTYPE *description)(
-        IVLCAudio* This,
-        LONG trackID,
-        BSTR *name);
-
-    HRESULT (STDMETHODCALLTYPE *get_channel)(
-        IVLCAudio* This,
-        LONG *channel);
-
-    HRESULT (STDMETHODCALLTYPE *put_channel)(
-        IVLCAudio* This,
-        LONG channel);
-
-    END_INTERFACE
-} IVLCAudioVtbl;
-interface IVLCAudio {
-    CONST_VTBL IVLCAudioVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define IVLCAudio_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IVLCAudio_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IVLCAudio_Release(This) (This)->lpVtbl->Release(This)
-/*** IDispatch methods ***/
-#define IVLCAudio_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define IVLCAudio_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define IVLCAudio_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define IVLCAudio_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-/*** IVLCAudio methods ***/
-#define IVLCAudio_get_mute(This,muted) (This)->lpVtbl->get_mute(This,muted)
-#define IVLCAudio_put_mute(This,muted) (This)->lpVtbl->put_mute(This,muted)
-#define IVLCAudio_get_volume(This,volume) (This)->lpVtbl->get_volume(This,volume)
-#define IVLCAudio_put_volume(This,volume) (This)->lpVtbl->put_volume(This,volume)
-#define IVLCAudio_toggleMute(This) (This)->lpVtbl->toggleMute(This)
-#define IVLCAudio_get_track(This,track) (This)->lpVtbl->get_track(This,track)
-#define IVLCAudio_put_track(This,track) (This)->lpVtbl->put_track(This,track)
-#define IVLCAudio_get_count(This,trackNumber) (This)->lpVtbl->get_count(This,trackNumber)
-#define IVLCAudio_description(This,trackID,name) (This)->lpVtbl->description(This,trackID,name)
-#define IVLCAudio_get_channel(This,channel) (This)->lpVtbl->get_channel(This,channel)
-#define IVLCAudio_put_channel(This,channel) (This)->lpVtbl->put_channel(This,channel)
-#endif
-
-#endif
-
-HRESULT STDMETHODCALLTYPE IVLCAudio_get_mute_Proxy(
-    IVLCAudio* This,
-    VARIANT_BOOL *muted);
-void __RPC_STUB IVLCAudio_get_mute_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCAudio_put_mute_Proxy(
-    IVLCAudio* This,
-    VARIANT_BOOL muted);
-void __RPC_STUB IVLCAudio_put_mute_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCAudio_get_volume_Proxy(
-    IVLCAudio* This,
-    LONG *volume);
-void __RPC_STUB IVLCAudio_get_volume_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCAudio_put_volume_Proxy(
-    IVLCAudio* This,
-    LONG volume);
-void __RPC_STUB IVLCAudio_put_volume_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCAudio_toggleMute_Proxy(
-    IVLCAudio* This);
-void __RPC_STUB IVLCAudio_toggleMute_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCAudio_get_track_Proxy(
-    IVLCAudio* This,
-    LONG *track);
-void __RPC_STUB IVLCAudio_get_track_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCAudio_put_track_Proxy(
-    IVLCAudio* This,
-    LONG track);
-void __RPC_STUB IVLCAudio_put_track_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCAudio_get_count_Proxy(
-    IVLCAudio* This,
-    LONG *trackNumber);
-void __RPC_STUB IVLCAudio_get_count_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCAudio_description_Proxy(
-    IVLCAudio* This,
-    LONG trackID,
-    BSTR *name);
-void __RPC_STUB IVLCAudio_description_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCAudio_get_channel_Proxy(
-    IVLCAudio* This,
-    LONG *channel);
-void __RPC_STUB IVLCAudio_get_channel_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCAudio_put_channel_Proxy(
-    IVLCAudio* This,
-    LONG channel);
-void __RPC_STUB IVLCAudio_put_channel_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __IVLCAudio_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * IVLCInput interface
- */
-#ifndef __IVLCInput_INTERFACE_DEFINED__
-#define __IVLCInput_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_IVLCInput, 0x49e0dbd1, 0x9440, 0x466c, 0x9c,0x97, 0x95,0xc6,0x71,0x90,0xc6,0x03);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface IVLCInput : public IDispatch
-{
-    virtual HRESULT STDMETHODCALLTYPE get_length(
-        double *length) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_position(
-        double *position) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE put_position(
-        double position) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_time(
-        double *time) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE put_time(
-        double time) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_state(
-        LONG *state) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_rate(
-        double *rate) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE put_rate(
-        double rate) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_fps(
-        double *fps) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_hasVout(
-        VARIANT_BOOL *hasVout) = 0;
-
-};
-#else
-typedef struct IVLCInputVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IVLCInput* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        IVLCInput* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        IVLCInput* This);
-
-    /*** IDispatch methods ***/
-    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
-        IVLCInput* This,
-        UINT *pctinfo);
-
-    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
-        IVLCInput* This,
-        UINT iTInfo,
-        LCID lcid,
-        ITypeInfo **ppTInfo);
-
-    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
-        IVLCInput* This,
-        REFIID riid,
-        LPOLESTR *rgszNames,
-        UINT cNames,
-        LCID lcid,
-        DISPID *rgDispId);
-
-    HRESULT (STDMETHODCALLTYPE *Invoke)(
-        IVLCInput* This,
-        DISPID dispIdMember,
-        REFIID riid,
-        LCID lcid,
-        WORD wFlags,
-        DISPPARAMS *pDispParams,
-        VARIANT *pVarResult,
-        EXCEPINFO *pExcepInfo,
-        UINT *puArgErr);
-
-    /*** IVLCInput methods ***/
-    HRESULT (STDMETHODCALLTYPE *get_length)(
-        IVLCInput* This,
-        double *length);
-
-    HRESULT (STDMETHODCALLTYPE *get_position)(
-        IVLCInput* This,
-        double *position);
-
-    HRESULT (STDMETHODCALLTYPE *put_position)(
-        IVLCInput* This,
-        double position);
-
-    HRESULT (STDMETHODCALLTYPE *get_time)(
-        IVLCInput* This,
-        double *time);
-
-    HRESULT (STDMETHODCALLTYPE *put_time)(
-        IVLCInput* This,
-        double time);
-
-    HRESULT (STDMETHODCALLTYPE *get_state)(
-        IVLCInput* This,
-        LONG *state);
-
-    HRESULT (STDMETHODCALLTYPE *get_rate)(
-        IVLCInput* This,
-        double *rate);
-
-    HRESULT (STDMETHODCALLTYPE *put_rate)(
-        IVLCInput* This,
-        double rate);
-
-    HRESULT (STDMETHODCALLTYPE *get_fps)(
-        IVLCInput* This,
-        double *fps);
-
-    HRESULT (STDMETHODCALLTYPE *get_hasVout)(
-        IVLCInput* This,
-        VARIANT_BOOL *hasVout);
-
-    END_INTERFACE
-} IVLCInputVtbl;
-interface IVLCInput {
-    CONST_VTBL IVLCInputVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define IVLCInput_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IVLCInput_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IVLCInput_Release(This) (This)->lpVtbl->Release(This)
-/*** IDispatch methods ***/
-#define IVLCInput_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define IVLCInput_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define IVLCInput_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define IVLCInput_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-/*** IVLCInput methods ***/
-#define IVLCInput_get_length(This,length) (This)->lpVtbl->get_length(This,length)
-#define IVLCInput_get_position(This,position) (This)->lpVtbl->get_position(This,position)
-#define IVLCInput_put_position(This,position) (This)->lpVtbl->put_position(This,position)
-#define IVLCInput_get_time(This,time) (This)->lpVtbl->get_time(This,time)
-#define IVLCInput_put_time(This,time) (This)->lpVtbl->put_time(This,time)
-#define IVLCInput_get_state(This,state) (This)->lpVtbl->get_state(This,state)
-#define IVLCInput_get_rate(This,rate) (This)->lpVtbl->get_rate(This,rate)
-#define IVLCInput_put_rate(This,rate) (This)->lpVtbl->put_rate(This,rate)
-#define IVLCInput_get_fps(This,fps) (This)->lpVtbl->get_fps(This,fps)
-#define IVLCInput_get_hasVout(This,hasVout) (This)->lpVtbl->get_hasVout(This,hasVout)
-#endif
-
-#endif
-
-HRESULT STDMETHODCALLTYPE IVLCInput_get_length_Proxy(
-    IVLCInput* This,
-    double *length);
-void __RPC_STUB IVLCInput_get_length_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCInput_get_position_Proxy(
-    IVLCInput* This,
-    double *position);
-void __RPC_STUB IVLCInput_get_position_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCInput_put_position_Proxy(
-    IVLCInput* This,
-    double position);
-void __RPC_STUB IVLCInput_put_position_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCInput_get_time_Proxy(
-    IVLCInput* This,
-    double *time);
-void __RPC_STUB IVLCInput_get_time_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCInput_put_time_Proxy(
-    IVLCInput* This,
-    double time);
-void __RPC_STUB IVLCInput_put_time_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCInput_get_state_Proxy(
-    IVLCInput* This,
-    LONG *state);
-void __RPC_STUB IVLCInput_get_state_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCInput_get_rate_Proxy(
-    IVLCInput* This,
-    double *rate);
-void __RPC_STUB IVLCInput_get_rate_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCInput_put_rate_Proxy(
-    IVLCInput* This,
-    double rate);
-void __RPC_STUB IVLCInput_put_rate_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCInput_get_fps_Proxy(
-    IVLCInput* This,
-    double *fps);
-void __RPC_STUB IVLCInput_get_fps_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCInput_get_hasVout_Proxy(
-    IVLCInput* This,
-    VARIANT_BOOL *hasVout);
-void __RPC_STUB IVLCInput_get_hasVout_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __IVLCInput_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * 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_VTBL IVLCPlaylistItemsVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define IVLCPlaylistItems_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IVLCPlaylistItems_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IVLCPlaylistItems_Release(This) (This)->lpVtbl->Release(This)
-/*** IDispatch methods ***/
-#define IVLCPlaylistItems_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define IVLCPlaylistItems_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define IVLCPlaylistItems_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define IVLCPlaylistItems_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-/*** IVLCPlaylistItems methods ***/
-#define IVLCPlaylistItems_get_count(This,count) (This)->lpVtbl->get_count(This,count)
-#define IVLCPlaylistItems_clear(This) (This)->lpVtbl->clear(This)
-#define IVLCPlaylistItems_remove(This,itemId) (This)->lpVtbl->remove(This,itemId)
-#endif
-
-#endif
-
-HRESULT STDMETHODCALLTYPE 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 STDMETHODCALLTYPE IVLCPlaylistItems_clear_Proxy(
-    IVLCPlaylistItems* This);
-void __RPC_STUB IVLCPlaylistItems_clear_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE 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
- */
-#ifndef __IVLCPlaylist_INTERFACE_DEFINED__
-#define __IVLCPlaylist_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_IVLCPlaylist, 0x54613049, 0x40bf, 0x4035, 0x9e,0x70, 0x0a,0x93,0x12,0xc0,0x18,0x8d);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface IVLCPlaylist : public IDispatch
-{
-    virtual HRESULT STDMETHODCALLTYPE get_itemCount(
-        LONG *count) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_isPlaying(
-        VARIANT_BOOL *playing) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE add(
-        BSTR uri,
-        VARIANT name,
-        VARIANT options,
-        LONG *itemId) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE play(
-        ) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE playItem(
-        LONG itemId) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE togglePause(
-        ) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE stop(
-        ) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE next(
-        ) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE prev(
-        ) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE clear(
-        ) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE removeItem(
-        LONG item) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_items(
-        IVLCPlaylistItems **obj) = 0;
-
-};
-#else
-typedef struct IVLCPlaylistVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IVLCPlaylist* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        IVLCPlaylist* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        IVLCPlaylist* This);
-
-    /*** IDispatch methods ***/
-    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
-        IVLCPlaylist* This,
-        UINT *pctinfo);
-
-    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
-        IVLCPlaylist* This,
-        UINT iTInfo,
-        LCID lcid,
-        ITypeInfo **ppTInfo);
-
-    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
-        IVLCPlaylist* This,
-        REFIID riid,
-        LPOLESTR *rgszNames,
-        UINT cNames,
-        LCID lcid,
-        DISPID *rgDispId);
-
-    HRESULT (STDMETHODCALLTYPE *Invoke)(
-        IVLCPlaylist* This,
-        DISPID dispIdMember,
-        REFIID riid,
-        LCID lcid,
-        WORD wFlags,
-        DISPPARAMS *pDispParams,
-        VARIANT *pVarResult,
-        EXCEPINFO *pExcepInfo,
-        UINT *puArgErr);
-
-    /*** IVLCPlaylist methods ***/
-    HRESULT (STDMETHODCALLTYPE *get_itemCount)(
-        IVLCPlaylist* This,
-        LONG *count);
-
-    HRESULT (STDMETHODCALLTYPE *get_isPlaying)(
-        IVLCPlaylist* This,
-        VARIANT_BOOL *playing);
-
-    HRESULT (STDMETHODCALLTYPE *add)(
-        IVLCPlaylist* This,
-        BSTR uri,
-        VARIANT name,
-        VARIANT options,
-        LONG *itemId);
-
-    HRESULT (STDMETHODCALLTYPE *play)(
-        IVLCPlaylist* This);
-
-    HRESULT (STDMETHODCALLTYPE *playItem)(
-        IVLCPlaylist* This,
-        LONG itemId);
-
-    HRESULT (STDMETHODCALLTYPE *togglePause)(
-        IVLCPlaylist* This);
-
-    HRESULT (STDMETHODCALLTYPE *stop)(
-        IVLCPlaylist* This);
-
-    HRESULT (STDMETHODCALLTYPE *next)(
-        IVLCPlaylist* This);
-
-    HRESULT (STDMETHODCALLTYPE *prev)(
-        IVLCPlaylist* This);
-
-    HRESULT (STDMETHODCALLTYPE *clear)(
-        IVLCPlaylist* This);
-
-    HRESULT (STDMETHODCALLTYPE *removeItem)(
-        IVLCPlaylist* This,
-        LONG item);
-
-    HRESULT (STDMETHODCALLTYPE *get_items)(
-        IVLCPlaylist* This,
-        IVLCPlaylistItems **obj);
-
-    END_INTERFACE
-} IVLCPlaylistVtbl;
-interface IVLCPlaylist {
-    CONST_VTBL IVLCPlaylistVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define IVLCPlaylist_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IVLCPlaylist_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IVLCPlaylist_Release(This) (This)->lpVtbl->Release(This)
-/*** IDispatch methods ***/
-#define IVLCPlaylist_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define IVLCPlaylist_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define IVLCPlaylist_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define IVLCPlaylist_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-/*** IVLCPlaylist methods ***/
-#define IVLCPlaylist_get_itemCount(This,count) (This)->lpVtbl->get_itemCount(This,count)
-#define IVLCPlaylist_get_isPlaying(This,playing) (This)->lpVtbl->get_isPlaying(This,playing)
-#define IVLCPlaylist_add(This,uri,name,options,itemId) (This)->lpVtbl->add(This,uri,name,options,itemId)
-#define IVLCPlaylist_play(This) (This)->lpVtbl->play(This)
-#define IVLCPlaylist_playItem(This,itemId) (This)->lpVtbl->playItem(This,itemId)
-#define IVLCPlaylist_togglePause(This) (This)->lpVtbl->togglePause(This)
-#define IVLCPlaylist_stop(This) (This)->lpVtbl->stop(This)
-#define IVLCPlaylist_next(This) (This)->lpVtbl->next(This)
-#define IVLCPlaylist_prev(This) (This)->lpVtbl->prev(This)
-#define IVLCPlaylist_clear(This) (This)->lpVtbl->clear(This)
-#define IVLCPlaylist_removeItem(This,item) (This)->lpVtbl->removeItem(This,item)
-#define IVLCPlaylist_get_items(This,obj) (This)->lpVtbl->get_items(This,obj)
-#endif
-
-#endif
-
-HRESULT STDMETHODCALLTYPE IVLCPlaylist_get_itemCount_Proxy(
-    IVLCPlaylist* This,
-    LONG *count);
-void __RPC_STUB IVLCPlaylist_get_itemCount_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCPlaylist_get_isPlaying_Proxy(
-    IVLCPlaylist* This,
-    VARIANT_BOOL *playing);
-void __RPC_STUB IVLCPlaylist_get_isPlaying_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCPlaylist_add_Proxy(
-    IVLCPlaylist* This,
-    BSTR uri,
-    VARIANT name,
-    VARIANT options,
-    LONG *itemId);
-void __RPC_STUB IVLCPlaylist_add_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCPlaylist_play_Proxy(
-    IVLCPlaylist* This);
-void __RPC_STUB IVLCPlaylist_play_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCPlaylist_playItem_Proxy(
-    IVLCPlaylist* This,
-    LONG itemId);
-void __RPC_STUB IVLCPlaylist_playItem_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCPlaylist_togglePause_Proxy(
-    IVLCPlaylist* This);
-void __RPC_STUB IVLCPlaylist_togglePause_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCPlaylist_stop_Proxy(
-    IVLCPlaylist* This);
-void __RPC_STUB IVLCPlaylist_stop_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCPlaylist_next_Proxy(
-    IVLCPlaylist* This);
-void __RPC_STUB IVLCPlaylist_next_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCPlaylist_prev_Proxy(
-    IVLCPlaylist* This);
-void __RPC_STUB IVLCPlaylist_prev_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCPlaylist_clear_Proxy(
-    IVLCPlaylist* This);
-void __RPC_STUB IVLCPlaylist_clear_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCPlaylist_removeItem_Proxy(
-    IVLCPlaylist* This,
-    LONG item);
-void __RPC_STUB IVLCPlaylist_removeItem_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE 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__ */
-
-/*****************************************************************************
- * IVLCSubtitle interface
- */
-#ifndef __IVLCSubtitle_INTERFACE_DEFINED__
-#define __IVLCSubtitle_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_IVLCSubtitle, 0x465e787a, 0x0556, 0x452f, 0x94,0x77, 0x95,0x4e,0x4a,0x94,0x00,0x03);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface IVLCSubtitle : public IDispatch
-{
-    virtual HRESULT STDMETHODCALLTYPE get_track(
-        LONG *spu) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE put_track(
-        LONG spu) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_count(
-        LONG *spuNumber) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE description(
-        LONG nameID,
-        BSTR *name) = 0;
-
-};
-#else
-typedef struct IVLCSubtitleVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IVLCSubtitle* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        IVLCSubtitle* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        IVLCSubtitle* This);
-
-    /*** IDispatch methods ***/
-    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
-        IVLCSubtitle* This,
-        UINT *pctinfo);
-
-    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
-        IVLCSubtitle* This,
-        UINT iTInfo,
-        LCID lcid,
-        ITypeInfo **ppTInfo);
-
-    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
-        IVLCSubtitle* This,
-        REFIID riid,
-        LPOLESTR *rgszNames,
-        UINT cNames,
-        LCID lcid,
-        DISPID *rgDispId);
-
-    HRESULT (STDMETHODCALLTYPE *Invoke)(
-        IVLCSubtitle* This,
-        DISPID dispIdMember,
-        REFIID riid,
-        LCID lcid,
-        WORD wFlags,
-        DISPPARAMS *pDispParams,
-        VARIANT *pVarResult,
-        EXCEPINFO *pExcepInfo,
-        UINT *puArgErr);
-
-    /*** IVLCSubtitle methods ***/
-    HRESULT (STDMETHODCALLTYPE *get_track)(
-        IVLCSubtitle* This,
-        LONG *spu);
-
-    HRESULT (STDMETHODCALLTYPE *put_track)(
-        IVLCSubtitle* This,
-        LONG spu);
-
-    HRESULT (STDMETHODCALLTYPE *get_count)(
-        IVLCSubtitle* This,
-        LONG *spuNumber);
-
-    HRESULT (STDMETHODCALLTYPE *description)(
-        IVLCSubtitle* This,
-        LONG nameID,
-        BSTR *name);
-
-    END_INTERFACE
-} IVLCSubtitleVtbl;
-interface IVLCSubtitle {
-    CONST_VTBL IVLCSubtitleVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define IVLCSubtitle_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IVLCSubtitle_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IVLCSubtitle_Release(This) (This)->lpVtbl->Release(This)
-/*** IDispatch methods ***/
-#define IVLCSubtitle_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define IVLCSubtitle_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define IVLCSubtitle_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define IVLCSubtitle_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-/*** IVLCSubtitle methods ***/
-#define IVLCSubtitle_get_track(This,spu) (This)->lpVtbl->get_track(This,spu)
-#define IVLCSubtitle_put_track(This,spu) (This)->lpVtbl->put_track(This,spu)
-#define IVLCSubtitle_get_count(This,spuNumber) (This)->lpVtbl->get_count(This,spuNumber)
-#define IVLCSubtitle_description(This,nameID,name) (This)->lpVtbl->description(This,nameID,name)
-#endif
-
-#endif
-
-HRESULT STDMETHODCALLTYPE IVLCSubtitle_get_track_Proxy(
-    IVLCSubtitle* This,
-    LONG *spu);
-void __RPC_STUB IVLCSubtitle_get_track_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCSubtitle_put_track_Proxy(
-    IVLCSubtitle* This,
-    LONG spu);
-void __RPC_STUB IVLCSubtitle_put_track_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCSubtitle_get_count_Proxy(
-    IVLCSubtitle* This,
-    LONG *spuNumber);
-void __RPC_STUB IVLCSubtitle_get_count_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCSubtitle_description_Proxy(
-    IVLCSubtitle* This,
-    LONG nameID,
-    BSTR *name);
-void __RPC_STUB IVLCSubtitle_description_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __IVLCSubtitle_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * IVLCMarquee interface
- */
-#ifndef __IVLCMarquee_INTERFACE_DEFINED__
-#define __IVLCMarquee_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_IVLCMarquee, 0x8d076ad6, 0x9b6f, 0x4150, 0xa0,0xfd, 0x5d,0x7e,0x8c,0x8c,0xb0,0x2c);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface IVLCMarquee : public IDispatch
-{
-    virtual HRESULT STDMETHODCALLTYPE enable(
-        ) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE disable(
-        ) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_text(
-        BSTR *val) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE put_text(
-        BSTR val) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_color(
-        LONG *val) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE put_color(
-        LONG val) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_opacity(
-        LONG *val) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE put_opacity(
-        LONG val) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_position(
-        BSTR *val) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE put_position(
-        BSTR val) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_refresh(
-        LONG *val) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE put_refresh(
-        LONG val) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_size(
-        LONG *val) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE put_size(
-        LONG val) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_timeout(
-        LONG *val) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE put_timeout(
-        LONG val) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_x(
-        LONG *val) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE put_x(
-        LONG val) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_y(
-        LONG *val) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE put_y(
-        LONG val) = 0;
-
-};
-#else
-typedef struct IVLCMarqueeVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IVLCMarquee* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        IVLCMarquee* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        IVLCMarquee* This);
-
-    /*** IDispatch methods ***/
-    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
-        IVLCMarquee* This,
-        UINT *pctinfo);
-
-    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
-        IVLCMarquee* This,
-        UINT iTInfo,
-        LCID lcid,
-        ITypeInfo **ppTInfo);
-
-    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
-        IVLCMarquee* This,
-        REFIID riid,
-        LPOLESTR *rgszNames,
-        UINT cNames,
-        LCID lcid,
-        DISPID *rgDispId);
-
-    HRESULT (STDMETHODCALLTYPE *Invoke)(
-        IVLCMarquee* This,
-        DISPID dispIdMember,
-        REFIID riid,
-        LCID lcid,
-        WORD wFlags,
-        DISPPARAMS *pDispParams,
-        VARIANT *pVarResult,
-        EXCEPINFO *pExcepInfo,
-        UINT *puArgErr);
-
-    /*** IVLCMarquee methods ***/
-    HRESULT (STDMETHODCALLTYPE *enable)(
-        IVLCMarquee* This);
-
-    HRESULT (STDMETHODCALLTYPE *disable)(
-        IVLCMarquee* This);
-
-    HRESULT (STDMETHODCALLTYPE *get_text)(
-        IVLCMarquee* This,
-        BSTR *val);
-
-    HRESULT (STDMETHODCALLTYPE *put_text)(
-        IVLCMarquee* This,
-        BSTR val);
-
-    HRESULT (STDMETHODCALLTYPE *get_color)(
-        IVLCMarquee* This,
-        LONG *val);
-
-    HRESULT (STDMETHODCALLTYPE *put_color)(
-        IVLCMarquee* This,
-        LONG val);
-
-    HRESULT (STDMETHODCALLTYPE *get_opacity)(
-        IVLCMarquee* This,
-        LONG *val);
-
-    HRESULT (STDMETHODCALLTYPE *put_opacity)(
-        IVLCMarquee* This,
-        LONG val);
-
-    HRESULT (STDMETHODCALLTYPE *get_position)(
-        IVLCMarquee* This,
-        BSTR *val);
-
-    HRESULT (STDMETHODCALLTYPE *put_position)(
-        IVLCMarquee* This,
-        BSTR val);
-
-    HRESULT (STDMETHODCALLTYPE *get_refresh)(
-        IVLCMarquee* This,
-        LONG *val);
-
-    HRESULT (STDMETHODCALLTYPE *put_refresh)(
-        IVLCMarquee* This,
-        LONG val);
-
-    HRESULT (STDMETHODCALLTYPE *get_size)(
-        IVLCMarquee* This,
-        LONG *val);
-
-    HRESULT (STDMETHODCALLTYPE *put_size)(
-        IVLCMarquee* This,
-        LONG val);
-
-    HRESULT (STDMETHODCALLTYPE *get_timeout)(
-        IVLCMarquee* This,
-        LONG *val);
-
-    HRESULT (STDMETHODCALLTYPE *put_timeout)(
-        IVLCMarquee* This,
-        LONG val);
-
-    HRESULT (STDMETHODCALLTYPE *get_x)(
-        IVLCMarquee* This,
-        LONG *val);
-
-    HRESULT (STDMETHODCALLTYPE *put_x)(
-        IVLCMarquee* This,
-        LONG val);
-
-    HRESULT (STDMETHODCALLTYPE *get_y)(
-        IVLCMarquee* This,
-        LONG *val);
-
-    HRESULT (STDMETHODCALLTYPE *put_y)(
-        IVLCMarquee* This,
-        LONG val);
-
-    END_INTERFACE
-} IVLCMarqueeVtbl;
-interface IVLCMarquee {
-    CONST_VTBL IVLCMarqueeVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define IVLCMarquee_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IVLCMarquee_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IVLCMarquee_Release(This) (This)->lpVtbl->Release(This)
-/*** IDispatch methods ***/
-#define IVLCMarquee_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define IVLCMarquee_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define IVLCMarquee_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define IVLCMarquee_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-/*** IVLCMarquee methods ***/
-#define IVLCMarquee_enable(This) (This)->lpVtbl->enable(This)
-#define IVLCMarquee_disable(This) (This)->lpVtbl->disable(This)
-#define IVLCMarquee_get_text(This,val) (This)->lpVtbl->get_text(This,val)
-#define IVLCMarquee_put_text(This,val) (This)->lpVtbl->put_text(This,val)
-#define IVLCMarquee_get_color(This,val) (This)->lpVtbl->get_color(This,val)
-#define IVLCMarquee_put_color(This,val) (This)->lpVtbl->put_color(This,val)
-#define IVLCMarquee_get_opacity(This,val) (This)->lpVtbl->get_opacity(This,val)
-#define IVLCMarquee_put_opacity(This,val) (This)->lpVtbl->put_opacity(This,val)
-#define IVLCMarquee_get_position(This,val) (This)->lpVtbl->get_position(This,val)
-#define IVLCMarquee_put_position(This,val) (This)->lpVtbl->put_position(This,val)
-#define IVLCMarquee_get_refresh(This,val) (This)->lpVtbl->get_refresh(This,val)
-#define IVLCMarquee_put_refresh(This,val) (This)->lpVtbl->put_refresh(This,val)
-#define IVLCMarquee_get_size(This,val) (This)->lpVtbl->get_size(This,val)
-#define IVLCMarquee_put_size(This,val) (This)->lpVtbl->put_size(This,val)
-#define IVLCMarquee_get_timeout(This,val) (This)->lpVtbl->get_timeout(This,val)
-#define IVLCMarquee_put_timeout(This,val) (This)->lpVtbl->put_timeout(This,val)
-#define IVLCMarquee_get_x(This,val) (This)->lpVtbl->get_x(This,val)
-#define IVLCMarquee_put_x(This,val) (This)->lpVtbl->put_x(This,val)
-#define IVLCMarquee_get_y(This,val) (This)->lpVtbl->get_y(This,val)
-#define IVLCMarquee_put_y(This,val) (This)->lpVtbl->put_y(This,val)
-#endif
-
-#endif
-
-HRESULT STDMETHODCALLTYPE IVLCMarquee_enable_Proxy(
-    IVLCMarquee* This);
-void __RPC_STUB IVLCMarquee_enable_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCMarquee_disable_Proxy(
-    IVLCMarquee* This);
-void __RPC_STUB IVLCMarquee_disable_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCMarquee_get_text_Proxy(
-    IVLCMarquee* This,
-    BSTR *val);
-void __RPC_STUB IVLCMarquee_get_text_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCMarquee_put_text_Proxy(
-    IVLCMarquee* This,
-    BSTR val);
-void __RPC_STUB IVLCMarquee_put_text_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCMarquee_get_color_Proxy(
-    IVLCMarquee* This,
-    LONG *val);
-void __RPC_STUB IVLCMarquee_get_color_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCMarquee_put_color_Proxy(
-    IVLCMarquee* This,
-    LONG val);
-void __RPC_STUB IVLCMarquee_put_color_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCMarquee_get_opacity_Proxy(
-    IVLCMarquee* This,
-    LONG *val);
-void __RPC_STUB IVLCMarquee_get_opacity_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCMarquee_put_opacity_Proxy(
-    IVLCMarquee* This,
-    LONG val);
-void __RPC_STUB IVLCMarquee_put_opacity_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCMarquee_get_position_Proxy(
-    IVLCMarquee* This,
-    BSTR *val);
-void __RPC_STUB IVLCMarquee_get_position_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCMarquee_put_position_Proxy(
-    IVLCMarquee* This,
-    BSTR val);
-void __RPC_STUB IVLCMarquee_put_position_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCMarquee_get_refresh_Proxy(
-    IVLCMarquee* This,
-    LONG *val);
-void __RPC_STUB IVLCMarquee_get_refresh_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCMarquee_put_refresh_Proxy(
-    IVLCMarquee* This,
-    LONG val);
-void __RPC_STUB IVLCMarquee_put_refresh_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCMarquee_get_size_Proxy(
-    IVLCMarquee* This,
-    LONG *val);
-void __RPC_STUB IVLCMarquee_get_size_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCMarquee_put_size_Proxy(
-    IVLCMarquee* This,
-    LONG val);
-void __RPC_STUB IVLCMarquee_put_size_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCMarquee_get_timeout_Proxy(
-    IVLCMarquee* This,
-    LONG *val);
-void __RPC_STUB IVLCMarquee_get_timeout_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCMarquee_put_timeout_Proxy(
-    IVLCMarquee* This,
-    LONG val);
-void __RPC_STUB IVLCMarquee_put_timeout_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCMarquee_get_x_Proxy(
-    IVLCMarquee* This,
-    LONG *val);
-void __RPC_STUB IVLCMarquee_get_x_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCMarquee_put_x_Proxy(
-    IVLCMarquee* This,
-    LONG val);
-void __RPC_STUB IVLCMarquee_put_x_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCMarquee_get_y_Proxy(
-    IVLCMarquee* This,
-    LONG *val);
-void __RPC_STUB IVLCMarquee_get_y_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCMarquee_put_y_Proxy(
-    IVLCMarquee* This,
-    LONG val);
-void __RPC_STUB IVLCMarquee_put_y_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __IVLCMarquee_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * IVLCLogo interface
- */
-#ifndef __IVLCLogo_INTERFACE_DEFINED__
-#define __IVLCLogo_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_IVLCLogo, 0x8a4a20c2, 0x93f3, 0x44e8, 0x86,0x44, 0xbe,0xb2,0xe3,0x48,0x7e,0x84);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface IVLCLogo : public IDispatch
-{
-    virtual HRESULT STDMETHODCALLTYPE enable(
-        ) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE disable(
-        ) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE file(
-        BSTR fname) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_delay(
-        LONG *val) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE put_delay(
-        LONG val) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_repeat(
-        LONG *val) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE put_repeat(
-        LONG val) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_opacity(
-        LONG *val) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE put_opacity(
-        LONG val) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_position(
-        BSTR *val) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE put_position(
-        BSTR val) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_x(
-        LONG *val) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE put_x(
-        LONG val) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_y(
-        LONG *val) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE put_y(
-        LONG val) = 0;
-
-};
-#else
-typedef struct IVLCLogoVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IVLCLogo* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        IVLCLogo* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        IVLCLogo* This);
-
-    /*** IDispatch methods ***/
-    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
-        IVLCLogo* This,
-        UINT *pctinfo);
-
-    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
-        IVLCLogo* This,
-        UINT iTInfo,
-        LCID lcid,
-        ITypeInfo **ppTInfo);
-
-    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
-        IVLCLogo* This,
-        REFIID riid,
-        LPOLESTR *rgszNames,
-        UINT cNames,
-        LCID lcid,
-        DISPID *rgDispId);
-
-    HRESULT (STDMETHODCALLTYPE *Invoke)(
-        IVLCLogo* This,
-        DISPID dispIdMember,
-        REFIID riid,
-        LCID lcid,
-        WORD wFlags,
-        DISPPARAMS *pDispParams,
-        VARIANT *pVarResult,
-        EXCEPINFO *pExcepInfo,
-        UINT *puArgErr);
-
-    /*** IVLCLogo methods ***/
-    HRESULT (STDMETHODCALLTYPE *enable)(
-        IVLCLogo* This);
-
-    HRESULT (STDMETHODCALLTYPE *disable)(
-        IVLCLogo* This);
-
-    HRESULT (STDMETHODCALLTYPE *file)(
-        IVLCLogo* This,
-        BSTR fname);
-
-    HRESULT (STDMETHODCALLTYPE *get_delay)(
-        IVLCLogo* This,
-        LONG *val);
-
-    HRESULT (STDMETHODCALLTYPE *put_delay)(
-        IVLCLogo* This,
-        LONG val);
-
-    HRESULT (STDMETHODCALLTYPE *get_repeat)(
-        IVLCLogo* This,
-        LONG *val);
-
-    HRESULT (STDMETHODCALLTYPE *put_repeat)(
-        IVLCLogo* This,
-        LONG val);
-
-    HRESULT (STDMETHODCALLTYPE *get_opacity)(
-        IVLCLogo* This,
-        LONG *val);
-
-    HRESULT (STDMETHODCALLTYPE *put_opacity)(
-        IVLCLogo* This,
-        LONG val);
-
-    HRESULT (STDMETHODCALLTYPE *get_position)(
-        IVLCLogo* This,
-        BSTR *val);
-
-    HRESULT (STDMETHODCALLTYPE *put_position)(
-        IVLCLogo* This,
-        BSTR val);
-
-    HRESULT (STDMETHODCALLTYPE *get_x)(
-        IVLCLogo* This,
-        LONG *val);
-
-    HRESULT (STDMETHODCALLTYPE *put_x)(
-        IVLCLogo* This,
-        LONG val);
-
-    HRESULT (STDMETHODCALLTYPE *get_y)(
-        IVLCLogo* This,
-        LONG *val);
-
-    HRESULT (STDMETHODCALLTYPE *put_y)(
-        IVLCLogo* This,
-        LONG val);
-
-    END_INTERFACE
-} IVLCLogoVtbl;
-interface IVLCLogo {
-    CONST_VTBL IVLCLogoVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define IVLCLogo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IVLCLogo_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IVLCLogo_Release(This) (This)->lpVtbl->Release(This)
-/*** IDispatch methods ***/
-#define IVLCLogo_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define IVLCLogo_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define IVLCLogo_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define IVLCLogo_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-/*** IVLCLogo methods ***/
-#define IVLCLogo_enable(This) (This)->lpVtbl->enable(This)
-#define IVLCLogo_disable(This) (This)->lpVtbl->disable(This)
-#define IVLCLogo_file(This,fname) (This)->lpVtbl->file(This,fname)
-#define IVLCLogo_get_delay(This,val) (This)->lpVtbl->get_delay(This,val)
-#define IVLCLogo_put_delay(This,val) (This)->lpVtbl->put_delay(This,val)
-#define IVLCLogo_get_repeat(This,val) (This)->lpVtbl->get_repeat(This,val)
-#define IVLCLogo_put_repeat(This,val) (This)->lpVtbl->put_repeat(This,val)
-#define IVLCLogo_get_opacity(This,val) (This)->lpVtbl->get_opacity(This,val)
-#define IVLCLogo_put_opacity(This,val) (This)->lpVtbl->put_opacity(This,val)
-#define IVLCLogo_get_position(This,val) (This)->lpVtbl->get_position(This,val)
-#define IVLCLogo_put_position(This,val) (This)->lpVtbl->put_position(This,val)
-#define IVLCLogo_get_x(This,val) (This)->lpVtbl->get_x(This,val)
-#define IVLCLogo_put_x(This,val) (This)->lpVtbl->put_x(This,val)
-#define IVLCLogo_get_y(This,val) (This)->lpVtbl->get_y(This,val)
-#define IVLCLogo_put_y(This,val) (This)->lpVtbl->put_y(This,val)
-#endif
-
-#endif
-
-HRESULT STDMETHODCALLTYPE IVLCLogo_enable_Proxy(
-    IVLCLogo* This);
-void __RPC_STUB IVLCLogo_enable_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCLogo_disable_Proxy(
-    IVLCLogo* This);
-void __RPC_STUB IVLCLogo_disable_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCLogo_file_Proxy(
-    IVLCLogo* This,
-    BSTR fname);
-void __RPC_STUB IVLCLogo_file_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCLogo_get_delay_Proxy(
-    IVLCLogo* This,
-    LONG *val);
-void __RPC_STUB IVLCLogo_get_delay_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCLogo_put_delay_Proxy(
-    IVLCLogo* This,
-    LONG val);
-void __RPC_STUB IVLCLogo_put_delay_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCLogo_get_repeat_Proxy(
-    IVLCLogo* This,
-    LONG *val);
-void __RPC_STUB IVLCLogo_get_repeat_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCLogo_put_repeat_Proxy(
-    IVLCLogo* This,
-    LONG val);
-void __RPC_STUB IVLCLogo_put_repeat_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCLogo_get_opacity_Proxy(
-    IVLCLogo* This,
-    LONG *val);
-void __RPC_STUB IVLCLogo_get_opacity_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCLogo_put_opacity_Proxy(
-    IVLCLogo* This,
-    LONG val);
-void __RPC_STUB IVLCLogo_put_opacity_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCLogo_get_position_Proxy(
-    IVLCLogo* This,
-    BSTR *val);
-void __RPC_STUB IVLCLogo_get_position_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCLogo_put_position_Proxy(
-    IVLCLogo* This,
-    BSTR val);
-void __RPC_STUB IVLCLogo_put_position_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCLogo_get_x_Proxy(
-    IVLCLogo* This,
-    LONG *val);
-void __RPC_STUB IVLCLogo_get_x_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCLogo_put_x_Proxy(
-    IVLCLogo* This,
-    LONG val);
-void __RPC_STUB IVLCLogo_put_x_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCLogo_get_y_Proxy(
-    IVLCLogo* This,
-    LONG *val);
-void __RPC_STUB IVLCLogo_get_y_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCLogo_put_y_Proxy(
-    IVLCLogo* This,
-    LONG val);
-void __RPC_STUB IVLCLogo_put_y_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __IVLCLogo_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * IVLCDeinterlace interface
- */
-#ifndef __IVLCDeinterlace_INTERFACE_DEFINED__
-#define __IVLCDeinterlace_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_IVLCDeinterlace, 0xbc97469f, 0xcb11, 0x4037, 0x8d,0xce, 0x5f,0xc9,0xf5,0xf8,0x53,0x07);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface IVLCDeinterlace : public IDispatch
-{
-    virtual HRESULT STDMETHODCALLTYPE enable(
-        BSTR mode) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE disable(
-        ) = 0;
-
-};
-#else
-typedef struct IVLCDeinterlaceVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IVLCDeinterlace* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        IVLCDeinterlace* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        IVLCDeinterlace* This);
-
-    /*** IDispatch methods ***/
-    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
-        IVLCDeinterlace* This,
-        UINT *pctinfo);
-
-    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
-        IVLCDeinterlace* This,
-        UINT iTInfo,
-        LCID lcid,
-        ITypeInfo **ppTInfo);
-
-    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
-        IVLCDeinterlace* This,
-        REFIID riid,
-        LPOLESTR *rgszNames,
-        UINT cNames,
-        LCID lcid,
-        DISPID *rgDispId);
-
-    HRESULT (STDMETHODCALLTYPE *Invoke)(
-        IVLCDeinterlace* This,
-        DISPID dispIdMember,
-        REFIID riid,
-        LCID lcid,
-        WORD wFlags,
-        DISPPARAMS *pDispParams,
-        VARIANT *pVarResult,
-        EXCEPINFO *pExcepInfo,
-        UINT *puArgErr);
-
-    /*** IVLCDeinterlace methods ***/
-    HRESULT (STDMETHODCALLTYPE *enable)(
-        IVLCDeinterlace* This,
-        BSTR mode);
-
-    HRESULT (STDMETHODCALLTYPE *disable)(
-        IVLCDeinterlace* This);
-
-    END_INTERFACE
-} IVLCDeinterlaceVtbl;
-interface IVLCDeinterlace {
-    CONST_VTBL IVLCDeinterlaceVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define IVLCDeinterlace_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IVLCDeinterlace_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IVLCDeinterlace_Release(This) (This)->lpVtbl->Release(This)
-/*** IDispatch methods ***/
-#define IVLCDeinterlace_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define IVLCDeinterlace_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define IVLCDeinterlace_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define IVLCDeinterlace_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-/*** IVLCDeinterlace methods ***/
-#define IVLCDeinterlace_enable(This,mode) (This)->lpVtbl->enable(This,mode)
-#define IVLCDeinterlace_disable(This) (This)->lpVtbl->disable(This)
-#endif
-
-#endif
-
-HRESULT STDMETHODCALLTYPE IVLCDeinterlace_enable_Proxy(
-    IVLCDeinterlace* This,
-    BSTR mode);
-void __RPC_STUB IVLCDeinterlace_enable_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCDeinterlace_disable_Proxy(
-    IVLCDeinterlace* This);
-void __RPC_STUB IVLCDeinterlace_disable_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __IVLCDeinterlace_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * IVLCVideo interface
- */
-#ifndef __IVLCVideo_INTERFACE_DEFINED__
-#define __IVLCVideo_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_IVLCVideo, 0x0aaedf0b, 0xd333, 0x4b27, 0xa0,0xc6, 0xbb,0xf3,0x14,0x13,0xa4,0x2e);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface IVLCVideo : public IDispatch
-{
-    virtual HRESULT STDMETHODCALLTYPE get_fullscreen(
-        VARIANT_BOOL *fullscreen) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE put_fullscreen(
-        VARIANT_BOOL fullscreen) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_width(
-        LONG *width) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_height(
-        LONG *height) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_aspectRatio(
-        BSTR *aspect) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE put_aspectRatio(
-        BSTR aspect) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_subtitle(
-        LONG *spu) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE put_subtitle(
-        LONG spu) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_crop(
-        BSTR *geometry) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE put_crop(
-        BSTR geometry) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_teletext(
-        LONG *page) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE put_teletext(
-        LONG page) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE toggleFullscreen(
-        ) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE takeSnapshot(
-        IPictureDisp **picture) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE toggleTeletext(
-        ) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_marquee(
-        IVLCMarquee **obj) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_logo(
-        IVLCLogo **obj) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_deinterlace(
-        IVLCDeinterlace **obj) = 0;
-
-};
-#else
-typedef struct IVLCVideoVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IVLCVideo* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        IVLCVideo* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        IVLCVideo* This);
-
-    /*** IDispatch methods ***/
-    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
-        IVLCVideo* This,
-        UINT *pctinfo);
-
-    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
-        IVLCVideo* This,
-        UINT iTInfo,
-        LCID lcid,
-        ITypeInfo **ppTInfo);
-
-    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
-        IVLCVideo* This,
-        REFIID riid,
-        LPOLESTR *rgszNames,
-        UINT cNames,
-        LCID lcid,
-        DISPID *rgDispId);
-
-    HRESULT (STDMETHODCALLTYPE *Invoke)(
-        IVLCVideo* This,
-        DISPID dispIdMember,
-        REFIID riid,
-        LCID lcid,
-        WORD wFlags,
-        DISPPARAMS *pDispParams,
-        VARIANT *pVarResult,
-        EXCEPINFO *pExcepInfo,
-        UINT *puArgErr);
-
-    /*** IVLCVideo methods ***/
-    HRESULT (STDMETHODCALLTYPE *get_fullscreen)(
-        IVLCVideo* This,
-        VARIANT_BOOL *fullscreen);
-
-    HRESULT (STDMETHODCALLTYPE *put_fullscreen)(
-        IVLCVideo* This,
-        VARIANT_BOOL fullscreen);
-
-    HRESULT (STDMETHODCALLTYPE *get_width)(
-        IVLCVideo* This,
-        LONG *width);
-
-    HRESULT (STDMETHODCALLTYPE *get_height)(
-        IVLCVideo* This,
-        LONG *height);
-
-    HRESULT (STDMETHODCALLTYPE *get_aspectRatio)(
-        IVLCVideo* This,
-        BSTR *aspect);
-
-    HRESULT (STDMETHODCALLTYPE *put_aspectRatio)(
-        IVLCVideo* This,
-        BSTR aspect);
-
-    HRESULT (STDMETHODCALLTYPE *get_subtitle)(
-        IVLCVideo* This,
-        LONG *spu);
-
-    HRESULT (STDMETHODCALLTYPE *put_subtitle)(
-        IVLCVideo* This,
-        LONG spu);
-
-    HRESULT (STDMETHODCALLTYPE *get_crop)(
-        IVLCVideo* This,
-        BSTR *geometry);
-
-    HRESULT (STDMETHODCALLTYPE *put_crop)(
-        IVLCVideo* This,
-        BSTR geometry);
-
-    HRESULT (STDMETHODCALLTYPE *get_teletext)(
-        IVLCVideo* This,
-        LONG *page);
-
-    HRESULT (STDMETHODCALLTYPE *put_teletext)(
-        IVLCVideo* This,
-        LONG page);
-
-    HRESULT (STDMETHODCALLTYPE *toggleFullscreen)(
-        IVLCVideo* This);
-
-    HRESULT (STDMETHODCALLTYPE *takeSnapshot)(
-        IVLCVideo* This,
-        IPictureDisp **picture);
-
-    HRESULT (STDMETHODCALLTYPE *toggleTeletext)(
-        IVLCVideo* This);
-
-    HRESULT (STDMETHODCALLTYPE *get_marquee)(
-        IVLCVideo* This,
-        IVLCMarquee **obj);
-
-    HRESULT (STDMETHODCALLTYPE *get_logo)(
-        IVLCVideo* This,
-        IVLCLogo **obj);
-
-    HRESULT (STDMETHODCALLTYPE *get_deinterlace)(
-        IVLCVideo* This,
-        IVLCDeinterlace **obj);
-
-    END_INTERFACE
-} IVLCVideoVtbl;
-interface IVLCVideo {
-    CONST_VTBL IVLCVideoVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define IVLCVideo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IVLCVideo_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IVLCVideo_Release(This) (This)->lpVtbl->Release(This)
-/*** IDispatch methods ***/
-#define IVLCVideo_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define IVLCVideo_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define IVLCVideo_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define IVLCVideo_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-/*** IVLCVideo methods ***/
-#define IVLCVideo_get_fullscreen(This,fullscreen) (This)->lpVtbl->get_fullscreen(This,fullscreen)
-#define IVLCVideo_put_fullscreen(This,fullscreen) (This)->lpVtbl->put_fullscreen(This,fullscreen)
-#define IVLCVideo_get_width(This,width) (This)->lpVtbl->get_width(This,width)
-#define IVLCVideo_get_height(This,height) (This)->lpVtbl->get_height(This,height)
-#define IVLCVideo_get_aspectRatio(This,aspect) (This)->lpVtbl->get_aspectRatio(This,aspect)
-#define IVLCVideo_put_aspectRatio(This,aspect) (This)->lpVtbl->put_aspectRatio(This,aspect)
-#define IVLCVideo_get_subtitle(This,spu) (This)->lpVtbl->get_subtitle(This,spu)
-#define IVLCVideo_put_subtitle(This,spu) (This)->lpVtbl->put_subtitle(This,spu)
-#define IVLCVideo_get_crop(This,geometry) (This)->lpVtbl->get_crop(This,geometry)
-#define IVLCVideo_put_crop(This,geometry) (This)->lpVtbl->put_crop(This,geometry)
-#define IVLCVideo_get_teletext(This,page) (This)->lpVtbl->get_teletext(This,page)
-#define IVLCVideo_put_teletext(This,page) (This)->lpVtbl->put_teletext(This,page)
-#define IVLCVideo_toggleFullscreen(This) (This)->lpVtbl->toggleFullscreen(This)
-#define IVLCVideo_takeSnapshot(This,picture) (This)->lpVtbl->takeSnapshot(This,picture)
-#define IVLCVideo_toggleTeletext(This) (This)->lpVtbl->toggleTeletext(This)
-#define IVLCVideo_get_marquee(This,obj) (This)->lpVtbl->get_marquee(This,obj)
-#define IVLCVideo_get_logo(This,obj) (This)->lpVtbl->get_logo(This,obj)
-#define IVLCVideo_get_deinterlace(This,obj) (This)->lpVtbl->get_deinterlace(This,obj)
-#endif
-
-#endif
-
-HRESULT STDMETHODCALLTYPE IVLCVideo_get_fullscreen_Proxy(
-    IVLCVideo* This,
-    VARIANT_BOOL *fullscreen);
-void __RPC_STUB IVLCVideo_get_fullscreen_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCVideo_put_fullscreen_Proxy(
-    IVLCVideo* This,
-    VARIANT_BOOL fullscreen);
-void __RPC_STUB IVLCVideo_put_fullscreen_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCVideo_get_width_Proxy(
-    IVLCVideo* This,
-    LONG *width);
-void __RPC_STUB IVLCVideo_get_width_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCVideo_get_height_Proxy(
-    IVLCVideo* This,
-    LONG *height);
-void __RPC_STUB IVLCVideo_get_height_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCVideo_get_aspectRatio_Proxy(
-    IVLCVideo* This,
-    BSTR *aspect);
-void __RPC_STUB IVLCVideo_get_aspectRatio_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCVideo_put_aspectRatio_Proxy(
-    IVLCVideo* This,
-    BSTR aspect);
-void __RPC_STUB IVLCVideo_put_aspectRatio_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCVideo_get_subtitle_Proxy(
-    IVLCVideo* This,
-    LONG *spu);
-void __RPC_STUB IVLCVideo_get_subtitle_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCVideo_put_subtitle_Proxy(
-    IVLCVideo* This,
-    LONG spu);
-void __RPC_STUB IVLCVideo_put_subtitle_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCVideo_get_crop_Proxy(
-    IVLCVideo* This,
-    BSTR *geometry);
-void __RPC_STUB IVLCVideo_get_crop_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCVideo_put_crop_Proxy(
-    IVLCVideo* This,
-    BSTR geometry);
-void __RPC_STUB IVLCVideo_put_crop_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCVideo_get_teletext_Proxy(
-    IVLCVideo* This,
-    LONG *page);
-void __RPC_STUB IVLCVideo_get_teletext_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCVideo_put_teletext_Proxy(
-    IVLCVideo* This,
-    LONG page);
-void __RPC_STUB IVLCVideo_put_teletext_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCVideo_toggleFullscreen_Proxy(
-    IVLCVideo* This);
-void __RPC_STUB IVLCVideo_toggleFullscreen_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCVideo_takeSnapshot_Proxy(
-    IVLCVideo* This,
-    IPictureDisp **picture);
-void __RPC_STUB IVLCVideo_takeSnapshot_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCVideo_toggleTeletext_Proxy(
-    IVLCVideo* This);
-void __RPC_STUB IVLCVideo_toggleTeletext_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCVideo_get_marquee_Proxy(
-    IVLCVideo* This,
-    IVLCMarquee **obj);
-void __RPC_STUB IVLCVideo_get_marquee_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCVideo_get_logo_Proxy(
-    IVLCVideo* This,
-    IVLCLogo **obj);
-void __RPC_STUB IVLCVideo_get_logo_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCVideo_get_deinterlace_Proxy(
-    IVLCVideo* This,
-    IVLCDeinterlace **obj);
-void __RPC_STUB IVLCVideo_get_deinterlace_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __IVLCVideo_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * IVLCControl2 interface
- */
-#ifndef __IVLCControl2_INTERFACE_DEFINED__
-#define __IVLCControl2_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_IVLCControl2, 0x2d719729, 0x5333, 0x406c, 0xbf,0x12, 0x8d,0xe7,0x87,0xfd,0x65,0xe3);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-interface IVLCControl2 : public IDispatch
-{
-    virtual HRESULT STDMETHODCALLTYPE get_AutoLoop(
-        VARIANT_BOOL *autoloop) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE put_AutoLoop(
-        VARIANT_BOOL autoloop) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_AutoPlay(
-        VARIANT_BOOL *autoplay) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE put_AutoPlay(
-        VARIANT_BOOL autoplay) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_BaseURL(
-        BSTR *url) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE put_BaseURL(
-        BSTR url) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_StartTime(
-        LONG *seconds) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE put_StartTime(
-        LONG seconds) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_MRL(
-        BSTR *mrl) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE put_MRL(
-        BSTR mrl) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_VersionInfo(
-        BSTR *version) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_Visible(
-        VARIANT_BOOL *visible) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE put_Visible(
-        VARIANT_BOOL visible) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_Volume(
-        LONG *volume) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE put_Volume(
-        LONG volume) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_BackColor(
-        OLE_COLOR *backcolor) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE put_BackColor(
-        OLE_COLOR backcolor) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_Toolbar(
-        VARIANT_BOOL *visible) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE put_Toolbar(
-        VARIANT_BOOL visible) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_audio(
-        IVLCAudio **obj) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_input(
-        IVLCInput **obj) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_playlist(
-        IVLCPlaylist **obj) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_subtitle(
-        IVLCSubtitle **obj) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_video(
-        IVLCVideo **obj) = 0;
-
-};
-#else
-typedef struct IVLCControl2Vtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IVLCControl2* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        IVLCControl2* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        IVLCControl2* This);
-
-    /*** IDispatch methods ***/
-    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
-        IVLCControl2* This,
-        UINT *pctinfo);
-
-    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
-        IVLCControl2* This,
-        UINT iTInfo,
-        LCID lcid,
-        ITypeInfo **ppTInfo);
-
-    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
-        IVLCControl2* This,
-        REFIID riid,
-        LPOLESTR *rgszNames,
-        UINT cNames,
-        LCID lcid,
-        DISPID *rgDispId);
-
-    HRESULT (STDMETHODCALLTYPE *Invoke)(
-        IVLCControl2* This,
-        DISPID dispIdMember,
-        REFIID riid,
-        LCID lcid,
-        WORD wFlags,
-        DISPPARAMS *pDispParams,
-        VARIANT *pVarResult,
-        EXCEPINFO *pExcepInfo,
-        UINT *puArgErr);
-
-    /*** IVLCControl2 methods ***/
-    HRESULT (STDMETHODCALLTYPE *get_AutoLoop)(
-        IVLCControl2* This,
-        VARIANT_BOOL *autoloop);
-
-    HRESULT (STDMETHODCALLTYPE *put_AutoLoop)(
-        IVLCControl2* This,
-        VARIANT_BOOL autoloop);
-
-    HRESULT (STDMETHODCALLTYPE *get_AutoPlay)(
-        IVLCControl2* This,
-        VARIANT_BOOL *autoplay);
-
-    HRESULT (STDMETHODCALLTYPE *put_AutoPlay)(
-        IVLCControl2* This,
-        VARIANT_BOOL autoplay);
-
-    HRESULT (STDMETHODCALLTYPE *get_BaseURL)(
-        IVLCControl2* This,
-        BSTR *url);
-
-    HRESULT (STDMETHODCALLTYPE *put_BaseURL)(
-        IVLCControl2* This,
-        BSTR url);
-
-    HRESULT (STDMETHODCALLTYPE *get_StartTime)(
-        IVLCControl2* This,
-        LONG *seconds);
-
-    HRESULT (STDMETHODCALLTYPE *put_StartTime)(
-        IVLCControl2* This,
-        LONG seconds);
-
-    HRESULT (STDMETHODCALLTYPE *get_MRL)(
-        IVLCControl2* This,
-        BSTR *mrl);
-
-    HRESULT (STDMETHODCALLTYPE *put_MRL)(
-        IVLCControl2* This,
-        BSTR mrl);
-
-    HRESULT (STDMETHODCALLTYPE *get_VersionInfo)(
-        IVLCControl2* This,
-        BSTR *version);
-
-    HRESULT (STDMETHODCALLTYPE *get_Visible)(
-        IVLCControl2* This,
-        VARIANT_BOOL *visible);
-
-    HRESULT (STDMETHODCALLTYPE *put_Visible)(
-        IVLCControl2* This,
-        VARIANT_BOOL visible);
-
-    HRESULT (STDMETHODCALLTYPE *get_Volume)(
-        IVLCControl2* This,
-        LONG *volume);
-
-    HRESULT (STDMETHODCALLTYPE *put_Volume)(
-        IVLCControl2* This,
-        LONG volume);
-
-    HRESULT (STDMETHODCALLTYPE *get_BackColor)(
-        IVLCControl2* This,
-        OLE_COLOR *backcolor);
-
-    HRESULT (STDMETHODCALLTYPE *put_BackColor)(
-        IVLCControl2* This,
-        OLE_COLOR backcolor);
-
-    HRESULT (STDMETHODCALLTYPE *get_Toolbar)(
-        IVLCControl2* This,
-        VARIANT_BOOL *visible);
-
-    HRESULT (STDMETHODCALLTYPE *put_Toolbar)(
-        IVLCControl2* This,
-        VARIANT_BOOL visible);
-
-    HRESULT (STDMETHODCALLTYPE *get_audio)(
-        IVLCControl2* This,
-        IVLCAudio **obj);
-
-    HRESULT (STDMETHODCALLTYPE *get_input)(
-        IVLCControl2* This,
-        IVLCInput **obj);
-
-    HRESULT (STDMETHODCALLTYPE *get_playlist)(
-        IVLCControl2* This,
-        IVLCPlaylist **obj);
-
-    HRESULT (STDMETHODCALLTYPE *get_subtitle)(
-        IVLCControl2* This,
-        IVLCSubtitle **obj);
-
-    HRESULT (STDMETHODCALLTYPE *get_video)(
-        IVLCControl2* This,
-        IVLCVideo **obj);
-
-    END_INTERFACE
-} IVLCControl2Vtbl;
-interface IVLCControl2 {
-    CONST_VTBL IVLCControl2Vtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-/*** IUnknown methods ***/
-#define IVLCControl2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IVLCControl2_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IVLCControl2_Release(This) (This)->lpVtbl->Release(This)
-/*** IDispatch methods ***/
-#define IVLCControl2_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define IVLCControl2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define IVLCControl2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define IVLCControl2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-/*** IVLCControl2 methods ***/
-#define IVLCControl2_get_AutoLoop(This,autoloop) (This)->lpVtbl->get_AutoLoop(This,autoloop)
-#define IVLCControl2_put_AutoLoop(This,autoloop) (This)->lpVtbl->put_AutoLoop(This,autoloop)
-#define IVLCControl2_get_AutoPlay(This,autoplay) (This)->lpVtbl->get_AutoPlay(This,autoplay)
-#define IVLCControl2_put_AutoPlay(This,autoplay) (This)->lpVtbl->put_AutoPlay(This,autoplay)
-#define IVLCControl2_get_BaseURL(This,url) (This)->lpVtbl->get_BaseURL(This,url)
-#define IVLCControl2_put_BaseURL(This,url) (This)->lpVtbl->put_BaseURL(This,url)
-#define IVLCControl2_get_StartTime(This,seconds) (This)->lpVtbl->get_StartTime(This,seconds)
-#define IVLCControl2_put_StartTime(This,seconds) (This)->lpVtbl->put_StartTime(This,seconds)
-#define IVLCControl2_get_MRL(This,mrl) (This)->lpVtbl->get_MRL(This,mrl)
-#define IVLCControl2_put_MRL(This,mrl) (This)->lpVtbl->put_MRL(This,mrl)
-#define IVLCControl2_get_VersionInfo(This,version) (This)->lpVtbl->get_VersionInfo(This,version)
-#define IVLCControl2_get_Visible(This,visible) (This)->lpVtbl->get_Visible(This,visible)
-#define IVLCControl2_put_Visible(This,visible) (This)->lpVtbl->put_Visible(This,visible)
-#define IVLCControl2_get_Volume(This,volume) (This)->lpVtbl->get_Volume(This,volume)
-#define IVLCControl2_put_Volume(This,volume) (This)->lpVtbl->put_Volume(This,volume)
-#define IVLCControl2_get_BackColor(This,backcolor) (This)->lpVtbl->get_BackColor(This,backcolor)
-#define IVLCControl2_put_BackColor(This,backcolor) (This)->lpVtbl->put_BackColor(This,backcolor)
-#define IVLCControl2_get_Toolbar(This,visible) (This)->lpVtbl->get_Toolbar(This,visible)
-#define IVLCControl2_put_Toolbar(This,visible) (This)->lpVtbl->put_Toolbar(This,visible)
-#define IVLCControl2_get_audio(This,obj) (This)->lpVtbl->get_audio(This,obj)
-#define IVLCControl2_get_input(This,obj) (This)->lpVtbl->get_input(This,obj)
-#define IVLCControl2_get_playlist(This,obj) (This)->lpVtbl->get_playlist(This,obj)
-#define IVLCControl2_get_subtitle(This,obj) (This)->lpVtbl->get_subtitle(This,obj)
-#define IVLCControl2_get_video(This,obj) (This)->lpVtbl->get_video(This,obj)
-#endif
-
-#endif
-
-HRESULT STDMETHODCALLTYPE IVLCControl2_get_AutoLoop_Proxy(
-    IVLCControl2* This,
-    VARIANT_BOOL *autoloop);
-void __RPC_STUB IVLCControl2_get_AutoLoop_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCControl2_put_AutoLoop_Proxy(
-    IVLCControl2* This,
-    VARIANT_BOOL autoloop);
-void __RPC_STUB IVLCControl2_put_AutoLoop_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCControl2_get_AutoPlay_Proxy(
-    IVLCControl2* This,
-    VARIANT_BOOL *autoplay);
-void __RPC_STUB IVLCControl2_get_AutoPlay_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCControl2_put_AutoPlay_Proxy(
-    IVLCControl2* This,
-    VARIANT_BOOL autoplay);
-void __RPC_STUB IVLCControl2_put_AutoPlay_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCControl2_get_BaseURL_Proxy(
-    IVLCControl2* This,
-    BSTR *url);
-void __RPC_STUB IVLCControl2_get_BaseURL_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCControl2_put_BaseURL_Proxy(
-    IVLCControl2* This,
-    BSTR url);
-void __RPC_STUB IVLCControl2_put_BaseURL_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCControl2_get_StartTime_Proxy(
-    IVLCControl2* This,
-    LONG *seconds);
-void __RPC_STUB IVLCControl2_get_StartTime_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCControl2_put_StartTime_Proxy(
-    IVLCControl2* This,
-    LONG seconds);
-void __RPC_STUB IVLCControl2_put_StartTime_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCControl2_get_MRL_Proxy(
-    IVLCControl2* This,
-    BSTR *mrl);
-void __RPC_STUB IVLCControl2_get_MRL_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCControl2_put_MRL_Proxy(
-    IVLCControl2* This,
-    BSTR mrl);
-void __RPC_STUB IVLCControl2_put_MRL_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCControl2_get_VersionInfo_Proxy(
-    IVLCControl2* This,
-    BSTR *version);
-void __RPC_STUB IVLCControl2_get_VersionInfo_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCControl2_get_Visible_Proxy(
-    IVLCControl2* This,
-    VARIANT_BOOL *visible);
-void __RPC_STUB IVLCControl2_get_Visible_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCControl2_put_Visible_Proxy(
-    IVLCControl2* This,
-    VARIANT_BOOL visible);
-void __RPC_STUB IVLCControl2_put_Visible_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCControl2_get_Volume_Proxy(
-    IVLCControl2* This,
-    LONG *volume);
-void __RPC_STUB IVLCControl2_get_Volume_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCControl2_put_Volume_Proxy(
-    IVLCControl2* This,
-    LONG volume);
-void __RPC_STUB IVLCControl2_put_Volume_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCControl2_get_BackColor_Proxy(
-    IVLCControl2* This,
-    OLE_COLOR *backcolor);
-void __RPC_STUB IVLCControl2_get_BackColor_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCControl2_put_BackColor_Proxy(
-    IVLCControl2* This,
-    OLE_COLOR backcolor);
-void __RPC_STUB IVLCControl2_put_BackColor_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCControl2_get_Toolbar_Proxy(
-    IVLCControl2* This,
-    VARIANT_BOOL *visible);
-void __RPC_STUB IVLCControl2_get_Toolbar_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCControl2_put_Toolbar_Proxy(
-    IVLCControl2* This,
-    VARIANT_BOOL visible);
-void __RPC_STUB IVLCControl2_put_Toolbar_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCControl2_get_audio_Proxy(
-    IVLCControl2* This,
-    IVLCAudio **obj);
-void __RPC_STUB IVLCControl2_get_audio_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCControl2_get_input_Proxy(
-    IVLCControl2* This,
-    IVLCInput **obj);
-void __RPC_STUB IVLCControl2_get_input_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCControl2_get_playlist_Proxy(
-    IVLCControl2* This,
-    IVLCPlaylist **obj);
-void __RPC_STUB IVLCControl2_get_playlist_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCControl2_get_subtitle_Proxy(
-    IVLCControl2* This,
-    IVLCSubtitle **obj);
-void __RPC_STUB IVLCControl2_get_subtitle_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IVLCControl2_get_video_Proxy(
-    IVLCControl2* This,
-    IVLCVideo **obj);
-void __RPC_STUB IVLCControl2_get_video_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __IVLCControl2_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * VLCPlugin coclass
- */
-
-DEFINE_GUID(CLSID_VLCPlugin, 0xe23fe9c6, 0x778e, 0x49d4, 0xb5,0x37, 0x38,0xfc,0xde,0x48,0x87,0xd8);
-
-/*****************************************************************************
- * VLCPlugin2 coclass
- */
-
-DEFINE_GUID(CLSID_VLCPlugin2, 0x9be31822, 0xfdad, 0x461b, 0xad,0x51, 0xbe,0x1d,0x1c,0x15,0x99,0x21);
-
-/* Begin additional prototypes for all interfaces */
-
-ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
-unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
-unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
-void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
-ULONG           __RPC_USER VARIANT_UserSize     (ULONG *, ULONG, VARIANT *);
-unsigned char * __RPC_USER VARIANT_UserMarshal  (ULONG *, unsigned char *, VARIANT *);
-unsigned char * __RPC_USER VARIANT_UserUnmarshal(ULONG *, unsigned char *, VARIANT *);
-void            __RPC_USER VARIANT_UserFree     (ULONG *, VARIANT *);
-
-/* End additional prototypes */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __WIDL_AXVLC_IDL_H */
diff --git a/projects/activex/axvlc_rc.rc.in b/projects/activex/axvlc_rc.rc.in
deleted file mode 100644 (file)
index 7d1918d..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-#define VERSION_NUMBER @VERSION_MAJOR@,@VERSION_MINOR@,@VERSION_REVISION@,@VERSION_EXTRA_RC@
-
-1 BITMAP "vlc16x16.bmp"
-1 VERSIONINFO
-FILETYPE 1
-FILEOS 4
-PRODUCTVERSION VERSION_NUMBER
-FILEVERSION VERSION_NUMBER
-BEGIN
-  BLOCK "StringFileInfo"
-  BEGIN
-    BLOCK "040904E4"
-    BEGIN
-      VALUE "CompanyName", "VideoLAN"
-      VALUE "FileVersion", "@VERSION@"
-      VALUE "FileDescription", "VLC media player (Activex Plugin)"
-      VALUE "LegalCopyright", "(c) @COPYRIGHT_YEARS@ VideoLAN and Authors"
-      VALUE "OLESelfRegister", "\0"
-    END
-  END
-  BLOCK "VarFileInfo"
-  BEGIN
-    VALUE "Translation", 0x409, 1200
-  END
-END
-
-2 BITMAP DISCARDABLE "inplace.bmp"
-
-1 TYPELIB "axvlc.tlb"
-
diff --git a/projects/activex/connectioncontainer.cpp b/projects/activex/connectioncontainer.cpp
deleted file mode 100644 (file)
index 91fd0b6..0000000
+++ /dev/null
@@ -1,457 +0,0 @@
-/*****************************************************************************
- * connectioncontainer.cpp: ActiveX control for VLC
- *****************************************************************************
- * Copyright (C) 2005 the VideoLAN team
- * Copyright (C) 2010 M2X BV
- *
- * Authors: Damien Fouilleul <Damien.Fouilleul@laposte.net>
- *          Jean-Paul Saman <jpsaman@videolan.org>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#include "plugin.h"
-#include "connectioncontainer.h"
-
-#include "utils.h"
-
-#include <assert.h>
-#include <rpc.h>
-#include <rpcndr.h>
-
-using namespace std;
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-DEFINE_GUID(IID_IGlobalInterfaceTable,     0x00000146, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
-DEFINE_GUID(CLSID_StdGlobalInterfaceTable, 0x00000323, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
-
-const GUID  IID_IGlobalInterfaceTable = { 0x00000146, 0, 0, {0xc0, 0, 0, 0, 0, 0, 0, 0x46} };
-const CLSID CLSID_StdGlobalInterfaceTable = { 0x00000323, 0, 0, {0xc0, 0, 0, 0, 0, 0, 0, 0x46} };
-////////////////////////////////////////////////////////////////////////////////////////////////
-
-/* this function object is used to return the value from a map pair */
-struct VLCEnumConnectionsDereference
-{
-    CONNECTDATA operator()(const map<DWORD,LPUNKNOWN>::iterator& i)
-    {
-        CONNECTDATA cd;
-
-        i->second->AddRef();
-
-        cd.dwCookie = i->first;
-        cd.pUnk     = i->second;
-        return cd;
-    };
-};
-
-class VLCEnumConnections : public VLCEnumIterator<IID_IEnumConnections,
-    IEnumConnections,
-    CONNECTDATA,
-    map<DWORD,LPUNKNOWN>::iterator,
-    VLCEnumConnectionsDereference>
-{
-public:
-    VLCEnumConnections(map<DWORD,LPUNKNOWN> &m) :
-        VLCEnumIterator<IID_IEnumConnections,
-            IEnumConnections,
-            CONNECTDATA,
-            map<DWORD,LPUNKNOWN>::iterator,
-            VLCEnumConnectionsDereference> (m.begin(), m.end())
-    {};
-};
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-
-/* this function object is used to retain the dereferenced iterator value */
-struct VLCEnumConnectionPointsDereference
-{
-    LPCONNECTIONPOINT operator()(const vector<LPCONNECTIONPOINT>::iterator& i)
-    {
-        LPCONNECTIONPOINT cp = *i;
-        cp->AddRef();
-        return cp;
-    }
-};
-
-class VLCEnumConnectionPoints: public VLCEnumIterator<IID_IEnumConnectionPoints,
-    IEnumConnectionPoints,
-    LPCONNECTIONPOINT,
-    vector<LPCONNECTIONPOINT>::iterator,
-    VLCEnumConnectionPointsDereference>
-{
-public:
-    VLCEnumConnectionPoints(vector<LPCONNECTIONPOINT>& v) :
-        VLCEnumIterator<IID_IEnumConnectionPoints,
-            IEnumConnectionPoints,
-            LPCONNECTIONPOINT,
-            vector<LPCONNECTIONPOINT>::iterator,
-            VLCEnumConnectionPointsDereference> (v.begin(), v.end())
-    {};
-};
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-// Condition variable emulation
-////////////////////////////////////////////////////////////////////////////////////////////////
-
-static void ConditionInit(HANDLE *handle)
-{
-    *handle = CreateEvent(NULL, TRUE, FALSE, NULL);
-    assert(*handle != NULL);
-}
-
-static void ConditionDestroy(HANDLE *handle)
-{
-    CloseHandle(*handle);
-}
-
-static void ConditionWait(HANDLE *handle, CRITICAL_SECTION *lock)
-{
-    DWORD dwWaitResult;
-
-    do {
-        LeaveCriticalSection(lock);
-        dwWaitResult = WaitForSingleObjectEx(*handle, INFINITE, TRUE);
-        EnterCriticalSection(lock);
-    } while(dwWaitResult == WAIT_IO_COMPLETION);
-
-    assert(dwWaitResult != WAIT_ABANDONED); /* another thread failed to cleanup! */
-    assert(dwWaitResult != WAIT_FAILED);
-    ResetEvent(*handle);
-}
-
-static void ConditionSignal(HANDLE *handle)
-{
-    SetEvent(*handle);
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-// Event handling thread
-//
-// It bridges the gap between libvlc thread context and ActiveX/COM thread context.
-////////////////////////////////////////////////////////////////////////////////////////////////
-DWORD WINAPI ThreadProcEventHandler(LPVOID lpParam)
-{
-    CoInitialize(NULL);
-    VLCConnectionPointContainer *pCPC = (VLCConnectionPointContainer *)lpParam;
-
-    while(pCPC->isRunning)
-    {
-        EnterCriticalSection(&(pCPC->csEvents));
-        ConditionWait(&(pCPC->sEvents), &(pCPC->csEvents));
-
-        if (!pCPC->isRunning)
-        {
-            LeaveCriticalSection(&(pCPC->csEvents));
-            break;
-        }
-
-        while(!pCPC->_q_events.empty())
-        {
-            VLCDispatchEvent *ev = pCPC->_q_events.front();
-            pCPC->_q_events.pop();
-            pCPC->_p_events->fireEvent(ev->_dispId, &ev->_dispParams);
-            delete ev;
-
-
-            if (!pCPC->isRunning)
-            {
-                LeaveCriticalSection(&(pCPC->csEvents));
-                goto out;
-            }
-        }
-        LeaveCriticalSection(&(pCPC->csEvents));
-    }
-out:
-    CoUninitialize();
-    return 0;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-// VLCConnectionPoint
-////////////////////////////////////////////////////////////////////////////////////////////////
-
-VLCConnectionPoint::VLCConnectionPoint(IConnectionPointContainer *p_cpc, REFIID iid) :
-        _iid(iid), _p_cpc(p_cpc)
-{
-    // Get the Global Interface Table per-process singleton:
-    CoCreateInstance(CLSID_StdGlobalInterfaceTable, 0,
-                          CLSCTX_INPROC_SERVER,
-                          IID_IGlobalInterfaceTable,
-                          reinterpret_cast<void**>(&m_pGIT));
-};
-
-VLCConnectionPoint::~VLCConnectionPoint()
-{
-    // Revoke interfaces from the GIT:
-    map<DWORD,LPUNKNOWN>::iterator end = _connections.end();
-    map<DWORD,LPUNKNOWN>::iterator iter = _connections.begin();
-
-    while( iter != end )
-    {
-        m_pGIT->RevokeInterfaceFromGlobal((DWORD)iter->second);
-        ++iter;
-    }
-    m_pGIT->Release();
-};
-
-STDMETHODIMP VLCConnectionPoint::GetConnectionInterface(IID *iid)
-{
-    if( NULL == iid )
-        return E_POINTER;
-
-    *iid = _iid;
-    return S_OK;
-};
-
-STDMETHODIMP VLCConnectionPoint::GetConnectionPointContainer(LPCONNECTIONPOINTCONTAINER *ppCPC)
-{
-    if( NULL == ppCPC )
-        return E_POINTER;
-
-    _p_cpc->AddRef();
-    *ppCPC = _p_cpc;
-    return S_OK;
-};
-
-STDMETHODIMP VLCConnectionPoint::Advise(IUnknown *pUnk, DWORD *pdwCookie)
-{
-    static DWORD dwCookieCounter = 0;
-    HRESULT hr;
-
-    if( (NULL == pUnk) || (NULL == pdwCookie) )
-        return E_POINTER;
-
-    hr = pUnk->QueryInterface(_iid, (LPVOID *)&pUnk);
-    if( SUCCEEDED(hr) )
-    {
-        DWORD dwGITCookie;
-        hr = m_pGIT->RegisterInterfaceInGlobal( pUnk, _iid, &dwGITCookie );
-        if( SUCCEEDED(hr) )
-        {
-            *pdwCookie = ++dwCookieCounter;
-            _connections[*pdwCookie] = (LPUNKNOWN) dwGITCookie;
-        }
-        pUnk->Release();
-    }
-    return hr;
-};
-
-STDMETHODIMP VLCConnectionPoint::Unadvise(DWORD pdwCookie)
-{
-    map<DWORD,LPUNKNOWN>::iterator pcd = _connections.find((DWORD)pdwCookie);
-    if( pcd != _connections.end() )
-    {
-        m_pGIT->RevokeInterfaceFromGlobal((DWORD)pcd->second);
-        _connections.erase(pdwCookie);
-        return S_OK;
-    }
-    return CONNECT_E_NOCONNECTION;
-};
-
-STDMETHODIMP VLCConnectionPoint::EnumConnections(IEnumConnections **ppEnum)
-{
-    if( NULL == ppEnum )
-        return E_POINTER;
-
-    *ppEnum = dynamic_cast<LPENUMCONNECTIONS>(new VLCEnumConnections(_connections));
-
-    return (NULL != *ppEnum ) ? S_OK : E_OUTOFMEMORY;
-};
-
-void VLCConnectionPoint::fireEvent(DISPID dispId, DISPPARAMS *pDispParams)
-{
-    map<DWORD,LPUNKNOWN>::iterator end = _connections.end();
-    map<DWORD,LPUNKNOWN>::iterator iter = _connections.begin();
-
-    HRESULT hr = S_OK;
-
-    while( iter != end )
-    {
-        DWORD dwCookie = (DWORD)iter->second;
-        LPUNKNOWN pUnk;
-
-        hr = m_pGIT->GetInterfaceFromGlobal( dwCookie, _iid,
-                                             reinterpret_cast<void **>(&pUnk) );
-        if( SUCCEEDED(hr) )
-        {
-            IDispatch *pDisp;
-            hr = pUnk->QueryInterface(_iid, (LPVOID *)&pDisp);
-            if( SUCCEEDED(hr) )
-            {
-                pDisp->Invoke(dispId, IID_NULL, LOCALE_USER_DEFAULT,
-                              DISPATCH_METHOD, pDispParams, NULL, NULL, NULL);
-                pDisp->Release();
-            }
-            pUnk->Release();
-        }
-        ++iter;
-    }
-};
-
-void VLCConnectionPoint::firePropChangedEvent(DISPID dispId)
-{
-    map<DWORD,LPUNKNOWN>::iterator end = _connections.end();
-    map<DWORD,LPUNKNOWN>::iterator iter = _connections.begin();
-
-    while( iter != end )
-    {
-        LPUNKNOWN pUnk;
-        HRESULT hr;
-
-        hr = m_pGIT->GetInterfaceFromGlobal( (DWORD)iter->second, IID_IUnknown,
-                                              reinterpret_cast<void **>(&pUnk) );
-        if( SUCCEEDED(hr) )
-        {
-            IPropertyNotifySink *pPropSink;
-            hr = pUnk->QueryInterface( IID_IPropertyNotifySink, (LPVOID *)&pPropSink );
-            if( SUCCEEDED(hr) )
-            {
-                pPropSink->OnChanged(dispId);
-                pPropSink->Release();
-            }
-            pUnk->Release();
-        }
-        ++iter;
-    }
-};
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-
-VLCDispatchEvent::~VLCDispatchEvent()
-{
-    //clear event arguments
-    if( NULL != _dispParams.rgvarg )
-    {
-        for(unsigned int c = 0; c < _dispParams.cArgs; ++c)
-            VariantClear(_dispParams.rgvarg + c);
-        CoTaskMemFree(_dispParams.rgvarg);
-    }
-    if( NULL != _dispParams.rgdispidNamedArgs )
-        CoTaskMemFree(_dispParams.rgdispidNamedArgs);
-};
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-// VLCConnectionPointContainer
-////////////////////////////////////////////////////////////////////////////////////////////////
-
-VLCConnectionPointContainer::VLCConnectionPointContainer(VLCPlugin *p_instance) :
-    _p_instance(p_instance), freeze(FALSE), isRunning(TRUE)
-{
-    _p_events = new VLCConnectionPoint(dynamic_cast<LPCONNECTIONPOINTCONTAINER>(this),
-            _p_instance->getDispEventID());
-
-    _v_cps.push_back(dynamic_cast<LPCONNECTIONPOINT>(_p_events));
-
-    _p_props = new VLCConnectionPoint(dynamic_cast<LPCONNECTIONPOINTCONTAINER>(this),
-            IID_IPropertyNotifySink);
-
-    _v_cps.push_back(dynamic_cast<LPCONNECTIONPOINT>(_p_props));
-
-    // init protection
-    InitializeCriticalSection(&csEvents);
-    ConditionInit(&sEvents);
-
-    // create thread
-    hThread = CreateThread(NULL, NULL, ThreadProcEventHandler,
-                           dynamic_cast<LPVOID>(this), NULL, NULL);
-};
-
-VLCConnectionPointContainer::~VLCConnectionPointContainer()
-{
-    EnterCriticalSection(&csEvents);
-    isRunning = FALSE;
-    freeze = TRUE;
-    ConditionSignal(&sEvents);
-    LeaveCriticalSection(&csEvents);
-
-    do {
-        /* nothing wait for thread to finish */;
-    } while(WaitForSingleObjectEx (hThread, INFINITE, TRUE) == WAIT_IO_COMPLETION);
-    CloseHandle(hThread);
-
-    ConditionDestroy(&sEvents);
-    DeleteCriticalSection(&csEvents);
-
-    _v_cps.clear();
-    while(!_q_events.empty()) {
-        _q_events.pop();
-    };
-
-    delete _p_props;
-    delete _p_events;
-};
-
-STDMETHODIMP VLCConnectionPointContainer::EnumConnectionPoints(LPENUMCONNECTIONPOINTS *ppEnum)
-{
-    if( NULL == ppEnum )
-        return E_POINTER;
-
-    *ppEnum = dynamic_cast<LPENUMCONNECTIONPOINTS>(new VLCEnumConnectionPoints(_v_cps));
-
-    return (NULL != *ppEnum ) ? S_OK : E_OUTOFMEMORY;
-};
-
-STDMETHODIMP VLCConnectionPointContainer::FindConnectionPoint(REFIID riid, IConnectionPoint **ppCP)
-{
-    if( NULL == ppCP )
-        return E_POINTER;
-
-    *ppCP = NULL;
-
-    if( IID_IPropertyNotifySink == riid )
-    {
-        _p_props->AddRef();
-        *ppCP = dynamic_cast<LPCONNECTIONPOINT>(_p_props);
-    }
-    else if( _p_instance->getDispEventID() == riid )
-    {
-        _p_events->AddRef();
-        *ppCP = dynamic_cast<LPCONNECTIONPOINT>(_p_events);
-    }
-    else
-        return CONNECT_E_NOCONNECTION;
-
-    return NOERROR;
-};
-
-void VLCConnectionPointContainer::freezeEvents(BOOL bFreeze)
-{
-    EnterCriticalSection(&csEvents);
-    freeze = bFreeze;
-    LeaveCriticalSection(&csEvents);
-};
-
-void VLCConnectionPointContainer::fireEvent(DISPID dispId, DISPPARAMS* pDispParams)
-{
-    EnterCriticalSection(&csEvents);
-
-    // queue event for later use when container is ready
-    _q_events.push(new VLCDispatchEvent(dispId, *pDispParams));
-    if( _q_events.size() > 1024 )
-    {
-        // too many events in queue, get rid of older one
-        delete _q_events.front();
-        _q_events.pop();
-    }
-    ConditionSignal(&sEvents);
-    LeaveCriticalSection(&csEvents);
-};
-
-void VLCConnectionPointContainer::firePropChangedEvent(DISPID dispId)
-{
-    if( ! freeze )
-        _p_props->firePropChangedEvent(dispId);
-};
-
diff --git a/projects/activex/connectioncontainer.h b/projects/activex/connectioncontainer.h
deleted file mode 100644 (file)
index e4f9589..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-/*****************************************************************************
- * connectioncontainer.h: ActiveX control for VLC
- *****************************************************************************
- * Copyright (C) 2005 the VideoLAN team
- * Copyright (C) 2010 M2X BV
- *
- * Authors: Damien Fouilleul <Damien.Fouilleul@laposte.net>
- *          Jean-Paul Saman <jpsaman@videolan.org>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#ifndef __CONNECTIONCONTAINER_H__
-#define __CONNECTIONCONTAINER_H__
-
-#include <ocidl.h>
-#include <vector>
-#include <queue>
-#include <map>
-#include <cguid.h>
-
-class VLCConnectionPoint : public IConnectionPoint
-{
-
-public:
-
-    VLCConnectionPoint(IConnectionPointContainer *p_cpc, REFIID iid);
-    virtual ~VLCConnectionPoint();
-
-    // IUnknown methods
-    STDMETHODIMP QueryInterface(REFIID riid, void **ppv)
-    {
-        if( NULL == ppv )
-            return E_POINTER;
-        if( (IID_IUnknown == riid)
-         || (IID_IConnectionPoint == riid) )
-        {
-            AddRef();
-            *ppv = reinterpret_cast<LPVOID>(this);
-            return NOERROR;
-        }
-        // must be a standalone object
-        return E_NOINTERFACE;
-    };
-
-    STDMETHODIMP_(ULONG) AddRef(void) { return _p_cpc->AddRef(); };
-    STDMETHODIMP_(ULONG) Release(void) { return _p_cpc->Release(); };
-
-    // IConnectionPoint methods
-    STDMETHODIMP GetConnectionInterface(IID *);
-    STDMETHODIMP GetConnectionPointContainer(LPCONNECTIONPOINTCONTAINER *);
-    STDMETHODIMP Advise(IUnknown *, DWORD *);
-    STDMETHODIMP Unadvise(DWORD);
-    STDMETHODIMP EnumConnections(LPENUMCONNECTIONS *);
-
-    void fireEvent(DISPID dispIdMember, DISPPARAMS* pDispParams);
-    void firePropChangedEvent(DISPID dispId);
-
-private:
-
-    REFIID _iid;
-    IGlobalInterfaceTable *m_pGIT;
-    IConnectionPointContainer *_p_cpc;
-    std::map<DWORD, LPUNKNOWN> _connections;
-};
-
-//////////////////////////////////////////////////////////////////////////
-
-class VLCDispatchEvent {
-
-public:
-    VLCDispatchEvent(DISPID dispId, DISPPARAMS dispParams) :
-        _dispId(dispId), _dispParams(dispParams) {};
-    VLCDispatchEvent(const VLCDispatchEvent&);
-    ~VLCDispatchEvent();
-
-    DISPID      _dispId;
-    DISPPARAMS  _dispParams;
-};
-
-class VLCConnectionPointContainer : public IConnectionPointContainer
-{
-
-public:
-
-    VLCConnectionPointContainer(VLCPlugin *p_instance);
-    virtual ~VLCConnectionPointContainer();
-
-    // IUnknown methods
-    STDMETHODIMP QueryInterface(REFIID riid, void **ppv)
-    {
-        if( NULL == ppv)
-            return E_POINTER;
-        if( (IID_IUnknown == riid)
-         || (IID_IConnectionPointContainer == riid) )
-        {
-            AddRef();
-            *ppv = reinterpret_cast<LPVOID>(this);
-            return NOERROR;
-        }
-        return _p_instance->pUnkOuter->QueryInterface(riid, ppv);
-    };
-
-    STDMETHODIMP_(ULONG) AddRef(void) { return _p_instance->pUnkOuter->AddRef(); };
-    STDMETHODIMP_(ULONG) Release(void) { return _p_instance->pUnkOuter->Release(); };
-
-    // IConnectionPointContainer methods
-    STDMETHODIMP EnumConnectionPoints(LPENUMCONNECTIONPOINTS *);
-    STDMETHODIMP FindConnectionPoint(REFIID, LPCONNECTIONPOINT *);
-
-    void freezeEvents(BOOL);
-    void fireEvent(DISPID, DISPPARAMS*);
-    void firePropChangedEvent(DISPID dispId);
-
-public:
-    CRITICAL_SECTION csEvents;
-    HANDLE sEvents;
-
-    VLCPlugin *_p_instance;
-    BOOL isRunning;
-    BOOL freeze;
-    VLCConnectionPoint *_p_events;
-    VLCConnectionPoint *_p_props;
-    std::vector<LPCONNECTIONPOINT> _v_cps;
-    std::queue<class VLCDispatchEvent *> _q_events;
-
-private:
-    HANDLE  hThread;
-};
-
-#endif
-
diff --git a/projects/activex/dataobject.cpp b/projects/activex/dataobject.cpp
deleted file mode 100644 (file)
index e784096..0000000
+++ /dev/null
@@ -1,279 +0,0 @@
-/*****************************************************************************
- * viewobject.cpp: ActiveX control for VLC
- *****************************************************************************
- * Copyright (C) 2005 VideoLAN
- *
- * Authors: Damien Fouilleul <Damien.Fouilleul@laposte.net>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#include "plugin.h"
-#include "dataobject.h"
-
-#include "utils.h"
-
-using namespace std;
-
-//////////////////////////////////////////////////////////////////////////////
-
-static const FORMATETC _metaFileFormatEtc =
-{
-    CF_METAFILEPICT,
-    NULL,
-    DVASPECT_CONTENT,
-    -1,
-    TYMED_MFPICT,
-};
-static const FORMATETC _enhMetaFileFormatEtc =
-{
-    CF_ENHMETAFILE,
-    NULL,
-    DVASPECT_CONTENT,
-    -1,
-    TYMED_ENHMF,
-};
-
-class VLCEnumFORMATETC : public VLCEnumIterator<IID_IEnumFORMATETC,
-    IEnumFORMATETC,
-    FORMATETC,
-    vector<FORMATETC>::iterator>
-{
-public:
-    VLCEnumFORMATETC(vector<FORMATETC> v) :
-        VLCEnumIterator<IID_IEnumFORMATETC,
-        IEnumFORMATETC,
-        FORMATETC,
-        vector<FORMATETC>::iterator>(v.begin(), v.end())
-    {};
-};
-
-//////////////////////////////////////////////////////////////////////////////
-
-VLCDataObject::VLCDataObject(VLCPlugin *p_instance) : _p_instance(p_instance)
-{
-    _v_formatEtc.push_back(_enhMetaFileFormatEtc);
-    _v_formatEtc.push_back(_metaFileFormatEtc);
-    CreateDataAdviseHolder(&_p_adviseHolder);
-};
-
-VLCDataObject::~VLCDataObject()
-{
-    _p_adviseHolder->Release();
-};
-
-//////////////////////////////////////////////////////////////////////////////
-
-STDMETHODIMP VLCDataObject::DAdvise(LPFORMATETC pFormatEtc, DWORD padvf,
-                              LPADVISESINK pAdviseSink, LPDWORD pdwConnection)
-{
-    return _p_adviseHolder->Advise(this,
-            pFormatEtc, padvf,pAdviseSink, pdwConnection);
-};
-
-STDMETHODIMP VLCDataObject::DUnadvise(DWORD dwConnection)
-{
-    return _p_adviseHolder->Unadvise(dwConnection);
-};
-
-STDMETHODIMP VLCDataObject::EnumDAdvise(IEnumSTATDATA **ppenumAdvise)
-{
-    return _p_adviseHolder->EnumAdvise(ppenumAdvise);
-};
-
-STDMETHODIMP VLCDataObject::EnumFormatEtc(DWORD dwDirection,
-                                          IEnumFORMATETC **ppEnum)
-{
-    if( NULL == ppEnum )
-        return E_POINTER;
-
-    *ppEnum = new VLCEnumFORMATETC(_v_formatEtc);
-
-    return (NULL != *ppEnum ) ? S_OK : E_OUTOFMEMORY;
-};
-
-STDMETHODIMP VLCDataObject::GetCanonicalFormatEtc(LPFORMATETC pFormatEtcIn,
-                                                  LPFORMATETC pFormatEtcOut)
-{
-    HRESULT result = QueryGetData(pFormatEtcIn);
-    if( FAILED(result) )
-        return result;
-
-    if( NULL == pFormatEtcOut )
-        return E_POINTER;
-
-    *pFormatEtcOut = *pFormatEtcIn;
-    pFormatEtcOut->ptd = NULL;
-
-    return DATA_S_SAMEFORMATETC;
-};
-
-STDMETHODIMP VLCDataObject::GetData(LPFORMATETC pFormatEtc, LPSTGMEDIUM pMedium)
-{
-    if( NULL == pMedium )
-        return E_POINTER;
-
-    HRESULT result = QueryGetData(pFormatEtc);
-    if( SUCCEEDED(result) )
-    {
-        switch( pFormatEtc->cfFormat )
-        {
-            case CF_METAFILEPICT:
-                pMedium->tymed = TYMED_MFPICT;
-                pMedium->hMetaFilePict = NULL;
-                pMedium->pUnkForRelease = NULL;
-                result = getMetaFileData(pFormatEtc, pMedium);
-                break;
-            case CF_ENHMETAFILE:
-                pMedium->tymed = TYMED_ENHMF;
-                pMedium->hEnhMetaFile = NULL;
-                pMedium->pUnkForRelease = NULL;
-                result = getEnhMetaFileData(pFormatEtc, pMedium);
-                break;
-            default:
-                result = DV_E_FORMATETC;
-        }
-    }
-    return result;
-};
-
-STDMETHODIMP VLCDataObject::GetDataHere(LPFORMATETC pFormatEtc,
-                                        LPSTGMEDIUM pMedium)
-{
-    if( NULL == pMedium )
-        return E_POINTER;
-
-    return E_NOTIMPL;
-}
-
-//////////////////////////////////////////////////////////////////////////////
-
-HRESULT VLCDataObject::getMetaFileData(LPFORMATETC pFormatEtc,
-                                       LPSTGMEDIUM pMedium)
-{
-    HDC hicTargetDev = CreateDevDC(pFormatEtc->ptd);
-    if( NULL == hicTargetDev )
-        return E_FAIL;
-
-    HDC hdcMeta = CreateMetaFile(NULL);
-    if( NULL != hdcMeta )
-    {
-        LPMETAFILEPICT pMetaFilePict =
-                         (LPMETAFILEPICT)CoTaskMemAlloc(sizeof(METAFILEPICT));
-        if( NULL != pMetaFilePict )
-        {
-            SIZEL size = _p_instance->getExtent();
-            RECTL wBounds = { 0L, 0L, size.cx, size.cy };
-
-            pMetaFilePict->mm   = MM_ANISOTROPIC;
-            pMetaFilePict->xExt = size.cx;
-            pMetaFilePict->yExt = size.cy;
-
-            DPFromHimetric(hicTargetDev, (LPPOINT)&size, 1);
-
-            SetMapMode(hdcMeta, MM_ANISOTROPIC);
-            SetWindowExtEx(hdcMeta, size.cx, size.cy, NULL);
-
-            RECTL bounds = { 0L, 0L, size.cx, size.cy };
-
-            _p_instance->onDraw(pFormatEtc->ptd, hicTargetDev, hdcMeta,
-                                &bounds, &wBounds);
-            pMetaFilePict->hMF = CloseMetaFile(hdcMeta);
-            if( NULL != pMetaFilePict->hMF )
-                pMedium->hMetaFilePict = pMetaFilePict;
-            else
-                CoTaskMemFree(pMetaFilePict);
-        }
-    }
-    DeleteDC(hicTargetDev);
-    return (NULL != pMedium->hMetaFilePict) ? S_OK : E_FAIL;
-};
-
-HRESULT VLCDataObject::getEnhMetaFileData(LPFORMATETC pFormatEtc,
-                                          LPSTGMEDIUM pMedium)
-{
-    HDC hicTargetDev = CreateDevDC(pFormatEtc->ptd);
-    if( NULL == hicTargetDev )
-        return E_FAIL;
-
-    SIZEL size = _p_instance->getExtent();
-
-    HDC hdcMeta = CreateEnhMetaFile(hicTargetDev, NULL, NULL, NULL);
-    if( NULL != hdcMeta )
-    {
-        RECTL wBounds = { 0L, 0L, size.cx, size.cy };
-
-        DPFromHimetric(hicTargetDev, (LPPOINT)&size, 1);
-
-        RECTL bounds = { 0L, 0L, size.cx, size.cy };
-
-        _p_instance->onDraw(pFormatEtc->ptd, hicTargetDev,
-                            hdcMeta, &bounds, &wBounds);
-        pMedium->hEnhMetaFile = CloseEnhMetaFile(hdcMeta);
-    }
-    DeleteDC(hicTargetDev);
-
-    return (NULL != pMedium->hEnhMetaFile) ? S_OK : E_FAIL;
-};
-
-STDMETHODIMP VLCDataObject::QueryGetData(LPFORMATETC pFormatEtc)
-{
-    if( NULL == pFormatEtc )
-        return E_POINTER;
-
-    const FORMATETC *formatEtc;
-
-    switch( pFormatEtc->cfFormat )
-    {
-        case CF_METAFILEPICT:
-            formatEtc = &_metaFileFormatEtc;
-            break;
-        case CF_ENHMETAFILE:
-            formatEtc = &_enhMetaFileFormatEtc;
-            break;
-        default:
-            return DV_E_FORMATETC;
-    }
-    if( pFormatEtc->dwAspect != formatEtc->dwAspect )
-        return DV_E_DVASPECT;
-
-    if( pFormatEtc->lindex != formatEtc->lindex )
-        return DV_E_LINDEX;
-
-    if( pFormatEtc->tymed != formatEtc->tymed )
-        return DV_E_TYMED;
-
-    return S_OK;
-};
-
-STDMETHODIMP VLCDataObject::SetData(LPFORMATETC pFormatEtc,
-                                    LPSTGMEDIUM pMedium, BOOL fRelease)
-{
-    return E_NOTIMPL;
-};
-
-/*void VLCDataObject::onDataChange(void)
-{
-    _p_adviseHolder->SendOnDataChange(this, 0, 0);
-};*/
-
-void VLCDataObject::onClose(void)
-{
-    _p_adviseHolder->SendOnDataChange(this, 0, ADVF_DATAONSTOP);
-    if( S_OK == OleIsCurrentClipboard(dynamic_cast<LPDATAOBJECT>(this)) )
-        OleFlushClipboard();
-};
-
diff --git a/projects/activex/dataobject.h b/projects/activex/dataobject.h
deleted file mode 100644 (file)
index 062fcdd..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-/*****************************************************************************
- * persiststorage.h: ActiveX control for VLC
- *****************************************************************************
- * Copyright (C) 2005 VideoLAN
- *
- * Authors: Damien Fouilleul <Damien.Fouilleul@laposte.net>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#ifndef __DATAOBJECT_H__
-#define __DATAOBJECT_H__
-
-#include <objidl.h>
-#include <vector>
-
-class VLCDataObject : public IDataObject
-{
-
-public:
-
-    VLCDataObject(VLCPlugin *p_instance);
-    virtual ~VLCDataObject();
-
-    // IUnknown methods
-    STDMETHODIMP QueryInterface(REFIID riid, void **ppv)
-    {
-        if( NULL == ppv)
-            return E_POINTER;
-        if( (IID_IUnknown == riid)
-         || (IID_IDataObject == riid) ) {
-            AddRef();
-            *ppv = reinterpret_cast<LPVOID>(this);
-            return NOERROR;
-        }
-        return _p_instance->pUnkOuter->QueryInterface(riid, ppv);
-    };
-
-    STDMETHODIMP_(ULONG) AddRef(void) { return _p_instance->pUnkOuter->AddRef(); };
-    STDMETHODIMP_(ULONG) Release(void) { return _p_instance->pUnkOuter->Release(); };
-
-    // IDataObject methods
-    STDMETHODIMP DAdvise(LPFORMATETC,DWORD,LPADVISESINK,LPDWORD);
-    STDMETHODIMP DUnadvise(DWORD);
-    STDMETHODIMP EnumDAdvise(IEnumSTATDATA**);
-    STDMETHODIMP EnumFormatEtc(DWORD, IEnumFORMATETC**);
-    STDMETHODIMP GetCanonicalFormatEtc(LPFORMATETC,LPFORMATETC);
-    STDMETHODIMP GetData(LPFORMATETC,LPSTGMEDIUM);
-    STDMETHODIMP GetDataHere(LPFORMATETC,LPSTGMEDIUM);
-    STDMETHODIMP QueryGetData(LPFORMATETC);
-    STDMETHODIMP SetData(LPFORMATETC,LPSTGMEDIUM,BOOL);
-
-    void onClose(void);
-private:
-
-    HRESULT getMetaFileData(LPFORMATETC pFormatEtc, LPSTGMEDIUM pMedium);
-    HRESULT getEnhMetaFileData(LPFORMATETC pFormatEtc, LPSTGMEDIUM pMedium);
-
-    VLCPlugin *_p_instance;
-    std::vector<FORMATETC> _v_formatEtc;
-    IDataAdviseHolder *_p_adviseHolder;
-};
-
-#endif
-
diff --git a/projects/activex/guiddef.h b/projects/activex/guiddef.h
deleted file mode 100644 (file)
index 0c82217..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/*****************************************************************************
- * guiddef.h: ActiveX control for VLC
- *****************************************************************************
- * Copyright (C) 2006 the VideoLAN team
- *
- * Authors: Damien Fouilleul <Damien.Fouilleul@laposte.net>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#ifndef __GUIDDEF_H__
-#define __GUIDDEF_H__
-/*
-** Widl generated code requires guiddef.h,
-** which is not available under MinGW
-*/
-#undef GUID_EXT
-#define GUID_EXT
-#include <initguid.h>
-
-#endif
-
diff --git a/projects/activex/inplace.bmp b/projects/activex/inplace.bmp
deleted file mode 100644 (file)
index f8d682d..0000000
Binary files a/projects/activex/inplace.bmp and /dev/null differ
diff --git a/projects/activex/main.cpp b/projects/activex/main.cpp
deleted file mode 100644 (file)
index 6fa8a76..0000000
+++ /dev/null
@@ -1,448 +0,0 @@
-/*****************************************************************************
- * main.cpp: ActiveX control for VLC
- *****************************************************************************
- * Copyright (C) 2005 the VideoLAN team
- *
- * Authors: Damien Fouilleul <Damien.Fouilleul@laposte.net>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#include "plugin.h"
-#include "utils.h"
-
-#include <stdio.h>
-
-#include <comcat.h>
-#include <windows.h>
-#include <shlwapi.h>
-
-#include <tchar.h>
-#include <guiddef.h>
-
-using namespace std;
-
-#define COMPANY_STR "VideoLAN"
-#define PROGRAM_STR "VLCPlugin"
-#define DESCRIPTION "VLC ActiveX Plugin and IE Web Plugin"
-
-#define THREADING_MODEL "Apartment"
-#define MISC_STATUS     "131473"
-
-#define PROGID_STR COMPANY_STR"."PROGRAM_STR
-
-#define GUID_STRLEN 39
-
-/*
-** MingW headers & libs do not declare those
-*/
-static DEFINE_GUID(_CATID_InternetAware, \
-       0x0DE86A58, 0x2BAA, 0x11CF, 0xA2, 0x29, 0x00,0xAA,0x00,0x3D,0x73,0x52);
-static DEFINE_GUID(_CATID_SafeForInitializing, \
-       0x7DD95802, 0x9882, 0x11CF, 0x9F, 0xA9, 0x00,0xAA,0x00,0x6C,0x42,0xC4);
-static DEFINE_GUID(_CATID_SafeForScripting, \
-       0x7DD95801, 0x9882, 0x11CF, 0x9F, 0xA9, 0x00,0xAA,0x00,0x6C,0x42,0xC4);
-
-static LONG i_class_ref= 0;
-static HINSTANCE h_instance= 0;
-
-HMODULE DllGetModule()
-{
-    return h_instance;
-};
-
-STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv)
-{
-    HRESULT hr = CLASS_E_CLASSNOTAVAILABLE;
-
-    *ppv = NULL;
-
-    if( (CLSID_VLCPlugin == rclsid) || (CLSID_VLCPlugin2 == rclsid) )
-    {
-        VLCPluginClass *plugin =
-            new VLCPluginClass(&i_class_ref, h_instance, rclsid);
-        hr = plugin->QueryInterface(riid, ppv);
-        plugin->Release();
-    }
-    return hr;
-};
-
-STDAPI DllCanUnloadNow(VOID)
-{
-    return (0 == i_class_ref) ? S_OK: S_FALSE;
-};
-
-static inline HKEY keyCreate(HKEY parentKey, LPCTSTR keyName)
-{
-    HKEY childKey;
-    if( ERROR_SUCCESS == RegCreateKeyEx(parentKey, keyName, 0, NULL,
-             REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &childKey, NULL) )
-    {
-        return childKey;
-    }
-    return NULL;
-};
-
-static inline HKEY keySet(HKEY hKey, LPCTSTR valueName,
-                          const void *s, size_t len, DWORD dwType = REG_SZ)
-{
-    if( NULL != hKey )
-    {
-        RegSetValueEx(hKey, valueName, 0, dwType, (const BYTE*)s, len);
-    }
-    return hKey;
-};
-
-static inline HKEY keySetDef(HKEY hKey,
-                             const void *s, size_t len, DWORD dwType = REG_SZ)
-{
-    return keySet(hKey, NULL, s, len, dwType);
-};
-
-static inline HKEY keySetDef(HKEY hKey, LPCTSTR s)
-{
-    return keySetDef(hKey, s, sizeof(TCHAR)*(_tcslen(s)+1), REG_SZ);
-};
-
-static inline HKEY keyClose(HKEY hKey)
-{
-    if( NULL != hKey )
-    {
-        RegCloseKey(hKey);
-    }
-    return NULL;
-};
-
-static void UnregisterProgID(REFCLSID rclsid, unsigned int version)
-{
-    OLECHAR szCLSID[GUID_STRLEN];
-
-    StringFromGUID2(rclsid, szCLSID, GUID_STRLEN);
-
-    TCHAR progId[sizeof(PROGID_STR)+16];
-    _stprintf(progId, TEXT("%s.%u"), TEXT(PROGID_STR), version);
-
-    SHDeleteKey(HKEY_CLASSES_ROOT, progId);
-
-    HKEY hClsIDKey;
-    if( ERROR_SUCCESS == RegOpenKeyEx(HKEY_CLASSES_ROOT, TEXT("CLSID"), 0, KEY_WRITE, &hClsIDKey) )
-    {
-        SHDeleteKey(hClsIDKey, szCLSID);
-        RegCloseKey(hClsIDKey);
-    }
-};
-
-STDAPI DllUnregisterServer(VOID)
-{
-    // unregister type lib from the registry
-    UnRegisterTypeLib(LIBID_AXVLC, 1, 0, LOCALE_NEUTRAL, SYS_WIN32);
-
-    // remove component categories we supports
-    ICatRegister *pcr;
-    if( SUCCEEDED(CoCreateInstance(CLSID_StdComponentCategoriesMgr,
-            NULL, CLSCTX_INPROC_SERVER, IID_ICatRegister, (void**)&pcr)) ) {
-        CATID implCategories[] = {
-            CATID_Control,
-            CATID_PersistsToPropertyBag,
-            _CATID_InternetAware,
-            _CATID_SafeForInitializing,
-            _CATID_SafeForScripting,
-        };
-
-        pcr->UnRegisterClassImplCategories(CLSID_VLCPlugin,
-                sizeof(implCategories)/sizeof(CATID), implCategories);
-        pcr->UnRegisterClassImplCategories(CLSID_VLCPlugin2,
-                sizeof(implCategories)/sizeof(CATID), implCategories);
-        pcr->Release();
-    }
-
-    SHDeleteKey(HKEY_CLASSES_ROOT, TEXT(PROGID_STR));
-
-    UnregisterProgID(CLSID_VLCPlugin, 2);
-    UnregisterProgID(CLSID_VLCPlugin2, 1);
-
-    return S_OK;
-};
-
-static HRESULT RegisterClassID(HKEY hParent, REFCLSID rclsid, unsigned int version, BOOL isDefault, LPCTSTR path, size_t pathLen)
-{
-    TCHAR progId[sizeof(PROGID_STR)+16];
-    _stprintf(progId, TEXT("%s.%u"), TEXT(PROGID_STR), version);
-
-    TCHAR description[sizeof(DESCRIPTION)+16];
-    _stprintf(description, TEXT("%s v%u"), TEXT(DESCRIPTION), version);
-
-    HKEY hClassKey;
-    {
-        OLECHAR szCLSID[GUID_STRLEN];
-
-        StringFromGUID2(rclsid, szCLSID, GUID_STRLEN);
-
-        HKEY hProgKey = keyCreate(HKEY_CLASSES_ROOT, progId);
-        if( NULL != hProgKey )
-        {
-            // default key value
-            keySetDef(hProgKey, description);
-
-            keyClose(keySetDef(keyCreate(hProgKey, TEXT("CLSID")),
-                               szCLSID, sizeof(szCLSID)));
-
-            //hSubKey = keyClose(keyCreate(hBaseKey, "Insertable"));
-            RegCloseKey(hProgKey);
-        }
-        if( isDefault )
-        {
-            hProgKey = keyCreate(HKEY_CLASSES_ROOT, TEXT(PROGID_STR));
-            if( NULL != hProgKey )
-            {
-                // default key value
-                keySetDef(hProgKey, description);
-
-                keyClose(keySetDef(keyCreate(hProgKey, TEXT("CLSID")),
-                                   szCLSID, sizeof(szCLSID)));
-
-                keyClose(keySetDef(keyCreate(hProgKey, TEXT("CurVer")),
-                                   progId));
-            }
-        }
-        hClassKey = keyCreate(hParent, szCLSID);
-    }
-    if( NULL != hClassKey )
-    {
-        // default key value
-        keySetDef(hClassKey, description);
-
-        // Control key value
-        keyClose(keyCreate(hClassKey, TEXT("Control")));
-
-        // Insertable key value
-        //keyClose(keyCreate(hClassKey, TEXT("Insertable")));
-
-        // ToolboxBitmap32 key value
-        {
-            TCHAR iconPath[pathLen+3];
-            memcpy(iconPath, path, sizeof(TCHAR)*pathLen);
-            _tcscpy(iconPath+pathLen, TEXT(",1"));
-            keyClose(keySetDef(keyCreate(hClassKey,
-                TEXT("ToolboxBitmap32")),
-                iconPath, sizeof(iconPath)));
-        }
-
-#ifdef BUILD_LOCALSERVER
-        // LocalServer32 key value
-        keyClose(keySetDef(keyCreate(hClassKey,
-            TEXT("LocalServer32"), path, sizeof(TCHAR)*(pathLen+1))));
-#else
-        // InprocServer32 key value
-        {
-            HKEY hSubKey = keySetDef(keyCreate(hClassKey,
-                TEXT("InprocServer32")),
-                path, sizeof(TCHAR)*(pathLen+1));
-            keySet(hSubKey,
-                TEXT("ThreadingModel"),
-                TEXT(THREADING_MODEL), sizeof(TEXT(THREADING_MODEL)));
-            keyClose(hSubKey);
-        }
-#endif
-
-        // MiscStatus key value
-        keyClose(keySetDef(keyCreate(hClassKey,TEXT("MiscStatus\\1")),
-                           TEXT(MISC_STATUS), sizeof(TEXT(MISC_STATUS))));
-
-        // Programmable key value
-        keyClose(keyCreate(hClassKey, TEXT("Programmable")));
-
-        // ProgID key value
-        keyClose(keySetDef(keyCreate(hClassKey,TEXT("ProgID")),progId));
-
-        // VersionIndependentProgID key value
-        keyClose(keySetDef(keyCreate(hClassKey,
-                                     TEXT("VersionIndependentProgID")),
-                           TEXT(PROGID_STR), sizeof(TEXT(PROGID_STR))));
-
-        // Version key value
-        keyClose(keySetDef(keyCreate(hClassKey,TEXT("Version")),TEXT("1.0")));
-
-        // TypeLib key value
-        OLECHAR szLIBID[GUID_STRLEN];
-
-        StringFromGUID2(LIBID_AXVLC, szLIBID, GUID_STRLEN);
-
-        keyClose(keySetDef(keyCreate(hClassKey,TEXT("TypeLib")),
-                           szLIBID, sizeof(szLIBID)));
-        RegCloseKey(hClassKey);
-    }
-    return S_OK;
-}
-
-STDAPI DllRegisterServer(VOID)
-{
-    DllUnregisterServer();
-
-    TCHAR DllPath[MAX_PATH];
-    DWORD DllPathLen=GetModuleFileName(h_instance, DllPath, MAX_PATH) ;
-    if( 0 == DllPathLen )
-        return E_UNEXPECTED;
-    DllPath[MAX_PATH-1] = '\0';
-
-    HKEY hBaseKey;
-
-    if( ERROR_SUCCESS != RegOpenKeyEx(HKEY_CLASSES_ROOT, TEXT("CLSID"),
-                                      0, KEY_CREATE_SUB_KEY, &hBaseKey) )
-        return SELFREG_E_CLASS;
-
-    RegisterClassID(hBaseKey, CLSID_VLCPlugin, 1, FALSE, DllPath, DllPathLen);
-    RegisterClassID(hBaseKey, CLSID_VLCPlugin2, 2, TRUE, DllPath, DllPathLen);
-
-    RegCloseKey(hBaseKey);
-
-    // indicate which component categories we support
-    ICatRegister *pcr;
-    if( SUCCEEDED(CoCreateInstance(CLSID_StdComponentCategoriesMgr,
-            NULL, CLSCTX_INPROC_SERVER, IID_ICatRegister, (void**)&pcr)) ) {
-        CATID implCategories[] = {
-            CATID_Control,
-            CATID_PersistsToPropertyBag,
-            _CATID_InternetAware,
-            _CATID_SafeForInitializing,
-            _CATID_SafeForScripting,
-        };
-
-        pcr->RegisterClassImplCategories(CLSID_VLCPlugin,
-                sizeof(implCategories)/sizeof(CATID), implCategories);
-        pcr->RegisterClassImplCategories(CLSID_VLCPlugin2,
-                sizeof(implCategories)/sizeof(CATID), implCategories);
-        pcr->Release();
-    }
-
-#ifdef BUILD_LOCALSERVER
-    // replace .exe by .tlb
-    _tcscpy(DllPath+DllPathLen-4, TEXT(".tlb"));
-#endif
-
-    // register type lib into the registry
-    ITypeLib *typeLib;
-
-    HRESULT result = LoadTypeLibEx(DllPath, REGKIND_REGISTER, &typeLib);
-    if( SUCCEEDED(result) )
-        typeLib->Release();
-
-    return result;
-};
-
-#ifdef BUILD_LOCALSERVER
-
-/*
-** easier to debug an application than a DLL on cygwin GDB :)
-*/
-#include <iostream>
-
-STDAPI_(int) WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR szCmdLine, int sw)
-{
-    MSG msg;
-
-    if( FAILED(OleInitialize(NULL)) )
-    {
-        cerr << "cannot initialize OLE" << endl;
-        return 1;
-    }
-
-    h_instance = hInst;
-
-    if( FAILED(DllRegisterServer()) )
-    {
-        cerr << "cannot register Local Server" << endl;
-        return 1;
-    }
-
-    IUnknown *classProc = NULL;
-
-    if( FAILED(DllGetClassObject(CLSID_VLCPlugin, IID_IUnknown,
-                                 (LPVOID *)&classProc)) )
-        return 0;
-    DWORD dwRegisterClassObject;
-    DWORD dwRegisterClassObject2;
-
-    if( FAILED(CoRegisterClassObject(CLSID_VLCPlugin, classProc,
-        CLSCTX_LOCAL_SERVER, REGCLS_MULTIPLEUSE, &dwRegisterClassObject)) )
-        return 0;
-
-    DWORD dwRegisterActiveObject;
-
-    if( FAILED(RegisterActiveObject(classProc, CLSID_VLCPlugin,
-                    ACTIVEOBJECT_WEAK, &dwRegisterActiveObject)) )
-        return 0;
-
-    if( FAILED(RegisterActiveObject(classProc, CLSID_VLCPlugin2,
-                    ACTIVEOBJECT_WEAK, &dwRegisterActiveObject2)) )
-        return 0;
-
-    classProc->Release();
-
-    /*
-    * Polling messages from event queue
-    */
-    while( S_FALSE == DllCanUnloadNow() )
-    {
-        while( PeekMessage(&msg, NULL, 0, 0, PM_REMOVE) )
-        {
-            if( msg.message == WM_QUIT )
-                break;  // break out PeekMessage loop
-
-            /*if(TranslateAccelerator(ghwndApp, ghAccel, &msg))
-                continue;*/
-
-            TranslateMessage(&msg);
-            DispatchMessage(&msg);
-        }
-
-        if(msg.message == WM_QUIT)
-            break;  // break out main loop
-
-        WaitMessage();
-    }
-
-    if( SUCCEEDED(RevokeActiveObject(dwRegisterActiveObject, NULL)) )
-        CoRevokeClassObject(dwRegisterClassObject);
-
-    if( SUCCEEDED(RevokeActiveObject(dwRegisterActiveObject2, NULL)) )
-        CoRevokeClassObject(dwRegisterClassObject2);
-
-    // Reached on WM_QUIT message
-    OleUninitialize();
-    return ((int) msg.wParam);
-};
-
-#else
-
-STDAPI_(BOOL) DllMain(HANDLE hModule, DWORD fdwReason, LPVOID lpReserved )
-{
-    switch( fdwReason )
-    {
-        case DLL_PROCESS_ATTACH:
-            h_instance = (HINSTANCE)hModule;
-            break;
-
-        default:
-            break;
-    }
-    return TRUE;
-};
-
-#endif
-
diff --git a/projects/activex/objectsafety.cpp b/projects/activex/objectsafety.cpp
deleted file mode 100644 (file)
index 667a15b..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-/*****************************************************************************
- * objectsafety.cpp: ActiveX control for VLC
- *****************************************************************************
- * Copyright (C) 2005-2010 the VideoLAN team
- *
- * Authors: Damien Fouilleul <Damien.Fouilleul@laposte.net>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#include "plugin.h"
-#include "objectsafety.h"
-
-#include "axvlc_idl.h"
-
-#if 0
-const GUID IID_IObjectSafety =
-    {0xCB5BDC81,0x93C1,0x11cf,{0x8F,0x20,0x00,0x80,0x5F,0x2C,0xD0,0x64}};
-#endif
-
-using namespace std;
-
-STDMETHODIMP VLCObjectSafety::GetInterfaceSafetyOptions(
-    REFIID riid,
-    DWORD *pdwSupportedOptions,
-    DWORD *pdwEnabledOptions
-)
-{
-    if( (NULL == pdwSupportedOptions) || (NULL == pdwEnabledOptions) )
-        return E_POINTER;
-
-    *pdwSupportedOptions = INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACESAFE_FOR_UNTRUSTED_CALLER;
-
-    if( (IID_IDispatch == riid)
-     || (IID_IVLCControl == riid)
-     || (IID_IVLCControl2 == riid) )
-    {
-        *pdwEnabledOptions = INTERFACESAFE_FOR_UNTRUSTED_CALLER;
-        return NOERROR;
-    }
-    else if( (IID_IPersist == riid)
-          || (IID_IPersistStreamInit == riid)
-          || (IID_IPersistStorage == riid)
-          || (IID_IPersistPropertyBag == riid) )
-    {
-        *pdwEnabledOptions = INTERFACESAFE_FOR_UNTRUSTED_DATA;
-        return NOERROR;
-    }
-    *pdwEnabledOptions = 0;
-    return E_NOINTERFACE;
-};
-
-STDMETHODIMP VLCObjectSafety::SetInterfaceSafetyOptions(
-    REFIID riid,
-    DWORD dwOptionSetMask,
-    DWORD dwEnabledOptions
-)
-{
-    if( (IID_IDispatch == riid)
-     || (IID_IVLCControl == riid)
-     || (IID_IVLCControl2 == riid) )
-    {
-        if( (INTERFACESAFE_FOR_UNTRUSTED_CALLER == dwOptionSetMask)
-         && (INTERFACESAFE_FOR_UNTRUSTED_CALLER == dwEnabledOptions) )
-        {
-            return NOERROR;
-        }
-        return E_FAIL;
-    }
-    else if( (IID_IPersist == riid)
-          || (IID_IPersistStreamInit == riid)
-          || (IID_IPersistStorage == riid)
-          || (IID_IPersistPropertyBag == riid) )
-    {
-        if( (INTERFACESAFE_FOR_UNTRUSTED_DATA == dwOptionSetMask)
-         && (INTERFACESAFE_FOR_UNTRUSTED_DATA == dwEnabledOptions) )
-        {
-            return NOERROR;
-        }
-        return E_FAIL;
-    }
-    return E_FAIL;
-};
diff --git a/projects/activex/objectsafety.h b/projects/activex/objectsafety.h
deleted file mode 100644 (file)
index 14ad340..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-/*****************************************************************************
- * objectsafety.h: ActiveX control for VLC
- *****************************************************************************
- * Copyright (C) 2005 the VideoLAN team
- *
- * Authors: Damien Fouilleul <Damien.Fouilleul@laposte.net>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#ifndef __OBJECTSAFETY_H__
-#define __OBJECTSAFETY_H__
-
-#if HAVE_OBJSAFE_HEADER
-/*
-** at last, a version of mingw that supports this header
-*/
-#include <objsafe.h>
-
-#else
-/*
-** mingw does not yet support objsafe.h, redefine what we need here
-*/
-
-// {CB5BDC81-93C1-11cf-8F20-00805F2CD064}
-extern "C" const IID IID_IObjectSafety;
-
-#define INTERFACESAFE_FOR_UNTRUSTED_CALLER 1L
-#define INTERFACESAFE_FOR_UNTRUSTED_DATA   2L
-
-struct IObjectSafety : public IUnknown
-{
-    virtual STDMETHODIMP GetInterfaceSafetyOptions(
-        REFIID riid,
-        DWORD __RPC_FAR *pdwSupportedOptions,
-        DWORD __RPC_FAR *pdwEnabledOptions
-    ) = 0;
-
-    virtual STDMETHODIMP SetInterfaceSafetyOptions(
-        REFIID riid,
-        DWORD dwSupportedOptions,
-        DWORD dwOptionSetMask
-    ) = 0;
-};
-
-#endif
-
-class VLCObjectSafety : public IObjectSafety
-{
-public:
-
-    VLCObjectSafety(VLCPlugin *p_instance) : _p_instance(p_instance) {};
-    virtual ~VLCObjectSafety() {};
-
-    // IUnknown methods
-    STDMETHODIMP QueryInterface(REFIID riid, void **ppv)
-    {
-        if( NULL == ppv)
-            return E_POINTER;
-        if( (IID_IUnknown == riid)
-         || (IID_IObjectSafety == riid) )
-        {
-            AddRef();
-            *ppv = reinterpret_cast<LPVOID>(this);
-            return NOERROR;
-        }
-        return _p_instance->pUnkOuter->QueryInterface(riid, ppv);
-    };
-
-    STDMETHODIMP_(ULONG) AddRef(void) { return _p_instance->pUnkOuter->AddRef(); };
-    STDMETHODIMP_(ULONG) Release(void) { return _p_instance->pUnkOuter->Release(); };
-
-    // IUnknown methods
-    STDMETHODIMP GetInterfaceSafetyOptions(
-        REFIID riid,
-        DWORD *pdwSupportedOptions,
-        DWORD *pdwEnabledOptions
-    );
-
-    STDMETHODIMP SetInterfaceSafetyOptions(
-        REFIID riid,
-        DWORD dwOptionSetMask,
-        DWORD dwEnabledOptions
-    );
-
-private:
-
-    VLCPlugin *_p_instance;
-};
-
-#endif
diff --git a/projects/activex/olecontrol.cpp b/projects/activex/olecontrol.cpp
deleted file mode 100644 (file)
index 32e2f1c..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-/*****************************************************************************
- * olecontrol.cpp: ActiveX control for VLC
- *****************************************************************************
- * Copyright (C) 2005 the VideoLAN team
- *
- * Authors: Damien Fouilleul <Damien.Fouilleul@laposte.net>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#include "plugin.h"
-#include "olecontrol.h"
-
-using namespace std;
-
-STDMETHODIMP VLCOleControl::GetControlInfo(CONTROLINFO *pCI)
-{
-    if( NULL == pCI )
-        return E_POINTER;
-
-    pCI->cb      = sizeof(CONTROLINFO);
-    pCI->hAccel  = NULL;
-    pCI->cAccel  = 0;
-    pCI->dwFlags = 0;
-
-    return S_OK;
-};
-
-STDMETHODIMP VLCOleControl::OnMnemonic(LPMSG pMsg)
-{
-    return S_OK;
-};
-
-STDMETHODIMP VLCOleControl::OnAmbientPropertyChange(DISPID dispID)
-{
-    HRESULT hr;
-    LPOLEOBJECT oleObj;
-
-    hr = QueryInterface(IID_IOleObject, (LPVOID *)&oleObj);
-    if( SUCCEEDED(hr) )
-    {
-        LPOLECLIENTSITE clientSite;
-
-        hr = oleObj->GetClientSite(&clientSite);
-        if( SUCCEEDED(hr) && (NULL != clientSite) )
-        {
-            _p_instance->onAmbientChanged(clientSite, dispID);
-            clientSite->Release();
-        }
-        oleObj->Release();
-    }
-    return S_OK;
-};
-
-STDMETHODIMP VLCOleControl::FreezeEvents(BOOL bFreeze)
-{
-    _p_instance->freezeEvents(bFreeze);
-    return S_OK;
-};
-
diff --git a/projects/activex/olecontrol.h b/projects/activex/olecontrol.h
deleted file mode 100644 (file)
index 330a6af..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-/*****************************************************************************
- * olecontrol.h: ActiveX control for VLC
- *****************************************************************************
- * Copyright (C) 2005 the VideoLAN team
- *
- * Authors: Damien Fouilleul <Damien.Fouilleul@laposte.net>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#ifndef __OLECONTROL_H__
-#define __OLECONTROL_H__
-
-#include <olectl.h>
-
-class VLCOleControl : public IOleControl
-{
-
-public:
-
-    VLCOleControl(VLCPlugin *p_instance) : _p_instance(p_instance) {};
-    virtual ~VLCOleControl() {};
-
-    // IUnknown methods
-    STDMETHODIMP QueryInterface(REFIID riid, void **ppv)
-    {
-        if( NULL == ppv )
-            return E_POINTER;
-        if( (IID_IUnknown == riid)
-         || (IID_IOleControl == riid) )
-        {
-            AddRef();
-            *ppv = reinterpret_cast<LPVOID>(this);
-            return NOERROR;
-        }
-        return _p_instance->pUnkOuter->QueryInterface(riid, ppv);
-    };
-
-    STDMETHODIMP_(ULONG) AddRef(void) { return _p_instance->pUnkOuter->AddRef(); };
-    STDMETHODIMP_(ULONG) Release(void) { return _p_instance->pUnkOuter->Release(); };
-
-    // IOleControl methods
-    STDMETHODIMP GetControlInfo(CONTROLINFO *pCI);
-    STDMETHODIMP OnMnemonic(LPMSG pMsg);
-    STDMETHODIMP OnAmbientPropertyChange(DISPID dispID);
-    STDMETHODIMP FreezeEvents(BOOL bFreeze);
-
-private:
-
-    VLCPlugin *_p_instance;
-};
-
-#endif
-
diff --git a/projects/activex/oleinplaceactiveobject.cpp b/projects/activex/oleinplaceactiveobject.cpp
deleted file mode 100644 (file)
index 11b2672..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-/*****************************************************************************
- * oleinplaceactiveobject.cpp: ActiveX control for VLC
- *****************************************************************************
- * Copyright (C) 2005 the VideoLAN team
- *
- * Authors: Damien Fouilleul <Damien.Fouilleul@laposte.net>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#include "plugin.h"
-#include "oleinplaceactiveobject.h"
-
-using namespace std;
-
-STDMETHODIMP VLCOleInPlaceActiveObject::GetWindow(HWND *pHwnd)
-{
-    if( NULL == pHwnd )
-        return E_POINTER;
-
-    *pHwnd = NULL;
-    if( _p_instance->isInPlaceActive() )
-    {
-        if( NULL != (*pHwnd = _p_instance->getInPlaceWindow()) )
-            return S_OK;
-    }
-    return E_FAIL;
-};
-
-STDMETHODIMP VLCOleInPlaceActiveObject::EnableModeless(BOOL fEnable)
-{
-    return S_OK;
-};
-
-STDMETHODIMP VLCOleInPlaceActiveObject::ContextSensitiveHelp(BOOL fEnterMode)
-{
-    return E_NOTIMPL;
-};
-
-STDMETHODIMP VLCOleInPlaceActiveObject::TranslateAccelerator(LPMSG lpmsg)
-{
-    HRESULT hr = S_FALSE;
-    LPOLEOBJECT oleObj;
-    if( SUCCEEDED(QueryInterface(IID_IOleObject, (LPVOID *)&oleObj)) )
-    {
-        LPOLECLIENTSITE clientSite;
-        if( SUCCEEDED(oleObj->GetClientSite(&clientSite)) && (NULL != clientSite) )
-        {
-            IOleControlSite *controlSite;
-            if( SUCCEEDED(clientSite->QueryInterface(IID_IOleControlSite, (LPVOID *)&controlSite)) )
-            {
-                hr = controlSite->TranslateAccelerator(lpmsg,
-                    ((GetKeyState(VK_SHIFT) >> 15) & 1) |
-                    ((GetKeyState(VK_CONTROL) >> 14) & 2) |
-                    ((GetKeyState(VK_MENU) >> 13) & 4) );
-                controlSite->Release();
-            }
-            clientSite->Release();
-        }
-        oleObj->Release();
-    }
-    return hr;
-};
-
-STDMETHODIMP VLCOleInPlaceActiveObject::OnFrameWindowActivate(BOOL fActivate)
-{
-    return S_OK;
-};
-
-STDMETHODIMP VLCOleInPlaceActiveObject::OnDocWindowActivate(BOOL fActivate)
-{
-    return S_OK;
-};
-
-STDMETHODIMP VLCOleInPlaceActiveObject::ResizeBorder(LPCRECT prcBorder, LPOLEINPLACEUIWINDOW pUIWindow, BOOL fFrameWindow)
-{
-    return S_OK;
-};
-
diff --git a/projects/activex/oleinplaceactiveobject.h b/projects/activex/oleinplaceactiveobject.h
deleted file mode 100644 (file)
index 6b7406f..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-/*****************************************************************************
- * oleinplaceactiveobject.h: ActiveX control for VLC
- *****************************************************************************
- * Copyright (C) 2005 the VideoLAN team
- *
- * Authors: Damien Fouilleul <Damien.Fouilleul@laposte.net>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#ifndef __OLEINPLACEACTIVEOBJECT_H__
-#define __OLEINPLACEACTIVEOBJECT_H__
-
-#include "oleidl.h"
-
-class VLCOleInPlaceActiveObject : public IOleInPlaceActiveObject
-{
-
-public:
-
-    VLCOleInPlaceActiveObject(VLCPlugin *p_instance) : _p_instance(p_instance) {};
-    virtual ~VLCOleInPlaceActiveObject() {};
-
-    // IUnknown methods
-    STDMETHODIMP QueryInterface(REFIID riid, void **ppv)
-    {
-        if( NULL == ppv )
-            return E_POINTER;
-        if( (IID_IUnknown == riid)
-         || (IID_IOleWindow == riid)
-         || (IID_IOleInPlaceActiveObject == riid) )
-        {
-            AddRef();
-            *ppv = reinterpret_cast<LPVOID>(this);
-            return NOERROR;
-        }
-        return _p_instance->pUnkOuter->QueryInterface(riid, ppv);
-    };
-
-    STDMETHODIMP_(ULONG) AddRef(void) { return _p_instance->pUnkOuter->AddRef(); };
-    STDMETHODIMP_(ULONG) Release(void) { return _p_instance->pUnkOuter->Release(); };
-
-    // IOleWindow methods
-    STDMETHODIMP GetWindow(HWND *);
-    STDMETHODIMP ContextSensitiveHelp(BOOL);
-
-    // IOleInPlaceActiveObject methods
-    STDMETHODIMP EnableModeless(BOOL);
-    STDMETHODIMP TranslateAccelerator(LPMSG);
-    STDMETHODIMP OnFrameWindowActivate(BOOL);
-    STDMETHODIMP OnDocWindowActivate(BOOL);
-    STDMETHODIMP ResizeBorder(LPCRECT, LPOLEINPLACEUIWINDOW, BOOL);
-
-private:
-
-    VLCPlugin *_p_instance;
-};
-
-#endif
-
diff --git a/projects/activex/oleinplaceobject.cpp b/projects/activex/oleinplaceobject.cpp
deleted file mode 100644 (file)
index 9e118f8..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-/*****************************************************************************
- * oleinplaceobject.cpp: ActiveX control for VLC
- *****************************************************************************
- * Copyright (C) 2005 the VideoLAN team
- *
- * Authors: Damien Fouilleul <Damien.Fouilleul@laposte.net>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#include "plugin.h"
-#include "oleinplaceobject.h"
-
-#include <docobj.h>
-
-using namespace std;
-
-STDMETHODIMP VLCOleInPlaceObject::GetWindow(HWND *pHwnd)
-{
-    if( NULL == pHwnd )
-        return E_POINTER;
-
-    *pHwnd = NULL;
-    if( _p_instance->isInPlaceActive() )
-    {
-        if( NULL != (*pHwnd = _p_instance->getInPlaceWindow()) )
-            return S_OK;
-    }
-    return E_FAIL;
-};
-
-STDMETHODIMP VLCOleInPlaceObject::ContextSensitiveHelp(BOOL fEnterMode)
-{
-    return E_NOTIMPL;
-};
-
-STDMETHODIMP VLCOleInPlaceObject::InPlaceDeactivate(void)
-{
-    if( _p_instance->isInPlaceActive() )
-    {
-        UIDeactivate();
-
-        _p_instance->onInPlaceDeactivate();
-
-        LPOLEOBJECT p_oleObject;
-        if( SUCCEEDED(QueryInterface(IID_IOleObject, (void**)&p_oleObject)) )
-        {
-            LPOLECLIENTSITE p_clientSite;
-            if( SUCCEEDED(p_oleObject->GetClientSite(&p_clientSite)) )
-            {
-                LPOLEINPLACESITE p_inPlaceSite;
-
-                if( SUCCEEDED(p_clientSite->QueryInterface(IID_IOleInPlaceSite, (void**)&p_inPlaceSite)) )
-                {
-                    p_inPlaceSite->OnInPlaceDeactivate();
-                    p_inPlaceSite->Release();
-                }
-                p_clientSite->Release();
-            }
-            p_oleObject->Release();
-        }
-        return S_OK;
-    }
-    return E_UNEXPECTED;
-};
-
-STDMETHODIMP VLCOleInPlaceObject::UIDeactivate(void)
-{
-    if( _p_instance->isInPlaceActive() )
-    {
-        if( _p_instance->hasFocus() )
-            _p_instance->setFocus(FALSE);
-
-        LPOLEOBJECT p_oleObject;
-        if( SUCCEEDED(QueryInterface(IID_IOleObject, (void**)&p_oleObject)) )
-        {
-            LPOLECLIENTSITE p_clientSite;
-            if( SUCCEEDED(p_oleObject->GetClientSite(&p_clientSite)) )
-            {
-                LPOLEINPLACESITE p_inPlaceSite;
-
-                if( SUCCEEDED(p_clientSite->QueryInterface(IID_IOleInPlaceSite, (void**)&p_inPlaceSite)) )
-                {
-                    LPOLEINPLACEFRAME p_inPlaceFrame;
-                    LPOLEINPLACEUIWINDOW p_inPlaceUIWindow;
-                    OLEINPLACEFRAMEINFO oleFrameInfo;
-                    RECT posRect, clipRect;
-
-                    oleFrameInfo.cb = sizeof(OLEINPLACEFRAMEINFO);
-                    if( SUCCEEDED(p_inPlaceSite->GetWindowContext(&p_inPlaceFrame, &p_inPlaceUIWindow, &posRect, &clipRect, &oleFrameInfo)) )
-                    {
-                        if( p_inPlaceFrame )
-                        {
-                            p_inPlaceFrame->SetActiveObject(NULL, NULL);
-                            p_inPlaceFrame->Release();
-                        }
-                        if( p_inPlaceUIWindow )
-                        {
-                            p_inPlaceUIWindow->SetActiveObject(NULL, NULL);
-                            p_inPlaceUIWindow->Release();
-                        }
-                    }
-                    p_inPlaceSite->OnUIDeactivate(FALSE);
-                    p_inPlaceSite->Release();
-                }
-                p_clientSite->Release();
-            }
-            p_oleObject->Release();
-        }
-        return S_OK;
-    }
-    return E_UNEXPECTED;
-};
-
-STDMETHODIMP VLCOleInPlaceObject::SetObjectRects(LPCRECT lprcPosRect, LPCRECT lprcClipRect)
-{
-    if( _p_instance->isInPlaceActive() )
-    {
-        _p_instance->onPositionChange(lprcPosRect, lprcClipRect);
-        return S_OK;
-    }
-    return E_UNEXPECTED;
-};
-
-STDMETHODIMP VLCOleInPlaceObject::ReactivateAndUndo(void)
-{
-    return INPLACE_E_NOTUNDOABLE;
-};
-
diff --git a/projects/activex/oleinplaceobject.h b/projects/activex/oleinplaceobject.h
deleted file mode 100644 (file)
index 83fc7d8..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-/*****************************************************************************
- * oleinplaceobject.h: ActiveX control for VLC
- *****************************************************************************
- * Copyright (C) 2005 the VideoLAN team
- *
- * Authors: Damien Fouilleul <Damien.Fouilleul@laposte.net>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#ifndef __OLEINPLACEOBJECT_H__
-#define __OLEINPLACEOBJECT_H__
-
-class VLCOleInPlaceObject : public IOleInPlaceObject
-{
-
-public:
-
-    VLCOleInPlaceObject(VLCPlugin *p_instance) : _p_instance(p_instance) {};
-    virtual ~VLCOleInPlaceObject() {};
-
-    // IUnknown methods
-    STDMETHODIMP QueryInterface(REFIID riid, void **ppv)
-    {
-        if( NULL == ppv )
-            return E_POINTER;
-        if( (IID_IUnknown == riid)
-         || (IID_IOleWindow == riid)
-         || (IID_IOleInPlaceObject == riid) )
-        {
-            AddRef();
-            *ppv = reinterpret_cast<LPVOID>(this);
-            return NOERROR;
-        }
-        return _p_instance->pUnkOuter->QueryInterface(riid, ppv);
-    };
-
-    STDMETHODIMP_(ULONG) AddRef(void) { return _p_instance->pUnkOuter->AddRef(); };
-    STDMETHODIMP_(ULONG) Release(void) { return _p_instance->pUnkOuter->Release(); };
-
-    // IOleWindow methods
-    STDMETHODIMP GetWindow(HWND *);
-    STDMETHODIMP ContextSensitiveHelp(BOOL);
-
-    // IOleInPlaceObject methods
-    STDMETHODIMP InPlaceDeactivate(void);
-    STDMETHODIMP UIDeactivate(void);
-    STDMETHODIMP SetObjectRects(LPCRECT, LPCRECT);
-    STDMETHODIMP ReactivateAndUndo(void);
-
-private:
-
-    VLCPlugin *_p_instance;
-};
-
-#endif
diff --git a/projects/activex/oleobject.cpp b/projects/activex/oleobject.cpp
deleted file mode 100644 (file)
index 3c71b03..0000000
+++ /dev/null
@@ -1,401 +0,0 @@
-/*****************************************************************************
- * oleobject.cpp: ActiveX control for VLC
- *****************************************************************************
- * Copyright (C) 2005 the VideoLAN team
- *
- * Authors: Damien Fouilleul <Damien.Fouilleul@laposte.net>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#include "plugin.h"
-#include "oleobject.h"
-
-#include "utils.h"
-
-#include <docobj.h>
-
-using namespace std;
-
-VLCOleObject::VLCOleObject(VLCPlugin *p_instance) :
-_p_clientsite(NULL), _p_instance(p_instance)
-{
-    CreateOleAdviseHolder(&_p_advise_holder);
-};
-
-VLCOleObject::~VLCOleObject()
-{
-    SetClientSite(NULL);
-    Close(OLECLOSE_NOSAVE);
-    _p_advise_holder->Release();
-};
-
-STDMETHODIMP VLCOleObject::Advise(IAdviseSink *pAdvSink, DWORD *dwConnection)
-{
-    return _p_advise_holder->Advise(pAdvSink, dwConnection);
-};
-
-STDMETHODIMP VLCOleObject::Close(DWORD dwSaveOption)
-{
-    if( _p_instance->isRunning() )
-    {
-        _p_advise_holder->SendOnClose();
-        return _p_instance->onClose(dwSaveOption);
-    }
-    return S_OK;
-};
-
-STDMETHODIMP VLCOleObject::DoVerb(LONG iVerb, LPMSG lpMsg, LPOLECLIENTSITE pActiveSite,
-                                    LONG lIndex, HWND hwndParent, LPCRECT lprcPosRect)
-{
-    switch( iVerb )
-    {
-        case OLEIVERB_PRIMARY:
-        case OLEIVERB_SHOW:
-        case OLEIVERB_OPEN:
-            // force control to be visible when activating in place
-            _p_instance->setVisible(TRUE);
-            return doInPlaceActivate(lpMsg, pActiveSite, hwndParent, lprcPosRect, TRUE);
-
-        case OLEIVERB_INPLACEACTIVATE:
-            return doInPlaceActivate(lpMsg, pActiveSite, hwndParent, lprcPosRect, FALSE);
-
-        case OLEIVERB_HIDE:
-            _p_instance->setVisible(FALSE);
-            return S_OK;
-
-        case OLEIVERB_UIACTIVATE:
-            // UI activate only if visible
-            if( _p_instance->isVisible() )
-                return doInPlaceActivate(lpMsg, pActiveSite, hwndParent, lprcPosRect, TRUE);
-            return OLEOBJ_S_CANNOT_DOVERB_NOW;
-
-        case OLEIVERB_DISCARDUNDOSTATE:
-            return S_OK;
-
-        default:
-            if( iVerb > 0 ) {
-                _p_instance->setVisible(TRUE);
-                doInPlaceActivate(lpMsg, pActiveSite, hwndParent, lprcPosRect, TRUE);
-                return OLEOBJ_S_INVALIDVERB;
-            }
-            return E_NOTIMPL;
-    }
-};
-
-HRESULT VLCOleObject::doInPlaceActivate(LPMSG lpMsg, LPOLECLIENTSITE pActiveSite, HWND hwndParent, LPCRECT lprcPosRect, BOOL uiActivate)
-{
-    RECT posRect;
-    RECT clipRect;
-    LPCRECT lprcClipRect = lprcPosRect;
-
-    if( pActiveSite )
-    {
-        LPOLEINPLACESITE p_inPlaceSite;
-        IOleInPlaceSiteEx *p_inPlaceSiteEx;
-        LPOLEINPLACEFRAME p_inPlaceFrame;
-        LPOLEINPLACEUIWINDOW p_inPlaceUIWindow;
-
-        if( SUCCEEDED(pActiveSite->QueryInterface(IID_IOleInPlaceSiteEx, reinterpret_cast<void**>(&p_inPlaceSiteEx))) )
-        {
-            p_inPlaceSite = p_inPlaceSiteEx;
-            p_inPlaceSite->AddRef();
-        }
-        else if FAILED(pActiveSite->QueryInterface(IID_IOleInPlaceSite, reinterpret_cast<void**>(&p_inPlaceSite)) )
-        {
-            p_inPlaceSite = p_inPlaceSiteEx = NULL;
-        }
-
-        if( p_inPlaceSite )
-        {
-            OLEINPLACEFRAMEINFO oleFrameInfo;
-
-            oleFrameInfo.cb = sizeof(OLEINPLACEFRAMEINFO);
-            if( SUCCEEDED(p_inPlaceSite->GetWindowContext(&p_inPlaceFrame, &p_inPlaceUIWindow, &posRect, &clipRect, &oleFrameInfo)) )
-            {
-                lprcPosRect = &posRect;
-                lprcClipRect = &clipRect;
-            }
-
-            if( (NULL == hwndParent) && FAILED(p_inPlaceSite->GetWindow(&hwndParent)) )
-            {
-                p_inPlaceSite->Release();
-                if( p_inPlaceSiteEx )
-                    p_inPlaceSiteEx->Release();
-                if( p_inPlaceFrame )
-                    p_inPlaceFrame->Release();
-                if( p_inPlaceUIWindow )
-                    p_inPlaceUIWindow->Release();
-
-                return OLEOBJ_S_INVALIDHWND;
-            }
-        }
-        else if( NULL == hwndParent )
-        {
-            return OLEOBJ_S_INVALIDHWND;
-        }
-        else if( NULL == lprcPosRect )
-        {
-            SetRect(&posRect, 0, 0, 0, 0);
-            lprcPosRect = &posRect;
-            lprcClipRect = &posRect;
-        }
-
-        // check if not already activated
-        if( ! _p_instance->isInPlaceActive() )
-        {
-            if( ((NULL == p_inPlaceSite) || (S_OK == p_inPlaceSite->CanInPlaceActivate()))
-             && SUCCEEDED(_p_instance->onActivateInPlace(lpMsg, hwndParent, lprcPosRect, lprcClipRect)) )
-            {
-                if( p_inPlaceSiteEx )
-                {
-                    BOOL needsRedraw;
-                    p_inPlaceSiteEx->OnInPlaceActivateEx(&needsRedraw, 0);
-                }
-                else if( p_inPlaceSite )
-                    p_inPlaceSite->OnInPlaceActivate();
-            }
-            else
-            {
-                if( p_inPlaceSite )
-                {
-                    p_inPlaceSite->Release();
-                    if( p_inPlaceSiteEx )
-                        p_inPlaceSiteEx->Release();
-                    if( p_inPlaceFrame )
-                        p_inPlaceFrame->Release();
-                    if( p_inPlaceUIWindow )
-                        p_inPlaceUIWindow->Release();
-                }
-                return OLEOBJ_S_CANNOT_DOVERB_NOW;
-            }
-        }
-
-        if( p_inPlaceSite )
-            p_inPlaceSite->OnPosRectChange(lprcPosRect);
-
-        if( uiActivate )
-        {
-            if( (NULL == p_inPlaceSiteEx) || (S_OK == p_inPlaceSiteEx->RequestUIActivate()) )
-            {
-                if( p_inPlaceSite)
-                {
-                    p_inPlaceSite->OnUIActivate();
-
-                    LPOLEINPLACEACTIVEOBJECT p_inPlaceActiveObject;
-                    if( SUCCEEDED(QueryInterface(IID_IOleInPlaceActiveObject, reinterpret_cast<void**>(&p_inPlaceActiveObject))) )
-                    {
-                        if( p_inPlaceFrame )
-                            p_inPlaceFrame->SetActiveObject(p_inPlaceActiveObject, NULL);
-                        if( p_inPlaceUIWindow )
-                            p_inPlaceUIWindow->SetActiveObject(p_inPlaceActiveObject, NULL);
-                        p_inPlaceActiveObject->Release();
-                    }
-                    if( p_inPlaceFrame )
-                        p_inPlaceFrame->RequestBorderSpace(NULL);
-
-                    pActiveSite->ShowObject();
-                }
-                _p_instance->setFocus(TRUE);
-            }
-        }
-
-        if( p_inPlaceSite )
-        {
-            p_inPlaceSite->Release();
-            if( p_inPlaceSiteEx )
-                p_inPlaceSiteEx->Release();
-            if( p_inPlaceFrame )
-                p_inPlaceFrame->Release();
-            if( p_inPlaceUIWindow )
-                p_inPlaceUIWindow->Release();
-        }
-        return S_OK;
-    }
-    return OLEOBJ_S_CANNOT_DOVERB_NOW;
-};
-
-STDMETHODIMP VLCOleObject::EnumAdvise(IEnumSTATDATA **ppEnumAdvise)
-{
-    return _p_advise_holder->EnumAdvise(ppEnumAdvise);
-};
-
-STDMETHODIMP VLCOleObject::EnumVerbs(IEnumOleVerb **ppEnumOleVerb)
-{
-    return OleRegEnumVerbs(_p_instance->getClassID(),
-        ppEnumOleVerb);
-};
-
-STDMETHODIMP VLCOleObject::GetClientSite(LPOLECLIENTSITE *ppClientSite)
-{
-    if( NULL == ppClientSite )
-        return E_POINTER;
-
-    if( NULL != _p_clientsite )
-        _p_clientsite->AddRef();
-
-    *ppClientSite = _p_clientsite;
-    return S_OK;
-};
-
-STDMETHODIMP VLCOleObject::GetClipboardData(DWORD dwReserved, LPDATAOBJECT *ppDataObject)
-{
-    return _p_instance->pUnkOuter->QueryInterface(IID_IDataObject, (void **)ppDataObject);
-};
-
-STDMETHODIMP VLCOleObject::GetExtent(DWORD dwDrawAspect, SIZEL *pSizel)
-{
-    if( NULL == pSizel )
-        return E_POINTER;
-
-    if( dwDrawAspect & DVASPECT_CONTENT )
-    {
-        *pSizel = _p_instance->getExtent();
-        return S_OK;
-    }
-    pSizel->cx= 0L;
-    pSizel->cy= 0L;
-    return E_NOTIMPL;
-};
-
-STDMETHODIMP VLCOleObject::GetMiscStatus(DWORD dwAspect, DWORD *pdwStatus)
-{
-    if( NULL == pdwStatus )
-        return E_POINTER;
-
-    switch( dwAspect )
-    {
-        case DVASPECT_CONTENT:
-            *pdwStatus = OLEMISC_RECOMPOSEONRESIZE
-                | OLEMISC_CANTLINKINSIDE
-                | OLEMISC_INSIDEOUT
-                | OLEMISC_ACTIVATEWHENVISIBLE
-                | OLEMISC_SETCLIENTSITEFIRST;
-            break;
-        default:
-            *pdwStatus = 0;
-    }
-
-    return S_OK;
-};
-
-STDMETHODIMP VLCOleObject::GetMoniker(DWORD dwAssign, DWORD dwWhichMoniker, LPMONIKER *ppMoniker)
-{
-    if( NULL != _p_clientsite )
-        return _p_clientsite->GetMoniker(dwAssign,dwWhichMoniker, ppMoniker);
-
-    return E_UNEXPECTED;
-};
-
-STDMETHODIMP VLCOleObject::GetUserClassID(LPCLSID pClsid)
-{
-    if( NULL == pClsid )
-        return E_POINTER;
-    *pClsid = _p_instance->getClassID();
-    return S_OK;
-};
-
-STDMETHODIMP VLCOleObject::GetUserType(DWORD dwFormOfType, LPOLESTR *pszUserType)
-{
-    return OleRegGetUserType(_p_instance->getClassID(),
-        dwFormOfType, pszUserType);
-};
-
-STDMETHODIMP VLCOleObject::InitFromData(LPDATAOBJECT pDataObject, BOOL fCreation, DWORD dwReserved)
-{
-    return E_NOTIMPL;
-};
-
-STDMETHODIMP VLCOleObject::IsUpToDate(void)
-{
-    return S_OK;
-};
-
-STDMETHODIMP VLCOleObject::SetClientSite(LPOLECLIENTSITE pClientSite)
-{
-    if( NULL != _p_clientsite )
-        _p_clientsite->Release();
-
-    _p_clientsite = pClientSite;
-
-    if( NULL != pClientSite )
-    {
-        pClientSite->AddRef();
-        _p_instance->onAmbientChanged(pClientSite, DISPID_UNKNOWN);
-    }
-    return S_OK;
-};
-
-STDMETHODIMP VLCOleObject::SetColorScheme(LOGPALETTE *pLogpal)
-{
-    return E_NOTIMPL;
-};
-
-STDMETHODIMP VLCOleObject::SetExtent(DWORD dwDrawAspect, SIZEL *pSizel)
-{
-    if( NULL == pSizel )
-        return E_POINTER;
-
-    if( dwDrawAspect & DVASPECT_CONTENT )
-    {
-        _p_instance->setExtent(*pSizel);
-
-        if( _p_instance->isInPlaceActive() )
-        {
-            LPOLEINPLACESITE p_inPlaceSite;
-
-            if( SUCCEEDED(_p_clientsite->QueryInterface(IID_IOleInPlaceSite, (void**)&p_inPlaceSite)) )
-            {
-                HWND hwnd;
-
-                if( SUCCEEDED(p_inPlaceSite->GetWindow(&hwnd)) )
-                {
-                    // use HIMETRIC to pixel transform
-                    RECT posRect = _p_instance->getPosRect();
-                    HDC hDC = GetDC(hwnd);
-                    posRect.right = (pSizel->cx*GetDeviceCaps(hDC, LOGPIXELSX)/2540L)+posRect.left;
-                    posRect.bottom = (pSizel->cy*GetDeviceCaps(hDC, LOGPIXELSY)/2540L)+posRect.top;
-                    DeleteDC(hDC);
-                    p_inPlaceSite->OnPosRectChange(&posRect);
-                }
-                p_inPlaceSite->Release();
-            }
-        }
-        return S_OK;
-    }
-    return E_NOTIMPL;
-};
-
-STDMETHODIMP VLCOleObject::SetHostNames(LPCOLESTR szContainerApp, LPCOLESTR szContainerObj)
-{
-    return S_OK;
-};
-
-STDMETHODIMP VLCOleObject::SetMoniker(DWORD dwWhichMoniker, LPMONIKER pMoniker)
-{
-    return _p_advise_holder->SendOnRename(pMoniker);
-};
-
-STDMETHODIMP VLCOleObject::Unadvise(DWORD dwConnection)
-{
-    return _p_advise_holder->Unadvise(dwConnection);
-};
-
-STDMETHODIMP VLCOleObject::Update(void)
-{
-    return S_OK;
-};
-
diff --git a/projects/activex/oleobject.h b/projects/activex/oleobject.h
deleted file mode 100644 (file)
index 9e54856..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-/*****************************************************************************
- * oleobject.h: ActiveX control for VLC
- *****************************************************************************
- * Copyright (C) 2005 the VideoLAN team
- *
- * Authors: Damien Fouilleul <Damien.Fouilleul@laposte.net>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#ifndef __OLEOBJECT_H__
-#define __OLEOBJECT_H__
-
-class VLCOleObject : public IOleObject
-{
-
-public:
-
-    VLCOleObject(VLCPlugin *p_instance);
-    virtual ~VLCOleObject();
-
-    // IUnknown methods
-    STDMETHODIMP QueryInterface(REFIID riid, void **ppv)
-    {
-        if( NULL == ppv )
-            return E_POINTER;
-        if( (IID_IUnknown == riid)
-         || (IID_IOleObject == riid) )
-        {
-            AddRef();
-            *ppv = reinterpret_cast<LPVOID>(this);
-            return NOERROR;
-        }
-        return _p_instance->pUnkOuter->QueryInterface(riid, ppv);
-    };
-
-    STDMETHODIMP_(ULONG) AddRef(void) { return _p_instance->pUnkOuter->AddRef(); };
-    STDMETHODIMP_(ULONG) Release(void) { return _p_instance->pUnkOuter->Release(); };
-
-    // IOleObject methods
-    STDMETHODIMP Advise(IAdviseSink *, LPDWORD);
-    STDMETHODIMP Close(DWORD);
-    STDMETHODIMP DoVerb(LONG, LPMSG, LPOLECLIENTSITE, LONG, HWND, LPCRECT);
-    STDMETHODIMP EnumAdvise(IEnumSTATDATA **);
-    STDMETHODIMP EnumVerbs(IEnumOleVerb **);
-    STDMETHODIMP GetClientSite(LPOLECLIENTSITE *);
-    STDMETHODIMP GetClipboardData(DWORD, LPDATAOBJECT *);
-    STDMETHODIMP GetExtent(DWORD, SIZEL *);
-    STDMETHODIMP GetMiscStatus(DWORD, DWORD *);
-    STDMETHODIMP GetMoniker(DWORD, DWORD, LPMONIKER *);
-    STDMETHODIMP GetUserClassID(CLSID *);
-    STDMETHODIMP GetUserType(DWORD, LPOLESTR *);
-    STDMETHODIMP InitFromData(IDataObject *, BOOL, DWORD);
-    STDMETHODIMP IsUpToDate(void);
-    STDMETHODIMP SetClientSite(LPOLECLIENTSITE);
-    STDMETHODIMP SetColorScheme(LOGPALETTE *);
-    STDMETHODIMP SetExtent(DWORD, SIZEL *);
-    STDMETHODIMP SetHostNames(LPCOLESTR, LPCOLESTR) ;
-    STDMETHODIMP SetMoniker(DWORD, LPMONIKER);
-    STDMETHODIMP Unadvise(DWORD);
-    STDMETHODIMP Update(void);
-
-private:
-
-    HRESULT doInPlaceActivate(LPMSG lpMsg, LPOLECLIENTSITE pActiveSite, HWND hwndParent, LPCRECT lprcPosRect, BOOL uiActivate);
-
-    IOleAdviseHolder *_p_advise_holder;
-    IOleClientSite *_p_clientsite;
-
-    VLCPlugin *_p_instance;
-};
-
-#endif
-
diff --git a/projects/activex/persistpropbag.cpp b/projects/activex/persistpropbag.cpp
deleted file mode 100644 (file)
index 85a31be..0000000
+++ /dev/null
@@ -1,285 +0,0 @@
-/*****************************************************************************
- * persistpropbag.cpp: ActiveX control for VLC
- *****************************************************************************
- * Copyright (C) 2005 the VideoLAN team
- *
- * Authors: Damien Fouilleul <Damien.Fouilleul@laposte.net>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#include "plugin.h"
-#include "persistpropbag.h"
-
-#include "utils.h"
-#include "oleobject.h"
-
-using namespace std;
-
-STDMETHODIMP VLCPersistPropertyBag::GetClassID(LPCLSID pClsID)
-{
-    if( NULL == pClsID )
-        return E_POINTER;
-
-    *pClsID = _p_instance->getClassID();
-
-    return S_OK;
-};
-
-STDMETHODIMP VLCPersistPropertyBag::InitNew(void)
-{
-    return _p_instance->onInit();
-};
-
-STDMETHODIMP VLCPersistPropertyBag::Load(LPPROPERTYBAG pPropBag, LPERRORLOG pErrorLog)
-{
-    HRESULT hr = _p_instance->onInit();
-    if( FAILED(hr) )
-        return hr;
-
-    if( NULL == pPropBag )
-        return E_INVALIDARG;
-
-    VARIANT value;
-
-    V_VT(&value) = VT_BSTR;
-    if( S_OK == pPropBag->Read(OLESTR("mrl"), &value, pErrorLog) )
-    {
-        _p_instance->setMRL(V_BSTR(&value));
-        VariantClear(&value);
-    }
-    else
-    {
-        /*
-        ** try alternative syntax
-        */
-        V_VT(&value) = VT_BSTR;
-        if( S_OK == pPropBag->Read(OLESTR("src"), &value, pErrorLog) )
-        {
-            _p_instance->setMRL(V_BSTR(&value));
-            VariantClear(&value);
-        }
-        else
-        {
-            V_VT(&value) = VT_BSTR;
-            if( S_OK == pPropBag->Read(OLESTR("filename"), &value, pErrorLog) )
-            {
-                _p_instance->setMRL(V_BSTR(&value));
-                VariantClear(&value);
-            }
-        }
-    }
-
-    V_VT(&value) = VT_BOOL;
-    if( S_OK == pPropBag->Read(OLESTR("autoplay"), &value, pErrorLog) )
-    {
-        _p_instance->setAutoPlay(V_BOOL(&value) != VARIANT_FALSE);
-        VariantClear(&value);
-    }
-    else
-    {
-        /*
-        ** try alternative syntax
-        */
-        V_VT(&value) = VT_BOOL;
-        if( S_OK == pPropBag->Read(OLESTR("autostart"), &value, pErrorLog) )
-        {
-            _p_instance->setAutoPlay(V_BOOL(&value) != VARIANT_FALSE);
-            VariantClear(&value);
-        }
-    }
-
-    V_VT(&value) = VT_BOOL;
-    if( S_OK == pPropBag->Read(OLESTR("toolbar"), &value, pErrorLog) )
-    {
-        _p_instance->setShowToolbar(V_BOOL(&value) != VARIANT_FALSE);
-        VariantClear(&value);
-    }
-
-    SIZEL size = _p_instance->getExtent();
-    V_VT(&value) = VT_I4;
-    if( S_OK == pPropBag->Read(OLESTR("extentwidth"), &value, pErrorLog) )
-    {
-         size.cx = V_I4(&value);
-        VariantClear(&value);
-    }
-    V_VT(&value) = VT_I4;
-    if( S_OK == pPropBag->Read(OLESTR("extentheight"), &value, pErrorLog) )
-    {
-         size.cy = V_I4(&value);
-        VariantClear(&value);
-    }
-    _p_instance->setExtent(size);
-
-    V_VT(&value) = VT_BOOL;
-    if( S_OK == pPropBag->Read(OLESTR("autoloop"), &value, pErrorLog) )
-    {
-        _p_instance->setAutoLoop(V_BOOL(&value) != VARIANT_FALSE);
-        VariantClear(&value);
-    }
-    else
-    {
-        /*
-        ** try alternative syntax
-        */
-        V_VT(&value) = VT_BOOL;
-        if( S_OK == pPropBag->Read(OLESTR("loop"), &value, pErrorLog) )
-        {
-            _p_instance->setAutoLoop(V_BOOL(&value) != VARIANT_FALSE);
-            VariantClear(&value);
-        }
-    }
-
-    V_VT(&value) = VT_BOOL;
-    if( S_OK == pPropBag->Read(OLESTR("mute"), &value, pErrorLog) )
-    {
-        _p_instance->setMute(V_BOOL(&value) != VARIANT_FALSE);
-        VariantClear(&value);
-    }
-
-    V_VT(&value) = VT_BOOL;
-    if( S_OK == pPropBag->Read(OLESTR("visible"), &value, pErrorLog) )
-    {
-        _p_instance->setVisible(V_BOOL(&value) != VARIANT_FALSE);
-        VariantClear(&value);
-    }
-    else
-    {
-        /*
-        ** try alternative syntax
-        */
-        V_VT(&value) = VT_BOOL;
-        if( S_OK == pPropBag->Read(OLESTR("showdisplay"), &value, pErrorLog) )
-        {
-            _p_instance->setVisible(V_BOOL(&value) != VARIANT_FALSE);
-            VariantClear(&value);
-        }
-    }
-
-    V_VT(&value) = VT_I4;
-    if( S_OK == pPropBag->Read(OLESTR("volume"), &value, pErrorLog) )
-    {
-        _p_instance->setVolume(V_I4(&value));
-        VariantClear(&value);
-    }
-
-    V_VT(&value) = VT_I4;
-    if( S_OK == pPropBag->Read(OLESTR("starttime"), &value, pErrorLog) )
-    {
-        _p_instance->setStartTime(V_I4(&value));
-        VariantClear(&value);
-    }
-
-    V_VT(&value) = VT_BSTR;
-    if( S_OK == pPropBag->Read(OLESTR("baseurl"), &value, pErrorLog) )
-    {
-        _p_instance->setBaseURL(V_BSTR(&value));
-        VariantClear(&value);
-    }
-
-    V_VT(&value) = VT_I4;
-    if( S_OK == pPropBag->Read(OLESTR("backcolor"), &value, pErrorLog) )
-    {
-        _p_instance->setBackColor(V_I4(&value));
-        VariantClear(&value);
-    }
-    else
-    {
-        /*
-        ** try alternative syntax
-        */
-        V_VT(&value) = VT_BSTR;
-        if( S_OK == pPropBag->Read(OLESTR("bgcolor"), &value, pErrorLog) )
-        {
-            long backcolor;
-            if( swscanf(V_BSTR(&value), L"#%lX", &backcolor) )
-            {
-                _p_instance->setBackColor(backcolor);
-            }
-            VariantClear(&value);
-        }
-    }
-
-    return _p_instance->onLoad();
-};
-
-STDMETHODIMP VLCPersistPropertyBag::Save(LPPROPERTYBAG pPropBag, BOOL fClearDirty, BOOL fSaveAllProperties)
-{
-    if( NULL == pPropBag )
-        return E_INVALIDARG;
-
-    VARIANT value;
-
-    VariantInit(&value);
-
-    V_VT(&value) = VT_BOOL;
-    V_BOOL(&value) = _p_instance->getAutoLoop()? VARIANT_TRUE : VARIANT_FALSE;
-    pPropBag->Write(OLESTR("AutoLoop"), &value);
-    VariantClear(&value);
-
-    V_VT(&value) = VT_BOOL;
-    V_BOOL(&value) = _p_instance->getAutoPlay()? VARIANT_TRUE : VARIANT_FALSE;
-    pPropBag->Write(OLESTR("AutoPlay"), &value);
-    VariantClear(&value);
-
-    V_VT(&value) = VT_BOOL;
-    V_BOOL(&value) = _p_instance->getShowToolbar()? VARIANT_TRUE : VARIANT_FALSE;
-    pPropBag->Write(OLESTR("Toolbar"), &value);
-    VariantClear(&value);
-
-    SIZEL size = _p_instance->getExtent();
-    V_VT(&value) = VT_I4;
-    V_I4(&value) = size.cx;
-    pPropBag->Write(OLESTR("ExtentWidth"), &value);
-    V_I4(&value) = size.cy;
-    pPropBag->Write(OLESTR("ExtentHeight"), &value);
-
-    V_VT(&value) = VT_BSTR;
-    V_BSTR(&value) = SysAllocStringLen(_p_instance->getMRL(),
-                            SysStringLen(_p_instance->getMRL()));
-    pPropBag->Write(OLESTR("MRL"), &value);
-    VariantClear(&value);
-
-    V_VT(&value) = VT_BOOL;
-    V_BOOL(&value) = _p_instance->getVisible()? VARIANT_TRUE : VARIANT_FALSE;
-    pPropBag->Write(OLESTR("Visible"), &value);
-    VariantClear(&value);
-
-    V_VT(&value) = VT_I4;
-    V_I4(&value) = _p_instance->getVolume();
-    pPropBag->Write(OLESTR("Volume"), &value);
-    VariantClear(&value);
-
-    V_VT(&value) = VT_I4;
-    V_I4(&value) = _p_instance->getStartTime();
-    pPropBag->Write(OLESTR("StartTime"), &value);
-    VariantClear(&value);
-
-    V_VT(&value) = VT_BSTR;
-    V_BSTR(&value) = SysAllocStringLen(_p_instance->getBaseURL(),
-                            SysStringLen(_p_instance->getBaseURL()));
-    pPropBag->Write(OLESTR("BaseURL"), &value);
-    VariantClear(&value);
-
-    V_VT(&value) = VT_I4;
-    V_I4(&value) = _p_instance->getBackColor();
-    pPropBag->Write(OLESTR("BackColor"), &value);
-    VariantClear(&value);
-
-    if( fClearDirty )
-        _p_instance->setDirty(FALSE);
-
-    return S_OK;
-};
diff --git a/projects/activex/persistpropbag.h b/projects/activex/persistpropbag.h
deleted file mode 100644 (file)
index 4a4878d..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-/*****************************************************************************
- * persistpropbag.h: ActiveX control for VLC
- *****************************************************************************
- * Copyright (C) 2005 the VideoLAN team
- *
- * Authors: Damien Fouilleul <Damien.Fouilleul@laposte.net>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#ifndef __PERSISTPROPBAG_H__
-#define __PERSISTPROPBAG_H__
-
-#include <stdio.h>
-#include <ocidl.h>
-
-class VLCPersistPropertyBag : public IPersistPropertyBag
-{
-
-public:
-
-    VLCPersistPropertyBag(VLCPlugin *p_instance) : _p_instance(p_instance) {};
-    virtual ~VLCPersistPropertyBag() {};
-
-    // IUnknown methods
-    STDMETHODIMP QueryInterface(REFIID riid, void **ppv)
-    {
-        if( NULL == ppv )
-            return E_POINTER;
-        if( (IID_IUnknown == riid)
-         || (IID_IPersist == riid)
-         || (IID_IPersistPropertyBag == riid) )
-        {
-            AddRef();
-            *ppv = reinterpret_cast<LPVOID>(this);
-            return NOERROR;
-        }
-        return _p_instance->pUnkOuter->QueryInterface(riid, ppv);
-    };
-
-    STDMETHODIMP_(ULONG) AddRef(void) { return _p_instance->pUnkOuter->AddRef(); };
-    STDMETHODIMP_(ULONG) Release(void) { return _p_instance->pUnkOuter->Release(); };
-
-    // IPersist methods
-    STDMETHODIMP GetClassID(LPCLSID);
-
-    // IPersistPropertyBag methods
-    STDMETHODIMP InitNew(void);
-    STDMETHODIMP Load(LPPROPERTYBAG, LPERRORLOG);
-    STDMETHODIMP Save(LPPROPERTYBAG, BOOL, BOOL);
-
-private:
-
-    VLCPlugin *_p_instance;
-};
-
-#endif
-
diff --git a/projects/activex/persiststorage.cpp b/projects/activex/persiststorage.cpp
deleted file mode 100644 (file)
index 5bac301..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-/*****************************************************************************
- * persiststorage.cpp: ActiveX control for VLC
- *****************************************************************************
- * Copyright (C) 2005 the VideoLAN team
- *
- * Authors: Damien Fouilleul <Damien.Fouilleul@laposte.net>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#include "plugin.h"
-#include "persiststorage.h"
-
-using namespace std;
-
-STDMETHODIMP VLCPersistStorage::GetClassID(LPCLSID pClsID)
-{
-    if( NULL == pClsID )
-        return E_POINTER;
-
-    *pClsID = _p_instance->getClassID();
-
-    return S_OK;
-};
-
-STDMETHODIMP VLCPersistStorage::IsDirty(void)
-{
-    return _p_instance->isDirty() ? S_OK : S_FALSE;
-};
-
-STDMETHODIMP VLCPersistStorage::InitNew(LPSTORAGE pStg)
-{
-    return _p_instance->onInit();
-};
-
-STDMETHODIMP VLCPersistStorage::Load(LPSTORAGE pStg)
-{
-    if( NULL == pStg )
-        return E_INVALIDARG;
-
-    LPSTREAM pStm = NULL;
-    HRESULT result = pStg->OpenStream(L"VideoLAN ActiveX Plugin Data", NULL,
-                        STGM_READ|STGM_SHARE_EXCLUSIVE, 0, &pStm);
-
-    if( FAILED(result) )
-        return result;
-
-    LPPERSISTSTREAMINIT pPersistStreamInit;
-    if( SUCCEEDED(QueryInterface(IID_IPersistStreamInit, (void **)&pPersistStreamInit)) )
-    {
-        result = pPersistStreamInit->Load(pStm);
-        pPersistStreamInit->Release();
-    }
-
-    pStm->Release();
-
-    return result;
-};
-
-STDMETHODIMP VLCPersistStorage::Save(LPSTORAGE pStg, BOOL fSameAsLoad)
-{
-    if( NULL == pStg )
-        return E_INVALIDARG;
-
-    if( fSameAsLoad && (S_FALSE == IsDirty()) )
-        return S_OK;
-
-    LPSTREAM pStm = NULL;
-    HRESULT result = pStg->CreateStream(L"VideoLAN ActiveX Plugin Data",
-                        STGM_CREATE|STGM_READWRITE|STGM_SHARE_EXCLUSIVE, 0, 0, &pStm);
-
-    if( FAILED(result) )
-        return result;
-
-    LPPERSISTSTREAMINIT pPersistStreamInit;
-    if( SUCCEEDED(QueryInterface(IID_IPersistStreamInit, (void **)&pPersistStreamInit)) )
-    {
-        result = pPersistStreamInit->Save(pStm, fSameAsLoad);
-        pPersistStreamInit->Release();
-    }
-
-    pStm->Release();
-
-    return result;
-};
-
-STDMETHODIMP VLCPersistStorage::SaveCompleted(IStorage *pStg)
-{
-    return S_OK;
-};
-
-STDMETHODIMP VLCPersistStorage::HandsOffStorage(void)
-{
-    return S_OK;
-};
-
diff --git a/projects/activex/persiststorage.h b/projects/activex/persiststorage.h
deleted file mode 100644 (file)
index 1980778..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-/*****************************************************************************
- * persiststorage.h: ActiveX control for VLC
- *****************************************************************************
- * Copyright (C) 2005 the VideoLAN team
- *
- * Authors: Damien Fouilleul <Damien.Fouilleul@laposte.net>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#ifndef __PERSISTSTORAGE_H__
-#define __PERSISTSTORAGE_H__
-
-#include <ocidl.h>
-
-class VLCPersistStorage : public IPersistStorage
-{
-
-public:
-
-    VLCPersistStorage(VLCPlugin *p_instance) : _p_instance(p_instance) {};
-    virtual ~VLCPersistStorage() {};
-
-    // IUnknown methods
-    STDMETHODIMP QueryInterface(REFIID riid, void **ppv)
-    {
-        if( NULL == ppv )
-            return E_POINTER;
-        if( (IID_IUnknown == riid)
-         || (IID_IPersist == riid)
-         || (IID_IPersistStorage == riid) )
-        {
-            AddRef();
-            *ppv = reinterpret_cast<LPVOID>(this);
-            return NOERROR;
-        }
-        return _p_instance->pUnkOuter->QueryInterface(riid, ppv);
-    };
-
-    STDMETHODIMP_(ULONG) AddRef(void) { return _p_instance->pUnkOuter->AddRef(); };
-    STDMETHODIMP_(ULONG) Release(void) { return _p_instance->pUnkOuter->Release(); };
-
-    // IPersist methods
-    STDMETHODIMP GetClassID(LPCLSID);
-
-    // IPersistStorage methods
-    STDMETHODIMP IsDirty(void);
-    STDMETHODIMP InitNew(IStorage *);
-    STDMETHODIMP Load(IStorage *);
-    STDMETHODIMP Save(IStorage *, BOOL);
-    STDMETHODIMP SaveCompleted(IStorage *);
-    STDMETHODIMP HandsOffStorage(void);
-
-private:
-
-    VLCPlugin *_p_instance;
-};
-
-#endif
-
diff --git a/projects/activex/persiststreaminit.cpp b/projects/activex/persiststreaminit.cpp
deleted file mode 100644 (file)
index 2ec4adb..0000000
+++ /dev/null
@@ -1,555 +0,0 @@
-/*****************************************************************************
- * persiststreaminit.cpp: ActiveX control for VLC
- *****************************************************************************
- * Copyright (C) 2005 the VideoLAN team
- *
- * Authors: Damien Fouilleul <Damien.Fouilleul@laposte.net>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#include "plugin.h"
-#include "persiststreaminit.h"
-
-#include "utils.h"
-#include <map>
-
-#include <malloc.h>
-#include <wchar.h>
-
-using namespace std;
-
-class AxVLCVariant
-{
-
-public:
-
-    AxVLCVariant(void)
-    {
-        VariantInit(&_v);
-    };
-
-    ~AxVLCVariant(void)
-    {
-        VariantClear(&_v);
-    }
-
-    AxVLCVariant(VARIANTARG &v)
-    {
-        VariantInit(&_v);
-        VariantCopy(&_v, &v);
-    };
-
-    AxVLCVariant(VARIANTARG *v)
-    {
-        VariantInit(&_v);
-        VariantCopy(&_v, v);
-    };
-
-    AxVLCVariant(const AxVLCVariant &vv)
-    {
-        VariantInit(&_v);
-        VariantCopy(&_v, const_cast<VARIANTARG *>(&(vv._v)));
-    };
-
-    AxVLCVariant(int i)
-    {
-        V_VT(&_v) = VT_I4;
-        V_I4(&_v) = i;
-    };
-
-    AxVLCVariant(BSTR bstr)
-    {
-        VARIANT arg;
-        V_VT(&arg) = VT_BSTR;
-        V_BSTR(&arg) = bstr;
-        VariantInit(&_v);
-        VariantCopy(&_v, &arg);
-    };
-
-    inline const VARIANTARG *variantArg(void) const {
-        return &_v;
-    }
-
-    inline void swap(AxVLCVariant &v1, AxVLCVariant &v2)
-    {
-        VARIANTARG tmp = v1._v;
-        v1._v = v2._v;
-        v2._v = tmp;
-    };
-
-private:
-
-    VARIANTARG _v;
-};
-
-class AxVLCWSTR
-{
-
-public:
-
-    AxVLCWSTR(void) : _data(NULL) {};
-
-    virtual ~AxVLCWSTR()
-    {
-        if( NULL != _data )
-        {
-            ULONG refcount = InterlockedDecrement(&(_data->refcount));
-            if( 0 == refcount )
-                CoTaskMemFree(_data);
-        }
-    };
-
-    AxVLCWSTR(LPCWSTR s)
-    {
-        if( NULL != s )
-        {
-            size_t len = wcslen(s);
-            if( len > 0 )
-            {
-                size_t size = len*sizeof(WCHAR);
-                _data = (struct data *)CoTaskMemAlloc(sizeof(struct data)+size);
-                if( NULL != _data )
-                {
-                    _data->len = len;
-                    _data->refcount = 1;
-                    memcpy(_data->wstr, s, size);
-                    _data->wstr[len]=L'\0';
-                    return;
-                }
-            }
-        }
-        _data = NULL;
-    };
-
-    AxVLCWSTR(const AxVLCWSTR &s)
-    {
-        _data = s._data;
-        if( NULL != _data )
-            InterlockedIncrement(&(_data->refcount));
-    };
-
-    inline bool operator<(const AxVLCWSTR &s) const
-    {
-        return compareNoCase(s.wstr()) < 0;
-    };
-
-    inline bool operator<(LPCWSTR s) const
-    {
-        return compareNoCase(s) < 0;
-    };
-
-    inline bool operator==(const AxVLCWSTR &s) const
-    {
-        return size() == s.size() ?
-                    (compareNoCase(s.wstr()) == 0) : false;
-    };
-
-    inline bool operator==(LPCWSTR s) const
-    {
-        return compareNoCase(s) == 0;
-    };
-
-    LPCWSTR wstr(void) const
-    {
-        return (NULL != _data) ? _data->wstr : NULL;
-    };
-
-    size_t size(void) const
-    {
-        return (NULL != _data) ? _data->len : 0;
-    };
-
-private:
-
-    inline int compareNoCase(LPCWSTR s) const
-    {
-        if( NULL == _data )
-        {
-            return (NULL == s) ? 0 : -1;
-        }
-        if( NULL == s )
-            return 1;
-
-        return _wcsicmp(_data->wstr, s);
-    };
-
-    struct data {
-        size_t  len;
-        LONG    refcount;
-        wchar_t wstr[1];
-    } *_data;
-};
-
-typedef pair<class AxVLCWSTR, class AxVLCVariant> AxVLCPropertyPair;
-typedef map<class AxVLCWSTR, class AxVLCVariant> AxVLCPropertyMap;
-
-///////////////////////////
-
-class VLCPropertyBag : public IPropertyBag
-{
-
-public:
-
-    VLCPropertyBag(void) : _i_ref(1) {};
-    virtual ~VLCPropertyBag() {};
-
-    // IUnknown methods
-    STDMETHODIMP QueryInterface(REFIID riid, void **ppv)
-    {
-        if( NULL == ppv )
-            return E_POINTER;
-        if( (IID_IUnknown == riid)
-         || (IID_IPropertyBag == riid) )
-        {
-            AddRef();
-            *ppv = reinterpret_cast<LPVOID>(this);
-            return NOERROR;
-        }
-        // standalone object
-        return E_NOINTERFACE;
-    };
-
-    STDMETHODIMP_(ULONG) AddRef(void)
-        { return InterlockedIncrement(&_i_ref); };
-
-    STDMETHODIMP_(ULONG) Release(void)
-    {
-        ULONG refcount = InterlockedDecrement(&_i_ref);
-        if( 0 == refcount )
-        {
-            delete this;
-            return 0;
-        }
-        return refcount;
-    };
-
-    // IPropertyBag methods
-
-    STDMETHODIMP Read(LPCOLESTR pszPropName, VARIANT *pVar, IErrorLog *pErrorLog)
-    {
-        if( (NULL == pszPropName) || (NULL == pVar) )
-            return E_POINTER;
-
-        AxVLCPropertyMap::const_iterator notfound = _pm.end();
-        AxVLCPropertyMap::const_iterator iter = _pm.find(pszPropName);
-        if( notfound != iter )
-        {
-            VARTYPE vtype = V_VT(pVar);
-            VARIANTARG v;
-            VariantInit(&v);
-            VariantCopy(&v, const_cast<VARIANTARG*>((*iter).second.variantArg()));
-            if( (V_VT(&v) != vtype) && FAILED(VariantChangeType(&v, &v, 0, vtype)) )
-            {
-                VariantClear(&v);
-                return E_FAIL;
-            }
-            *pVar = v;
-            return S_OK;
-        }
-        else
-            return E_INVALIDARG;
-    };
-    STDMETHODIMP Write(LPCOLESTR pszPropName, VARIANT *pVar)
-    {
-        if( (NULL == pszPropName) || (NULL == pVar) )
-            return E_POINTER;
-
-        AxVLCPropertyPair val(pszPropName, pVar);
-        pair<AxVLCPropertyMap::iterator, bool> p = _pm.insert(val);
-        if( false == p.second )
-            // replace existing key value
-            (*p.first).second = val.second;
-        return S_OK;
-    };
-
-    // custom methods
-
-    HRESULT Load(LPSTREAM pStm)
-    {
-        if( NULL == pStm )
-            return E_INVALIDARG;
-
-        HRESULT result;
-
-        AxVLCPropertyPair *val;
-        result = ReadProperty(pStm, &val);
-        if( SUCCEEDED(result) )
-        {
-            if( (val->first == L"(Count)") && (VT_I4 == V_VT(val->second.variantArg())) )
-            {
-                size_t count = V_I4(val->second.variantArg());
-                delete val;
-                while( count-- )
-                {
-                    result = ReadProperty(pStm, &val);
-                    if( FAILED(result) )
-                        return result;
-
-                    pair<AxVLCPropertyMap::iterator, bool> p = _pm.insert(*val);
-                    if( false == p.second )
-                        // replace existing key value
-                        (*p.first).second = val->second;
-                    delete val;
-                }
-            }
-        }
-        return result;
-    };
-
-    HRESULT Save(LPSTREAM pStm)
-    {
-        if( NULL == pStm )
-            return E_INVALIDARG;
-
-        HRESULT result;
-
-        AxVLCPropertyPair header(L"(Count)", _pm.size());
-        result = WriteProperty(pStm, header);
-        if( SUCCEEDED(result) )
-        {
-            AxVLCPropertyMap::const_iterator iter = _pm.begin();
-            AxVLCPropertyMap::const_iterator end  = _pm.end();
-
-            while( iter != end )
-            {
-                result = WriteProperty(pStm, *(iter++));
-                if( FAILED(result) )
-                    return result;
-            }
-        }
-        return result;
-    };
-
-    BOOL IsEmpty()
-    {
-        return _pm.size() == 0;
-    }
-
-private:
-
-    HRESULT WriteProperty(LPSTREAM pStm, const AxVLCPropertyPair &prop)
-    {
-        HRESULT result;
-
-        const AxVLCWSTR propName = prop.first;
-
-        ULONG len = propName.size();
-
-        if( 0 == len )
-            return E_INVALIDARG;
-
-        result = pStm->Write(&len, sizeof(len), NULL);
-        if( FAILED(result) )
-            return result;
-
-        result = pStm->Write(propName.wstr(), len*sizeof(WCHAR), NULL);
-        if( FAILED(result) )
-            return result;
-
-        const VARIANTARG *propValue = prop.second.variantArg();
-        VARTYPE vtype = V_VT(propValue);
-        switch( vtype )
-        {
-            case VT_BOOL:
-                result = pStm->Write(&vtype, sizeof(vtype), NULL);
-                if( FAILED(result) )
-                    return result;
-                result = pStm->Write(&V_BOOL(propValue), sizeof(V_BOOL(propValue)), NULL);
-                if( FAILED(result) )
-                    return result;
-                break;
-            case VT_I4:
-                result = pStm->Write(&vtype, sizeof(vtype), NULL);
-                if( FAILED(result) )
-                    return result;
-                result = pStm->Write(&V_I4(propValue), sizeof(V_I4(propValue)), NULL);
-                if( FAILED(result) )
-                    return result;
-                break;
-            case VT_BSTR:
-                result = pStm->Write(&vtype, sizeof(vtype), NULL);
-                if( FAILED(result) )
-                    return result;
-                len = SysStringLen(V_BSTR(propValue));
-                result = pStm->Write(&len, sizeof(len), NULL);
-                if( FAILED(result) )
-                    return result;
-                if( len > 0 )
-                {
-                    result = pStm->Write(V_BSTR(propValue), len*sizeof(OLECHAR), NULL);
-                    if( FAILED(result) )
-                        return result;
-                }
-                break;
-            default:
-                vtype = VT_EMPTY;
-                result = pStm->Write(&vtype, sizeof(vtype), NULL);
-                if( FAILED(result) )
-                    return result;
-        }
-        return result;
-    };
-
-    HRESULT ReadProperty(LPSTREAM pStm, AxVLCPropertyPair **prop)
-    {
-        HRESULT result;
-
-        ULONG len;
-
-        result = pStm->Read(&len, sizeof(len), NULL);
-        if( FAILED(result) )
-            return result;
-
-        if( 0 == len )
-            return E_INVALIDARG;
-
-        WCHAR propName[len + 1];
-
-        result = pStm->Read(propName, len*sizeof(WCHAR), NULL);
-        if( FAILED(result) )
-            return result;
-
-        propName[len] = L'\0';
-
-        VARIANTARG propValue;
-
-        VARTYPE vtype;
-        result = pStm->Read(&vtype, sizeof(vtype), NULL);
-        if( FAILED(result) )
-            return result;
-
-        switch( vtype )
-        {
-            case VT_BOOL:
-                V_VT(&propValue) = vtype;
-                result = pStm->Read(&V_BOOL(&propValue), sizeof(V_BOOL(&propValue)), NULL);
-                if( FAILED(result) )
-                    return result;
-                break;
-            case VT_I4:
-                V_VT(&propValue) = vtype;
-                result = pStm->Read(&V_I4(&propValue), sizeof(V_I4(&propValue)), NULL);
-                if( FAILED(result) )
-                    return result;
-                break;
-            case VT_BSTR:
-                V_VT(&propValue) = vtype;
-                result = pStm->Read(&len, sizeof(len), NULL);
-                if( FAILED(result) )
-                    return result;
-
-                V_BSTR(&propValue) = NULL;
-                if( len > 0 )
-                {
-                    V_BSTR(&propValue) = SysAllocStringLen(NULL, len);
-                    if( NULL == V_BSTR(&propValue) )
-                        return E_OUTOFMEMORY;
-
-                    result = pStm->Read(V_BSTR(&propValue), len*sizeof(OLECHAR), NULL);
-                    if( FAILED(result) )
-                    {
-                        SysFreeString(V_BSTR(&propValue));
-                        return result;
-                    }
-                }
-                break;
-            default:
-                VariantInit(&propValue);
-        }
-
-        *prop = new AxVLCPropertyPair(propName, propValue);
-
-        return S_OK;
-    };
-
-    AxVLCPropertyMap _pm;
-    LONG _i_ref;
-};
-
-///////////////////////////
-
-VLCPersistStreamInit::VLCPersistStreamInit(VLCPlugin *p_instance) : _p_instance(p_instance)
-{
-    _p_props = new VLCPropertyBag();
-};
-
-VLCPersistStreamInit::~VLCPersistStreamInit()
-{
-    _p_props->Release();
-};
-
-STDMETHODIMP VLCPersistStreamInit::GetClassID(LPCLSID pClsID)
-{
-    if( NULL == pClsID )
-        return E_POINTER;
-
-    *pClsID = _p_instance->getClassID();
-
-    return S_OK;
-};
-
-STDMETHODIMP VLCPersistStreamInit::InitNew(void)
-{
-    return _p_instance->onInit();
-};
-
-STDMETHODIMP VLCPersistStreamInit::Load(LPSTREAM pStm)
-{
-    HRESULT result = _p_props->Load(pStm);
-    if( FAILED(result) )
-        return result;
-
-    LPPERSISTPROPERTYBAG pPersistPropBag;
-    if( FAILED(QueryInterface(IID_IPersistPropertyBag, (void**)&pPersistPropBag)) )
-        return E_FAIL;
-
-    result = pPersistPropBag->Load(_p_props, NULL);
-    pPersistPropBag->Release();
-
-    return result;
-};
-
-STDMETHODIMP VLCPersistStreamInit::Save(LPSTREAM pStm, BOOL fClearDirty)
-{
-    if( NULL == pStm )
-        return E_INVALIDARG;
-
-    LPPERSISTPROPERTYBAG pPersistPropBag;
-    if( FAILED(QueryInterface(IID_IPersistPropertyBag, (void**)&pPersistPropBag)) )
-        return E_FAIL;
-
-    HRESULT result = pPersistPropBag->Save(_p_props, fClearDirty, _p_props->IsEmpty());
-    pPersistPropBag->Release();
-    if( FAILED(result) )
-        return result;
-
-    return _p_props->Save(pStm);
-};
-
-STDMETHODIMP VLCPersistStreamInit::IsDirty(void)
-{
-    return _p_instance->isDirty() ? S_OK : S_FALSE;
-};
-
-STDMETHODIMP VLCPersistStreamInit::GetSizeMax(ULARGE_INTEGER *pcbSize)
-{
-    pcbSize->HighPart = 0UL;
-    pcbSize->LowPart  = 16384UL; // just a guess
-
-    return S_OK;
-};
-
diff --git a/projects/activex/persiststreaminit.h b/projects/activex/persiststreaminit.h
deleted file mode 100644 (file)
index 431ed25..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-/*****************************************************************************
- * persiststreaminit.h: ActiveX control for VLC
- *****************************************************************************
- * Copyright (C) 2005 the VideoLAN team
- *
- * Authors: Damien Fouilleul <Damien.Fouilleul@laposte.net>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#ifndef __PERSISTSTREAMINIT_H__
-#define __PERSISTSTREAMINIT_H__
-
-#include <ocidl.h>
-
-class VLCPersistStreamInit : public IPersistStreamInit
-{
-
-public:
-
-    VLCPersistStreamInit(VLCPlugin *p_instance);
-    virtual ~VLCPersistStreamInit();
-
-    // IUnknown methods
-    STDMETHODIMP QueryInterface(REFIID riid, void **ppv)
-    {
-        if( NULL == ppv )
-            return E_POINTER;
-        if( (IID_IUnknown == riid)
-         || (IID_IPersist == riid)
-         || (IID_IPersistStreamInit == riid) )
-        {
-            AddRef();
-            *ppv = reinterpret_cast<LPVOID>(this);
-            return NOERROR;
-        }
-        return _p_instance->pUnkOuter->QueryInterface(riid, ppv);
-    };
-
-    STDMETHODIMP_(ULONG) AddRef(void) { return _p_instance->pUnkOuter->AddRef(); };
-    STDMETHODIMP_(ULONG) Release(void) { return _p_instance->pUnkOuter->Release(); };
-
-    // IPersist methods
-    STDMETHODIMP GetClassID(LPCLSID);
-
-    // IPersistStreamInit methods
-    STDMETHODIMP IsDirty(void);
-    STDMETHODIMP InitNew(void);
-    STDMETHODIMP Load(LPSTREAM);
-    STDMETHODIMP Save(LPSTREAM, BOOL);
-    STDMETHODIMP GetSizeMax(ULARGE_INTEGER *);
-
-private:
-
-    VLCPlugin *_p_instance;
-    class VLCPropertyBag *_p_props;
-};
-
-#endif
diff --git a/projects/activex/plugin.cpp b/projects/activex/plugin.cpp
deleted file mode 100644 (file)
index 52c1965..0000000
+++ /dev/null
@@ -1,1346 +0,0 @@
-/*****************************************************************************
- * plugin.cpp: ActiveX control for VLC
- *****************************************************************************
- * Copyright (C) 2006-2010 the VideoLAN team
- *
- * Authors: Damien Fouilleul <Damien.Fouilleul@laposte.net>
- *          Jean-Paul Saman <jpsaman@videolan.org>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#include "plugin.h"
-
-#include "oleobject.h"
-#include "olecontrol.h"
-#include "oleinplaceobject.h"
-#include "oleinplaceactiveobject.h"
-#include "persistpropbag.h"
-#include "persiststreaminit.h"
-#include "persiststorage.h"
-#include "provideclassinfo.h"
-#include "connectioncontainer.h"
-#include "objectsafety.h"
-#include "vlccontrol.h"
-#include "vlccontrol2.h"
-#include "viewobject.h"
-#include "dataobject.h"
-#include "supporterrorinfo.h"
-
-#include "utils.h"
-
-#include <stdio.h>
-#include <string.h>
-#include <winreg.h>
-#include <winuser.h>
-#include <servprov.h>
-#include <shlwapi.h>
-#include <wininet.h>
-#include <assert.h>
-
-using namespace std;
-
-////////////////////////////////////////////////////////////////////////
-//class factory
-
-static LRESULT CALLBACK VLCInPlaceClassWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {
-    VLCPlugin *p_instance = reinterpret_cast<VLCPlugin *>(GetWindowLongPtr(hWnd, GWLP_USERDATA));
-
-    switch( uMsg )
-    {
-        case WM_ERASEBKGND:
-            return 1L;
-
-        case WM_PAINT:
-            PAINTSTRUCT ps;
-            RECT pr;
-            if( GetUpdateRect(hWnd, &pr, FALSE) )
-            {
-                RECT bounds;
-                GetClientRect(hWnd, &bounds);
-                BeginPaint(hWnd, &ps);
-                p_instance->onPaint(ps.hdc, bounds, pr);
-                EndPaint(hWnd, &ps);
-            }
-            return 0L;
-
-        default:
-            return DefWindowProc(hWnd, uMsg, wParam, lParam);
-    }
-};
-
-VLCPluginClass::VLCPluginClass(LONG *p_class_ref, HINSTANCE hInstance, REFCLSID rclsid) :
-    _p_class_ref(p_class_ref),
-    _hinstance(hInstance),
-    _classid(rclsid),
-    _inplace_picture(NULL)
-{
-    WNDCLASS wClass;
-
-    if( ! GetClassInfo(hInstance, getInPlaceWndClassName(), &wClass) )
-    {
-        wClass.style          = CS_NOCLOSE|CS_DBLCLKS;
-        wClass.lpfnWndProc    = VLCInPlaceClassWndProc;
-        wClass.cbClsExtra     = 0;
-        wClass.cbWndExtra     = 0;
-        wClass.hInstance      = hInstance;
-        wClass.hIcon          = NULL;
-        wClass.hCursor        = LoadCursor(NULL, IDC_ARROW);
-        wClass.hbrBackground  = NULL;
-        wClass.lpszMenuName   = NULL;
-        wClass.lpszClassName  = getInPlaceWndClassName();
-
-        _inplace_wndclass_atom = RegisterClass(&wClass);
-    }
-    else
-    {
-        _inplace_wndclass_atom = 0;
-    }
-
-    HBITMAP hbitmap = (HBITMAP)LoadImage(getHInstance(), MAKEINTRESOURCE(2), IMAGE_BITMAP, 0, 0, LR_DEFAULTCOLOR);
-    if( NULL != hbitmap )
-    {
-        PICTDESC pictDesc;
-
-        pictDesc.cbSizeofstruct = sizeof(PICTDESC);
-        pictDesc.picType        = PICTYPE_BITMAP;
-        pictDesc.bmp.hbitmap    = hbitmap;
-        pictDesc.bmp.hpal       = NULL;
-
-        if( FAILED(OleCreatePictureIndirect(&pictDesc, IID_IPicture, TRUE, reinterpret_cast<LPVOID*>(&_inplace_picture))) )
-            _inplace_picture = NULL;
-    }
-    AddRef();
-};
-
-VLCPluginClass::~VLCPluginClass()
-{
-    if( 0 != _inplace_wndclass_atom )
-        UnregisterClass(MAKEINTATOM(_inplace_wndclass_atom), _hinstance);
-
-    if( NULL != _inplace_picture )
-        _inplace_picture->Release();
-};
-
-STDMETHODIMP VLCPluginClass::QueryInterface(REFIID riid, void **ppv)
-{
-    if( NULL == ppv )
-        return E_INVALIDARG;
-
-    if( (IID_IUnknown == riid)
-     || (IID_IClassFactory == riid) )
-    {
-        AddRef();
-        *ppv = reinterpret_cast<LPVOID>(this);
-
-        return NOERROR;
-    }
-
-    *ppv = NULL;
-
-    return E_NOINTERFACE;
-};
-
-STDMETHODIMP_(ULONG) VLCPluginClass::AddRef(void)
-{
-    return InterlockedIncrement(_p_class_ref);
-};
-
-STDMETHODIMP_(ULONG) VLCPluginClass::Release(void)
-{
-    ULONG refcount = InterlockedDecrement(_p_class_ref);
-    if( 0 == refcount )
-    {
-        delete this;
-        return 0;
-    }
-    return refcount;
-};
-
-STDMETHODIMP VLCPluginClass::CreateInstance(LPUNKNOWN pUnkOuter, REFIID riid, void **ppv)
-{
-    if( NULL == ppv )
-        return E_POINTER;
-
-    *ppv = NULL;
-
-    if( (NULL != pUnkOuter) && (IID_IUnknown != riid) ) {
-        return CLASS_E_NOAGGREGATION;
-    }
-
-    VLCPlugin *plugin = new VLCPlugin(this, pUnkOuter);
-    if( NULL != plugin )
-    {
-        HRESULT hr = plugin->QueryInterface(riid, ppv);
-        // the following will destroy the object if QueryInterface() failed
-        plugin->Release();
-        return hr;
-    }
-    return E_OUTOFMEMORY;
-};
-
-STDMETHODIMP VLCPluginClass::LockServer(BOOL fLock)
-{
-    if( fLock )
-        AddRef();
-    else
-        Release();
-
-    return S_OK;
-};
-
-////////////////////////////////////////////////////////////////////////
-
-VLCPlugin::VLCPlugin(VLCPluginClass *p_class, LPUNKNOWN pUnkOuter) :
-    _inplacewnd(NULL),
-    _p_class(p_class),
-    _i_ref(1UL),
-    _p_libvlc(NULL),
-    _p_mlist(NULL),
-    _p_mplayer(NULL),
-    _i_midx(-1),
-    _i_codepage(CP_ACP),
-    _b_usermode(TRUE)
-{
-    /*
-    ** bump refcount to avoid recursive release from
-    ** following interfaces when releasing this interface
-    */
-    AddRef();
-    p_class->AddRef();
-
-    vlcOleControl = new VLCOleControl(this);
-    vlcOleInPlaceObject = new VLCOleInPlaceObject(this);
-    vlcOleInPlaceActiveObject = new VLCOleInPlaceActiveObject(this);
-    vlcPersistStorage = new VLCPersistStorage(this);
-    vlcPersistStreamInit = new VLCPersistStreamInit(this);
-    vlcPersistPropertyBag = new VLCPersistPropertyBag(this);
-    vlcProvideClassInfo = new VLCProvideClassInfo(this);
-    vlcConnectionPointContainer = new VLCConnectionPointContainer(this);
-    vlcObjectSafety = new VLCObjectSafety(this);
-    vlcControl = new VLCControl(this);
-    vlcControl2 = new VLCControl2(this);
-    vlcViewObject = new VLCViewObject(this);
-    vlcDataObject = new VLCDataObject(this);
-    vlcOleObject = new VLCOleObject(this);
-    vlcSupportErrorInfo = new VLCSupportErrorInfo(this);
-
-    // configure controlling IUnknown interface for implemented interfaces
-    this->pUnkOuter = (NULL != pUnkOuter) ? pUnkOuter : dynamic_cast<LPUNKNOWN>(this);
-
-    // default picure
-    _p_pict = p_class->getInPlacePict();
-
-    // make sure that persistable properties are initialized
-    onInit();
-};
-
-VLCPlugin::~VLCPlugin()
-{
-    delete vlcSupportErrorInfo;
-    delete vlcOleObject;
-    delete vlcDataObject;
-    delete vlcViewObject;
-    delete vlcControl2;
-    delete vlcControl;
-    delete vlcConnectionPointContainer;
-    delete vlcProvideClassInfo;
-    delete vlcPersistPropertyBag;
-    delete vlcPersistStreamInit;
-    delete vlcPersistStorage;
-    delete vlcOleInPlaceActiveObject;
-    delete vlcOleInPlaceObject;
-    delete vlcObjectSafety;
-
-    delete vlcOleControl;
-    if( _p_pict )
-        _p_pict->Release();
-
-    SysFreeString(_bstr_mrl);
-    SysFreeString(_bstr_baseurl);
-
-    if( _p_mplayer )
-    {
-        if( isPlaying() )
-            playlist_stop();
-
-        player_unregister_events();
-        libvlc_media_player_release(_p_mplayer);
-        _p_mplayer=NULL;
-    }
-    if( _p_mlist )   { libvlc_media_list_release(_p_mlist); _p_mlist=NULL; }
-    if( _p_libvlc )  { libvlc_release(_p_libvlc); _p_libvlc=NULL; }
-
-    _p_class->Release();
-    Release();
-};
-
-STDMETHODIMP VLCPlugin::QueryInterface(REFIID riid, void **ppv)
-{
-    if( NULL == ppv )
-        return E_INVALIDARG;
-
-    if( IID_IUnknown == riid )
-        *ppv = reinterpret_cast<LPVOID>(this);
-    else if( IID_IOleObject == riid )
-        *ppv = reinterpret_cast<LPVOID>(vlcOleObject);
-    else if( IID_IOleControl == riid )
-        *ppv = reinterpret_cast<LPVOID>(vlcOleControl);
-    else if( IID_IOleWindow == riid )
-        *ppv = reinterpret_cast<LPVOID>(vlcOleInPlaceObject);
-    else if( IID_IOleInPlaceObject == riid )
-        *ppv = reinterpret_cast<LPVOID>(vlcOleInPlaceObject);
-    else if( IID_IOleInPlaceActiveObject == riid )
-        *ppv = reinterpret_cast<LPVOID>(vlcOleInPlaceActiveObject);
-    else if( IID_IPersist == riid )
-        *ppv = reinterpret_cast<LPVOID>(vlcPersistStreamInit);
-    else if( IID_IPersistStreamInit == riid )
-        *ppv = reinterpret_cast<LPVOID>(vlcPersistStreamInit);
-    else if( IID_IPersistStorage == riid )
-        *ppv = reinterpret_cast<LPVOID>(vlcPersistStorage);
-    else if( IID_IPersistPropertyBag == riid )
-        *ppv = reinterpret_cast<LPVOID>(vlcPersistPropertyBag);
-    else if( IID_IProvideClassInfo == riid )
-        *ppv = reinterpret_cast<LPVOID>(vlcProvideClassInfo);
-    else if( IID_IProvideClassInfo2 == riid )
-        *ppv = reinterpret_cast<LPVOID>(vlcProvideClassInfo);
-    else if( IID_IConnectionPointContainer == riid )
-        *ppv = reinterpret_cast<LPVOID>(vlcConnectionPointContainer);
-    else if( IID_IObjectSafety == riid )
-        *ppv = reinterpret_cast<LPVOID>(vlcObjectSafety);
-    else if( IID_IDispatch == riid )
-        *ppv = (CLSID_VLCPlugin2 == getClassID()) ?
-                reinterpret_cast<LPVOID>(vlcControl2) :
-                reinterpret_cast<LPVOID>(vlcControl);
-    else if( IID_IVLCControl == riid )
-        *ppv = reinterpret_cast<LPVOID>(vlcControl);
-    else if( IID_IVLCControl2 == riid )
-        *ppv = reinterpret_cast<LPVOID>(vlcControl2);
-    else if( IID_IViewObject == riid )
-        *ppv = reinterpret_cast<LPVOID>(vlcViewObject);
-    else if( IID_IViewObject2 == riid )
-        *ppv = reinterpret_cast<LPVOID>(vlcViewObject);
-    else if( IID_IDataObject == riid )
-        *ppv = reinterpret_cast<LPVOID>(vlcDataObject);
-    else if( IID_ISupportErrorInfo == riid )
-        *ppv = reinterpret_cast<LPVOID>(vlcSupportErrorInfo);
-    else
-    {
-        *ppv = NULL;
-        return E_NOINTERFACE;
-    }
-    ((LPUNKNOWN)*ppv)->AddRef();
-    return NOERROR;
-};
-
-STDMETHODIMP_(ULONG) VLCPlugin::AddRef(void)
-{
-    return InterlockedIncrement((LONG *)&_i_ref);
-};
-
-STDMETHODIMP_(ULONG) VLCPlugin::Release(void)
-{
-    if( ! InterlockedDecrement((LONG *)&_i_ref) )
-    {
-        delete this;
-        return 0;
-    }
-    return _i_ref;
-};
-
-//////////////////////////////////////
-
-HRESULT VLCPlugin::onInit(void)
-{
-    if( NULL == _p_libvlc )
-    {
-        // initialize persistable properties
-        _b_autoplay   = TRUE;
-        _b_autoloop   = FALSE;
-        _b_toolbar    = FALSE;
-        _bstr_baseurl = NULL;
-        _bstr_mrl     = NULL;
-        _b_visible    = TRUE;
-        _b_mute       = FALSE;
-        _i_volume     = 50;
-        _i_time       = 0;
-        _i_backcolor  = 0;
-        // set default/preferred size (320x240) pixels in HIMETRIC
-        HDC hDC = CreateDevDC(NULL);
-        _extent.cx = 320;
-        _extent.cy = 240;
-        HimetricFromDP(hDC, (LPPOINT)&_extent, 1);
-        DeleteDC(hDC);
-
-        return S_OK;
-    }
-    return CO_E_ALREADYINITIALIZED;
-};
-
-HRESULT VLCPlugin::onLoad(void)
-{
-    if( SysStringLen(_bstr_baseurl) == 0 )
-    {
-        /*
-        ** try to retreive the base URL using the client site moniker, which for Internet Explorer
-        ** is the URL of the page the plugin is embedded into.
-        */
-        LPOLECLIENTSITE pClientSite;
-        if( SUCCEEDED(vlcOleObject->GetClientSite(&pClientSite)) && (NULL != pClientSite) )
-        {
-            IBindCtx *pBC = 0;
-            if( SUCCEEDED(CreateBindCtx(0, &pBC)) )
-            {
-                LPMONIKER pContMoniker = NULL;
-                if( SUCCEEDED(pClientSite->GetMoniker(OLEGETMONIKER_ONLYIFTHERE,
-                                OLEWHICHMK_CONTAINER, &pContMoniker)) )
-                {
-                    LPOLESTR base_url;
-                    if( SUCCEEDED(pContMoniker->GetDisplayName(pBC, NULL, &base_url)) )
-                    {
-                        /*
-                        ** check that the moniker name is a URL
-                        */
-                        if( UrlIsW(base_url, URLIS_URL) )
-                        {
-                            /* copy base URL */
-                            _bstr_baseurl = SysAllocString(base_url);
-                        }
-                        CoTaskMemFree(base_url);
-                    }
-                }
-            }
-        }
-    }
-    setDirty(FALSE);
-    return S_OK;
-};
-
-void VLCPlugin::initVLC()
-{
-    extern HMODULE DllGetModule();
-
-    /*
-    ** default initialization options
-    */
-    const char *ppsz_argv[32] = { };
-    int   ppsz_argc = 0;
-
-    char p_progpath[MAX_PATH];
-    {
-        TCHAR w_progpath[MAX_PATH];
-        DWORD len = GetModuleFileName(DllGetModule(), w_progpath, MAX_PATH);
-        w_progpath[MAX_PATH-1] = '\0';
-        if( len > 0 )
-        {
-            len = WideCharToMultiByte(CP_UTF8, 0, w_progpath, len, p_progpath,
-                       sizeof(p_progpath)-1, NULL, NULL);
-            if( len > 0 )
-            {
-                p_progpath[len] = '\0';
-                ppsz_argv[0] = p_progpath;
-            }
-        }
-    }
-
-    ppsz_argv[ppsz_argc++] = "-vv";
-
-    HKEY h_key;
-    char p_pluginpath[MAX_PATH];
-    if( RegOpenKeyEx( HKEY_LOCAL_MACHINE, TEXT("Software\\VideoLAN\\VLC"),
-                      0, KEY_READ, &h_key ) == ERROR_SUCCESS )
-    {
-        DWORD i_type, i_data = MAX_PATH;
-        TCHAR w_pluginpath[MAX_PATH];
-        if( RegQueryValueEx( h_key, TEXT("InstallDir"), 0, &i_type,
-                             (LPBYTE)w_pluginpath, &i_data ) == ERROR_SUCCESS )
-        {
-            w_pluginpath[MAX_PATH-1] = '\0';
-            if( i_type == REG_SZ )
-            {
-                if( WideCharToMultiByte(CP_UTF8, 0, w_pluginpath, -1, p_pluginpath,
-                         sizeof(p_pluginpath)-sizeof("\\plugins")+1, NULL, NULL) )
-                {
-                    strcat( p_pluginpath, "\\plugins" );
-                    ppsz_argv[ppsz_argc++] = "--plugin-path";
-                    ppsz_argv[ppsz_argc++] = p_pluginpath;
-                }
-            }
-        }
-        RegCloseKey( h_key );
-    }
-
-    // make sure plugin isn't affected with VLC single instance mode
-    ppsz_argv[ppsz_argc++] = "--no-one-instance";
-
-    /* common settings */
-    ppsz_argv[ppsz_argc++] = "-vv";
-    ppsz_argv[ppsz_argc++] = "--no-stats";
-    ppsz_argv[ppsz_argc++] = "--no-media-library";
-    ppsz_argv[ppsz_argc++] = "--intf=dummy";
-    ppsz_argv[ppsz_argc++] = "--no-video-title-show";
-
-
-    // loop mode is a configuration option only
-    if( _b_autoloop )
-        ppsz_argv[ppsz_argc++] = "--loop";
-
-    _p_libvlc = libvlc_new(ppsz_argc, ppsz_argv);
-    if( !_p_libvlc )
-        return;
-
-    _p_mlist = libvlc_media_list_new(_p_libvlc);
-
-    // initial playlist item
-    if( SysStringLen(_bstr_mrl) > 0 )
-    {
-        char *psz_mrl = NULL;
-
-        if( SysStringLen(_bstr_baseurl) > 0 )
-        {
-            /*
-            ** if the MRL a relative URL, we should end up with an absolute URL
-            */
-            LPWSTR abs_url = CombineURL(_bstr_baseurl, _bstr_mrl);
-            if( NULL != abs_url )
-            {
-                psz_mrl = CStrFromWSTR(CP_UTF8, abs_url, wcslen(abs_url));
-                CoTaskMemFree(abs_url);
-            }
-            else
-            {
-                psz_mrl = CStrFromBSTR(CP_UTF8, _bstr_mrl);
-            }
-        }
-        else
-        {
-            /*
-            ** baseURL is empty, assume MRL is absolute
-            */
-            psz_mrl = CStrFromBSTR(CP_UTF8, _bstr_mrl);
-        }
-        if( NULL != psz_mrl )
-        {
-            const char *options[1];
-            int i_options = 0;
-
-            char timeBuffer[32];
-            if( _i_time )
-            {
-                snprintf(timeBuffer, sizeof(timeBuffer), ":start-time=%d", _i_time);
-                options[i_options++] = timeBuffer;
-            }
-            // add default target to playlist
-            playlist_add_extended_untrusted(psz_mrl, i_options, options);
-            CoTaskMemFree(psz_mrl);
-        }
-    }
-};
-
-void VLCPlugin::setErrorInfo(REFIID riid, const char *description)
-{
-    vlcSupportErrorInfo->setErrorInfo( getClassID() == CLSID_VLCPlugin2 ?
-        OLESTR("VideoLAN.VLCPlugin.2") : OLESTR("VideoLAN.VLCPlugin.1"),
-        riid, description );
-};
-
-HRESULT VLCPlugin::onAmbientChanged(LPUNKNOWN pContainer, DISPID dispID)
-{
-    VARIANT v;
-    switch( dispID )
-    {
-        case DISPID_AMBIENT_BACKCOLOR:
-            VariantInit(&v);
-            V_VT(&v) = VT_I4;
-            if( SUCCEEDED(GetObjectProperty(pContainer, dispID, v)) )
-            {
-                setBackColor(V_I4(&v));
-            }
-            break;
-        case DISPID_AMBIENT_DISPLAYNAME:
-            break;
-        case DISPID_AMBIENT_FONT:
-            break;
-        case DISPID_AMBIENT_FORECOLOR:
-            break;
-        case DISPID_AMBIENT_LOCALEID:
-            break;
-        case DISPID_AMBIENT_MESSAGEREFLECT:
-            break;
-        case DISPID_AMBIENT_SCALEUNITS:
-            break;
-        case DISPID_AMBIENT_TEXTALIGN:
-            break;
-        case DISPID_AMBIENT_USERMODE:
-            VariantInit(&v);
-            V_VT(&v) = VT_BOOL;
-            if( SUCCEEDED(GetObjectProperty(pContainer, dispID, v)) )
-            {
-                setUserMode(V_BOOL(&v) != VARIANT_FALSE);
-            }
-            break;
-        case DISPID_AMBIENT_UIDEAD:
-            break;
-        case DISPID_AMBIENT_SHOWGRABHANDLES:
-            break;
-        case DISPID_AMBIENT_SHOWHATCHING:
-            break;
-        case DISPID_AMBIENT_DISPLAYASDEFAULT:
-            break;
-        case DISPID_AMBIENT_SUPPORTSMNEMONICS:
-            break;
-        case DISPID_AMBIENT_AUTOCLIP:
-            break;
-        case DISPID_AMBIENT_APPEARANCE:
-            break;
-        case DISPID_AMBIENT_CODEPAGE:
-            VariantInit(&v);
-            V_VT(&v) = VT_I4;
-            if( SUCCEEDED(GetObjectProperty(pContainer, dispID, v)) )
-            {
-                setCodePage(V_I4(&v));
-            }
-            break;
-        case DISPID_AMBIENT_PALETTE:
-            break;
-        case DISPID_AMBIENT_CHARSET:
-            break;
-        case DISPID_AMBIENT_RIGHTTOLEFT:
-            break;
-        case DISPID_AMBIENT_TOPTOBOTTOM:
-            break;
-        case DISPID_UNKNOWN:
-            /*
-            ** multiple property change, look up the ones we are interested in
-            */
-            VariantInit(&v);
-            V_VT(&v) = VT_BOOL;
-            if( SUCCEEDED(GetObjectProperty(pContainer, DISPID_AMBIENT_USERMODE, v)) )
-            {
-                setUserMode(V_BOOL(&v) != VARIANT_FALSE);
-            }
-            VariantInit(&v);
-            V_VT(&v) = VT_I4;
-            if( SUCCEEDED(GetObjectProperty(pContainer, DISPID_AMBIENT_CODEPAGE, v)) )
-            {
-                setCodePage(V_I4(&v));
-            }
-            break;
-    }
-    return S_OK;
-};
-
-HRESULT VLCPlugin::onClose(DWORD dwSaveOption)
-{
-    if( isInPlaceActive() )
-    {
-        onInPlaceDeactivate();
-    }
-    if( isRunning() )
-    {
-        libvlc_instance_t* p_libvlc = _p_libvlc;
-
-        _p_libvlc = NULL;
-        vlcDataObject->onClose();
-
-        if( p_libvlc )
-            libvlc_release(p_libvlc);
-    }
-    return S_OK;
-};
-
-BOOL VLCPlugin::isInPlaceActive(void)
-{
-    return (NULL != _inplacewnd);
-};
-
-HRESULT VLCPlugin::onActivateInPlace(LPMSG lpMesg, HWND hwndParent, LPCRECT lprcPosRect, LPCRECT lprcClipRect)
-{
-    RECT clipRect = *lprcClipRect;
-
-    /*
-    ** record keeping of control geometry within container
-    */
-    _posRect = *lprcPosRect;
-
-    /*
-    ** Create a window for in place activated control.
-    ** the window geometry matches the control viewport
-    ** within container so that embedded video is always
-    ** properly displayed.
-    */
-    _inplacewnd = CreateWindow(_p_class->getInPlaceWndClassName(),
-            TEXT("VLC Plugin In-Place Window"),
-            WS_CHILD|WS_CLIPCHILDREN|WS_CLIPSIBLINGS,
-            lprcPosRect->left,
-            lprcPosRect->top,
-            lprcPosRect->right-lprcPosRect->left,
-            lprcPosRect->bottom-lprcPosRect->top,
-            hwndParent,
-            0,
-            _p_class->getHInstance(),
-            NULL
-           );
-
-    if( NULL == _inplacewnd )
-        return E_FAIL;
-
-    SetWindowLongPtr(_inplacewnd, GWLP_USERDATA, reinterpret_cast<LONG_PTR>(this));
-
-    /* change cliprect coordinates system relative to window bounding rect */
-    OffsetRect(&clipRect, -lprcPosRect->left, -lprcPosRect->top);
-
-    HRGN clipRgn = CreateRectRgnIndirect(&clipRect);
-    SetWindowRgn(_inplacewnd, clipRgn, TRUE);
-
-    if( _b_usermode )
-    {
-        /* will run vlc if not done already */
-        libvlc_instance_t* p_libvlc;
-        HRESULT result = getVLC(&p_libvlc);
-        if( FAILED(result) )
-            return result;
-
-        if( _b_autoplay && playlist_select(0) )
-        {
-            libvlc_media_player_play(_p_mplayer);
-            fireOnPlayEvent();
-        }
-    }
-
-    if( isVisible() )
-        ShowWindow(_inplacewnd, SW_SHOW);
-
-    return S_OK;
-};
-
-HRESULT VLCPlugin::onInPlaceDeactivate(void)
-{
-    if( isPlaying() )
-    {
-        playlist_stop();
-        fireOnStopEvent();
-    }
-
-    DestroyWindow(_inplacewnd);
-    _inplacewnd = NULL;
-
-    return S_OK;
-};
-
-void VLCPlugin::setVisible(BOOL fVisible)
-{
-    if( fVisible != _b_visible )
-    {
-        _b_visible = fVisible;
-        if( isInPlaceActive() )
-        {
-            ShowWindow(_inplacewnd, fVisible ? SW_SHOW : SW_HIDE);
-            if( fVisible )
-                InvalidateRect(_inplacewnd, NULL, TRUE);
-        }
-        setDirty(TRUE);
-        firePropChangedEvent(DISPID_Visible);
-    }
-};
-
-void VLCPlugin::setVolume(int volume)
-{
-    if( volume < 0 )
-        volume = 0;
-    else if( volume > 200 )
-        volume = 200;
-
-    if( volume != _i_volume )
-    {
-        _i_volume = volume;
-        if( isRunning() )
-        {
-            libvlc_media_player_t *p_md;
-            HRESULT hr = getMD(&p_md);
-            if( SUCCEEDED(hr) )
-                libvlc_audio_set_volume(p_md, _i_volume);
-        }
-        setDirty(TRUE);
-    }
-};
-
-void VLCPlugin::setBackColor(OLE_COLOR backcolor)
-{
-    if( _i_backcolor != backcolor )
-    {
-        _i_backcolor = backcolor;
-        if( isInPlaceActive() )
-        {
-
-        }
-        setDirty(TRUE);
-    }
-};
-
-void VLCPlugin::setTime(int seconds)
-{
-    if( seconds < 0 )
-        seconds = 0;
-
-    if( seconds != _i_time )
-    {
-        setStartTime(_i_time);
-        if( NULL != _p_mplayer )
-        {
-            libvlc_media_player_set_time(_p_mplayer, _i_time);
-        }
-    }
-};
-
-void VLCPlugin::setFocus(BOOL fFocus)
-{
-    if( fFocus )
-        SetActiveWindow(_inplacewnd);
-};
-
-BOOL VLCPlugin::hasFocus(void)
-{
-    return GetActiveWindow() == _inplacewnd;
-};
-
-void VLCPlugin::onDraw(DVTARGETDEVICE * ptd, HDC hicTargetDev,
-        HDC hdcDraw, LPCRECTL lprcBounds, LPCRECTL lprcWBounds)
-{
-    if( isVisible() )
-    {
-        long width = lprcBounds->right-lprcBounds->left;
-        long height = lprcBounds->bottom-lprcBounds->top;
-
-        RECT bounds = { lprcBounds->left, lprcBounds->top, lprcBounds->right, lprcBounds->bottom };
-
-        if( isUserMode() )
-        {
-            /* VLC is in user mode, just draw background color */
-            COLORREF colorref = RGB(0, 0, 0);
-            OleTranslateColor(_i_backcolor, (HPALETTE)GetStockObject(DEFAULT_PALETTE), &colorref);
-            if( colorref != RGB(0, 0, 0) )
-            {
-                /* custom background */
-                HBRUSH colorbrush = CreateSolidBrush(colorref);
-                FillRect(hdcDraw, &bounds, colorbrush);
-                DeleteObject((HANDLE)colorbrush);
-            }
-            else
-            {
-                /* black background */
-                FillRect(hdcDraw, &bounds, (HBRUSH)GetStockObject(BLACK_BRUSH));
-            }
-        }
-        else
-        {
-            /* VLC is in design mode, draw the VLC logo */
-            FillRect(hdcDraw, &bounds, (HBRUSH)GetStockObject(WHITE_BRUSH));
-
-            LPPICTURE pict = getPicture();
-            if( NULL != pict )
-            {
-                OLE_XSIZE_HIMETRIC picWidth;
-                OLE_YSIZE_HIMETRIC picHeight;
-
-                pict->get_Width(&picWidth);
-                pict->get_Height(&picHeight);
-
-                SIZEL picSize = { picWidth, picHeight };
-
-                if( NULL != hicTargetDev )
-                {
-                    DPFromHimetric(hicTargetDev, (LPPOINT)&picSize, 1);
-                }
-                else if( NULL != (hicTargetDev = CreateDevDC(ptd)) )
-                {
-                    DPFromHimetric(hicTargetDev, (LPPOINT)&picSize, 1);
-                    DeleteDC(hicTargetDev);
-                }
-
-                if( picSize.cx > width-4 )
-                    picSize.cx = width-4;
-                if( picSize.cy > height-4 )
-                    picSize.cy = height-4;
-
-                LONG dstX = lprcBounds->left+(width-picSize.cx)/2;
-                LONG dstY = lprcBounds->top+(height-picSize.cy)/2;
-
-                if( NULL != lprcWBounds )
-                {
-                    RECT wBounds = { lprcWBounds->left, lprcWBounds->top, lprcWBounds->right, lprcWBounds->bottom };
-                    pict->Render(hdcDraw, dstX, dstY, picSize.cx, picSize.cy,
-                            0L, picHeight, picWidth, -picHeight, &wBounds);
-                }
-                else
-                    pict->Render(hdcDraw, dstX, dstY, picSize.cx, picSize.cy,
-                            0L, picHeight, picWidth, -picHeight, NULL);
-
-                pict->Release();
-            }
-
-            SelectObject(hdcDraw, GetStockObject(BLACK_BRUSH));
-
-            MoveToEx(hdcDraw, bounds.left, bounds.top, NULL);
-            LineTo(hdcDraw, bounds.left+width-1, bounds.top);
-            LineTo(hdcDraw, bounds.left+width-1, bounds.top+height-1);
-            LineTo(hdcDraw, bounds.left, bounds.top+height-1);
-            LineTo(hdcDraw, bounds.left, bounds.top);
-        }
-    }
-};
-
-void VLCPlugin::onPaint(HDC hdc, const RECT &bounds, const RECT &clipRect)
-{
-    if( isVisible() )
-    {
-        /* if VLC is in design mode, draw control logo */
-        HDC hdcDraw = CreateCompatibleDC(hdc);
-        if( NULL != hdcDraw )
-        {
-            SIZEL size = getExtent();
-            DPFromHimetric(hdc, (LPPOINT)&size, 1);
-            RECTL posRect = { 0, 0, size.cx, size.cy };
-
-            int width = bounds.right-bounds.left;
-            int height = bounds.bottom-bounds.top;
-
-            HBITMAP hBitmap = CreateCompatibleBitmap(hdc, width, height);
-            if( NULL != hBitmap )
-            {
-                HBITMAP oldBmp = (HBITMAP)SelectObject(hdcDraw, hBitmap);
-
-                if( (size.cx != width) || (size.cy != height) )
-                {
-                    // needs to scale canvas
-                    SetMapMode(hdcDraw, MM_ANISOTROPIC);
-                    SetWindowExtEx(hdcDraw, size.cx, size.cy, NULL);
-                    SetViewportExtEx(hdcDraw, width, height, NULL);
-                }
-
-                onDraw(NULL, hdc, hdcDraw, &posRect, NULL);
-
-                SetMapMode(hdcDraw, MM_TEXT);
-                BitBlt(hdc, bounds.left, bounds.top,
-                        width, height,
-                        hdcDraw, 0, 0,
-                        SRCCOPY);
-
-                SelectObject(hdcDraw, oldBmp);
-                DeleteObject(hBitmap);
-            }
-            DeleteDC(hdcDraw);
-        }
-    }
-};
-
-void VLCPlugin::onPositionChange(LPCRECT lprcPosRect, LPCRECT lprcClipRect)
-{
-    RECT clipRect = *lprcClipRect;
-
-    //RedrawWindow(GetParent(_inplacewnd), &_posRect, NULL, RDW_INVALIDATE|RDW_ERASE|RDW_ALLCHILDREN);
-
-    /*
-    ** record keeping of control geometry within container
-    */
-    _posRect = *lprcPosRect;
-
-    /*
-    ** change in-place window geometry to match clipping region
-    */
-    SetWindowPos(_inplacewnd, NULL,
-            lprcPosRect->left,
-            lprcPosRect->top,
-            lprcPosRect->right-lprcPosRect->left,
-            lprcPosRect->bottom-lprcPosRect->top,
-            SWP_NOACTIVATE|
-            SWP_NOCOPYBITS|
-            SWP_NOZORDER|
-            SWP_NOOWNERZORDER );
-
-    /* change cliprect coordinates system relative to window bounding rect */
-    OffsetRect(&clipRect, -lprcPosRect->left, -lprcPosRect->top);
-    HRGN clipRgn = CreateRectRgnIndirect(&clipRect);
-    SetWindowRgn(_inplacewnd, clipRgn, FALSE);
-
-    //RedrawWindow(_videownd, &posRect, NULL, RDW_INVALIDATE|RDW_ERASE|RDW_ALLCHILDREN);
-};
-
-void VLCPlugin::freezeEvents(BOOL freeze)
-{
-    vlcConnectionPointContainer->freezeEvents(freeze);
-};
-
-void VLCPlugin::firePropChangedEvent(DISPID dispid)
-{
-    vlcConnectionPointContainer->firePropChangedEvent(dispid);
-};
-
-void VLCPlugin::fireOnPlayEvent(void)
-{
-    DISPPARAMS dispparamsNoArgs = {NULL, NULL, 0, 0};
-    vlcConnectionPointContainer->fireEvent(DISPID_PlayEvent, &dispparamsNoArgs);
-};
-
-void VLCPlugin::fireOnPauseEvent(void)
-{
-    DISPPARAMS dispparamsNoArgs = {NULL, NULL, 0, 0};
-    vlcConnectionPointContainer->fireEvent(DISPID_PauseEvent, &dispparamsNoArgs);
-};
-
-void VLCPlugin::fireOnStopEvent(void)
-{
-    DISPPARAMS dispparamsNoArgs = {NULL, NULL, 0, 0};
-    vlcConnectionPointContainer->fireEvent(DISPID_StopEvent, &dispparamsNoArgs);
-};
-
-/*
- * Async events
- */
-void VLCPlugin::fireOnMediaPlayerNothingSpecialEvent()
-{
-    DISPPARAMS dispparamsNoArgs = {NULL, NULL, 0, 0};
-    vlcConnectionPointContainer->fireEvent(DISPID_MediaPlayerNothingSpecialEvent, &dispparamsNoArgs);
-};
-
-void VLCPlugin::fireOnMediaPlayerOpeningEvent()
-{
-    DISPPARAMS dispparamsNoArgs = {NULL, NULL, 0, 0};
-    vlcConnectionPointContainer->fireEvent(DISPID_MediaPlayerOpeningEvent, &dispparamsNoArgs);
-};
-
-void VLCPlugin::fireOnMediaPlayerBufferingEvent(long cache)
-{
-    DISPPARAMS params;
-    params.cArgs = 1;
-    params.rgvarg = (VARIANTARG *) CoTaskMemAlloc(sizeof(VARIANTARG) * params.cArgs) ;
-    memset(params.rgvarg, 0, sizeof(VARIANTARG) * params.cArgs);
-    params.rgvarg[0].vt = VT_I4;
-    params.rgvarg[0].lVal = cache;
-    params.rgdispidNamedArgs = NULL;
-    params.cNamedArgs = 0;
-    vlcConnectionPointContainer->fireEvent(DISPID_MediaPlayerBufferingEvent, &params);
-};
-
-void VLCPlugin::fireOnMediaPlayerPlayingEvent()
-{
-    DISPPARAMS dispparamsNoArgs = {NULL, NULL, 0, 0};
-    vlcConnectionPointContainer->fireEvent(DISPID_MediaPlayerPlayingEvent, &dispparamsNoArgs);
-};
-
-void VLCPlugin::fireOnMediaPlayerPausedEvent()
-{
-    DISPPARAMS dispparamsNoArgs = {NULL, NULL, 0, 0};
-    vlcConnectionPointContainer->fireEvent(DISPID_MediaPlayerPausedEvent, &dispparamsNoArgs);
-};
-
-void VLCPlugin::fireOnMediaPlayerEncounteredErrorEvent()
-{
-    DISPPARAMS dispparamsNoArgs = {NULL, NULL, 0, 0};
-    vlcConnectionPointContainer->fireEvent(DISPID_MediaPlayerEncounteredErrorEvent, &dispparamsNoArgs);
-};
-
-void VLCPlugin::fireOnMediaPlayerEndReachedEvent()
-{
-    DISPPARAMS dispparamsNoArgs = {NULL, NULL, 0, 0};
-    vlcConnectionPointContainer->fireEvent(DISPID_MediaPlayerEndReachedEvent, &dispparamsNoArgs);
-};
-
-void VLCPlugin::fireOnMediaPlayerStoppedEvent()
-{
-    DISPPARAMS dispparamsNoArgs = {NULL, NULL, 0, 0};
-    vlcConnectionPointContainer->fireEvent(DISPID_MediaPlayerStoppedEvent, &dispparamsNoArgs);
-};
-
-void VLCPlugin::fireOnMediaPlayerForwardEvent()
-{
-    DISPPARAMS dispparamsNoArgs = {NULL, NULL, 0, 0};
-    vlcConnectionPointContainer->fireEvent(DISPID_MediaPlayerForwardEvent, &dispparamsNoArgs);
-};
-
-void VLCPlugin::fireOnMediaPlayerBackwardEvent()
-{
-    DISPPARAMS dispparamsNoArgs = {NULL, NULL, 0, 0};
-    vlcConnectionPointContainer->fireEvent(DISPID_MediaPlayerBackwardEvent, &dispparamsNoArgs);
-};
-
-static void handle_input_state_event(const libvlc_event_t* event, void *param)
-{
-    VLCPlugin *plugin = (VLCPlugin*)param;
-    switch( event->type )
-    {
-        case libvlc_MediaPlayerNothingSpecial:
-            plugin->fireOnMediaPlayerNothingSpecialEvent();
-            break;
-        case libvlc_MediaPlayerOpening:
-            plugin->fireOnMediaPlayerOpeningEvent();
-            break;
-        case libvlc_MediaPlayerBuffering:
-            plugin->fireOnMediaPlayerBufferingEvent(event->u.media_player_buffering.new_cache);
-            break;
-        case libvlc_MediaPlayerPlaying:
-            plugin->fireOnMediaPlayerPlayingEvent();
-            break;
-        case libvlc_MediaPlayerPaused:
-            plugin->fireOnMediaPlayerPausedEvent();
-            break;
-        case libvlc_MediaPlayerStopped:
-            plugin->fireOnMediaPlayerStoppedEvent();
-            break;
-        case libvlc_MediaPlayerForward:
-            plugin->fireOnMediaPlayerForwardEvent();
-            break;
-        case libvlc_MediaPlayerBackward:
-            plugin->fireOnMediaPlayerBackwardEvent();
-            break;
-        case libvlc_MediaPlayerEndReached:
-            plugin->fireOnMediaPlayerEndReachedEvent();
-            break;
-        case libvlc_MediaPlayerEncounteredError:
-            plugin->fireOnMediaPlayerEncounteredErrorEvent();
-            break;
-    }
-}
-
-void VLCPlugin::fireOnMediaPlayerTimeChangedEvent(long time)
-{
-    DISPPARAMS params;
-    params.cArgs = 1;
-    params.rgvarg = (VARIANTARG *) CoTaskMemAlloc(sizeof(VARIANTARG) * params.cArgs) ;
-    memset(params.rgvarg, 0, sizeof(VARIANTARG) * params.cArgs);
-    params.rgvarg[0].vt = VT_I4;
-    params.rgvarg[0].lVal = time;
-    params.rgdispidNamedArgs = NULL;
-    params.cNamedArgs = 0;
-    vlcConnectionPointContainer->fireEvent(DISPID_MediaPlayerTimeChangedEvent, &params);
-};
-
-static void handle_time_changed_event(const libvlc_event_t* event, void *param)
-{
-    VLCPlugin *plugin = (VLCPlugin*)param;
-    plugin->fireOnMediaPlayerTimeChangedEvent(event->u.media_player_time_changed.new_time);
-}
-
-void VLCPlugin::fireOnMediaPlayerPositionChangedEvent(long position)
-{
-    DISPPARAMS params;
-    params.cArgs = 1;
-    params.rgvarg = (VARIANTARG *) CoTaskMemAlloc(sizeof(VARIANTARG) * params.cArgs) ;
-    memset(params.rgvarg, 0, sizeof(VARIANTARG) * params.cArgs);
-    params.rgvarg[0].vt = VT_I4;
-    params.rgvarg[0].lVal = position;
-    params.rgdispidNamedArgs = NULL;
-    params.cNamedArgs = 0;
-    vlcConnectionPointContainer->fireEvent(DISPID_MediaPlayerPositionChangedEvent, &params);
-};
-
-static void handle_position_changed_event(const libvlc_event_t* event, void *param)
-{
-    VLCPlugin *plugin = (VLCPlugin*)param;
-    plugin->fireOnMediaPlayerPositionChangedEvent(event->u.media_player_position_changed.new_position);
-}
-
-#define B(val) ((val) ? 0xFFFF : 0x0000)
-void VLCPlugin::fireOnMediaPlayerSeekableChangedEvent(VARIANT_BOOL seekable)
-{
-    DISPPARAMS params;
-    params.cArgs = 1;
-    params.rgvarg = (VARIANTARG *) CoTaskMemAlloc(sizeof(VARIANTARG) * params.cArgs) ;
-    memset(params.rgvarg, 0, sizeof(VARIANTARG) * params.cArgs);
-    params.rgvarg[0].vt = VT_BOOL;
-    params.rgvarg[0].boolVal = seekable;
-    params.rgdispidNamedArgs = NULL;
-    params.cNamedArgs = 0;
-    vlcConnectionPointContainer->fireEvent(DISPID_MediaPlayerSeekableChangedEvent, &params);
-};
-
-static void handle_seekable_changed_event(const libvlc_event_t* event, void *param)
-{
-    VLCPlugin *plugin = (VLCPlugin*)param;
-    plugin->fireOnMediaPlayerSeekableChangedEvent(B(event->u.media_player_seekable_changed.new_seekable));
-}
-
-void VLCPlugin::fireOnMediaPlayerPausableChangedEvent(VARIANT_BOOL pausable)
-{
-    DISPPARAMS params;
-    params.cArgs = 1;
-    params.rgvarg = (VARIANTARG *) CoTaskMemAlloc(sizeof(VARIANTARG) * params.cArgs) ;
-    memset(params.rgvarg, 0, sizeof(VARIANTARG) * params.cArgs);
-    params.rgvarg[0].vt = VT_BOOL;
-    params.rgvarg[0].boolVal = pausable;
-    params.rgdispidNamedArgs = NULL;
-    params.cNamedArgs = 0;
-    vlcConnectionPointContainer->fireEvent(DISPID_MediaPlayerPausableChangedEvent, &params);
-};
-
-static void handle_pausable_changed_event(const libvlc_event_t* event, void *param)
-{
-    VLCPlugin *plugin = (VLCPlugin*)param;
-    plugin->fireOnMediaPlayerPausableChangedEvent(B(event->u.media_player_pausable_changed.new_pausable));
-}
-#undef B
-
-/* */
-
-bool VLCPlugin::playlist_select( int idx )
-{
-    libvlc_media_t *p_m = NULL;
-
-    assert(_p_mlist);
-
-    libvlc_media_list_lock(_p_mlist);
-
-    int count = libvlc_media_list_count(_p_mlist);
-
-    if( (idx < 0) || (idx >= count) )
-        goto bad_unlock;
-
-    _i_midx = idx;
-
-    p_m = libvlc_media_list_item_at_index(_p_mlist,_i_midx);
-    libvlc_media_list_unlock(_p_mlist);
-    if( !p_m )
-        return false;
-
-    if( _p_mplayer )
-    {
-        if( isPlaying() )
-            playlist_stop();
-        player_unregister_events();
-        libvlc_media_player_release( _p_mplayer );
-        _p_mplayer = NULL;
-    }
-
-    _p_mplayer = libvlc_media_player_new_from_media(p_m);
-    if( _p_mplayer )
-    {
-        // initial volume setting
-        libvlc_audio_set_volume(_p_mplayer, _i_volume);
-        if( _b_mute )
-            libvlc_audio_set_mute(_p_mplayer, TRUE);
-        set_player_window();
-        player_register_events();
-    }
-
-    libvlc_media_release(p_m);
-    return _p_mplayer ? true : false;
-
-bad_unlock:
-    libvlc_media_list_unlock(_p_mlist);
-    return false;
-}
-
-void VLCPlugin::set_player_window()
-{
-    // XXX FIXME no idea if this is correct or not
-    libvlc_media_player_set_hwnd(_p_mplayer,getInPlaceWindow());
-}
-
-void VLCPlugin::player_register_events()
-{
-    libvlc_event_manager_t *eventManager = NULL;
-    assert(_p_mplayer);
-
-    eventManager = libvlc_media_player_event_manager(_p_mplayer);
-    if(eventManager) {
-        libvlc_event_attach(eventManager, libvlc_MediaPlayerNothingSpecial,
-                            handle_input_state_event, this);
-        libvlc_event_attach(eventManager, libvlc_MediaPlayerOpening,
-                            handle_input_state_event, this);
-        libvlc_event_attach(eventManager, libvlc_MediaPlayerBuffering,
-                            handle_input_state_event, this);
-        libvlc_event_attach(eventManager, libvlc_MediaPlayerPlaying,
-                            handle_input_state_event, this);
-        libvlc_event_attach(eventManager, libvlc_MediaPlayerPaused,
-                            handle_input_state_event, this);
-        libvlc_event_attach(eventManager, libvlc_MediaPlayerStopped,
-                            handle_input_state_event, this);
-        libvlc_event_attach(eventManager, libvlc_MediaPlayerForward,
-                            handle_input_state_event, this);
-        libvlc_event_attach(eventManager, libvlc_MediaPlayerBackward,
-                            handle_input_state_event, this);
-        libvlc_event_attach(eventManager, libvlc_MediaPlayerEndReached,
-                            handle_input_state_event, this);
-        libvlc_event_attach(eventManager, libvlc_MediaPlayerEncounteredError,
-                            handle_input_state_event, this);
-
-        libvlc_event_attach(eventManager, libvlc_MediaPlayerTimeChanged,
-                            handle_time_changed_event, this);
-        libvlc_event_attach(eventManager, libvlc_MediaPlayerPositionChanged,
-                            handle_position_changed_event, this);
-        libvlc_event_attach(eventManager, libvlc_MediaPlayerSeekableChanged,
-                            handle_seekable_changed_event, this);
-        libvlc_event_attach(eventManager, libvlc_MediaPlayerPausableChanged,
-                            handle_pausable_changed_event, this);
-    }
-}
-
-void VLCPlugin::player_unregister_events()
-{
-    libvlc_event_manager_t *eventManager = NULL;
-    assert(_p_mplayer);
-
-    eventManager = libvlc_media_player_event_manager(_p_mplayer);
-    if(eventManager) {
-        libvlc_event_detach(eventManager, libvlc_MediaPlayerNothingSpecial,
-                            handle_input_state_event, this);
-        libvlc_event_detach(eventManager, libvlc_MediaPlayerOpening,
-                            handle_input_state_event, this);
-        libvlc_event_detach(eventManager, libvlc_MediaPlayerBuffering,
-                            handle_input_state_event, this);
-        libvlc_event_detach(eventManager, libvlc_MediaPlayerPlaying,
-                            handle_input_state_event, this);
-        libvlc_event_detach(eventManager, libvlc_MediaPlayerPaused,
-                            handle_input_state_event, this);
-        libvlc_event_detach(eventManager, libvlc_MediaPlayerStopped,
-                            handle_input_state_event, this);
-        libvlc_event_detach(eventManager, libvlc_MediaPlayerForward,
-                            handle_input_state_event, this);
-        libvlc_event_detach(eventManager, libvlc_MediaPlayerBackward,
-                            handle_input_state_event, this);
-        libvlc_event_detach(eventManager, libvlc_MediaPlayerEndReached,
-                            handle_input_state_event, this);
-        libvlc_event_detach(eventManager, libvlc_MediaPlayerEncounteredError,
-                            handle_input_state_event, this);
-
-        libvlc_event_detach(eventManager, libvlc_MediaPlayerTimeChanged,
-                            handle_time_changed_event, this);
-        libvlc_event_detach(eventManager, libvlc_MediaPlayerPositionChanged,
-                            handle_position_changed_event, this);
-        libvlc_event_detach(eventManager, libvlc_MediaPlayerSeekableChanged,
-                            handle_seekable_changed_event, this);
-        libvlc_event_detach(eventManager, libvlc_MediaPlayerPausableChanged,
-                            handle_pausable_changed_event, this);
-    }
-}
-
-int  VLCPlugin::playlist_add_extended_untrusted(const char *mrl, int optc, const char **optv)
-{
-    int item = -1;
-    libvlc_media_t *p_m = libvlc_media_new_location(_p_libvlc,mrl);
-    if( !p_m )
-        return -1;
-
-    for( int i = 0; i < optc; ++i )
-        libvlc_media_add_option_flag(p_m, optv[i], libvlc_media_option_unique);
-
-    libvlc_media_list_lock(_p_mlist);
-    if( libvlc_media_list_add_media(_p_mlist,p_m) == 0 )
-        item = libvlc_media_list_count(_p_mlist)-1;
-    libvlc_media_list_unlock(_p_mlist);
-    libvlc_media_release(p_m);
-
-    return item;
-}
diff --git a/projects/activex/plugin.h b/projects/activex/plugin.h
deleted file mode 100644 (file)
index 7db813a..0000000
+++ /dev/null
@@ -1,388 +0,0 @@
-/*****************************************************************************
- * plugin.h: ActiveX control for VLC
- *****************************************************************************
- * Copyright (C) 2005-2010 the VideoLAN team
- *
- * Authors: Damien Fouilleul <Damien.Fouilleul@laposte.net>
- *          Jean-Paul Saman <jpsaman@videolan.org>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#ifndef __PLUGIN_H__
-#define __PLUGIN_H__
-
-#include <ole2.h>
-#include <olectl.h>
-
-#include <vlc/vlc.h>
-
-extern "C" const GUID CLSID_VLCPlugin;
-extern "C" const GUID CLSID_VLCPlugin2;
-extern "C" const GUID LIBID_AXVLC;
-extern "C" const GUID DIID_DVLCEvents;
-
-class VLCPluginClass : public IClassFactory
-{
-
-public:
-
-    VLCPluginClass(LONG *p_class_ref, HINSTANCE hInstance, REFCLSID rclsid);
-
-    /* IUnknown methods */
-    STDMETHODIMP QueryInterface(REFIID riid, void **ppv);
-    STDMETHODIMP_(ULONG) AddRef(void);
-    STDMETHODIMP_(ULONG) Release(void);
-
-    /* IClassFactory methods */
-    STDMETHODIMP CreateInstance(LPUNKNOWN pUnkOuter, REFIID riid, void **ppv);
-    STDMETHODIMP LockServer(BOOL fLock);
-
-    REFCLSID getClassID(void) { return (REFCLSID)_classid; };
-
-    LPCTSTR getInPlaceWndClassName(void) const { return TEXT("VLC Plugin In-Place"); };
-    HINSTANCE getHInstance(void) const { return _hinstance; };
-    LPPICTURE getInPlacePict(void) const
-        { if( NULL != _inplace_picture) _inplace_picture->AddRef(); return _inplace_picture; };
-
-protected:
-
-    virtual ~VLCPluginClass();
-
-private:
-
-    LPLONG      _p_class_ref;
-    HINSTANCE   _hinstance;
-    CLSID       _classid;
-    ATOM        _inplace_wndclass_atom;
-    LPPICTURE   _inplace_picture;
-};
-
-class VLCPlugin : public IUnknown
-{
-
-public:
-
-    VLCPlugin(VLCPluginClass *p_class, LPUNKNOWN pUnkOuter);
-
-    /* IUnknown methods */
-    STDMETHODIMP QueryInterface(REFIID riid, void **ppv);
-    STDMETHODIMP_(ULONG) AddRef(void);
-    STDMETHODIMP_(ULONG) Release(void);
-
-    /* custom methods */
-    HRESULT getTypeLib(LCID lcid, ITypeLib **pTL) { return LoadRegTypeLib(LIBID_AXVLC, 1, 0, lcid, pTL); };
-    REFCLSID getClassID(void) { return _p_class->getClassID(); };
-    REFIID getDispEventID(void) { return (REFIID)DIID_DVLCEvents; };
-
-    /*
-    ** persistant properties
-    */
-    void setMRL(BSTR mrl)
-    {
-        SysFreeString(_bstr_mrl);
-        _bstr_mrl = SysAllocStringLen(mrl, SysStringLen(mrl));
-        setDirty(TRUE);
-    };
-    const BSTR getMRL(void) { return _bstr_mrl; };
-
-    inline void setAutoPlay(BOOL autoplay)
-    {
-        _b_autoplay = autoplay;
-        setDirty(TRUE);
-    };
-    inline BOOL getAutoPlay(void) { return _b_autoplay; };
-
-    inline void setAutoLoop(BOOL autoloop)
-    {
-        _b_autoloop = autoloop;
-        setDirty(TRUE);
-    };
-    inline BOOL getAutoLoop(void) { return _b_autoloop;};
-
-    inline void setShowToolbar(BOOL showtoolbar)
-    {
-        _b_toolbar = showtoolbar;
-        setDirty(TRUE);
-    };
-    inline BOOL getShowToolbar(void) { return _b_toolbar;};
-
-    void setVolume(int volume);
-    int getVolume(void) { return _i_volume; };
-
-    void setBackColor(OLE_COLOR backcolor);
-    OLE_COLOR getBackColor(void) { return _i_backcolor; };
-
-    void setVisible(BOOL fVisible);
-    BOOL getVisible(void) { return _b_visible; };
-    BOOL isVisible(void) { return _b_visible || (! _b_usermode); };
-
-    inline void setStartTime(int time)
-    {
-        _i_time = time;
-        setDirty(TRUE);
-    };
-    inline int getStartTime(void) { return _i_time; };
-
-    void setTime(int time);
-    int  getTime(void) { return _i_time; };
-
-    void setBaseURL(BSTR url)
-    {
-        SysFreeString(_bstr_baseurl);
-        _bstr_baseurl = SysAllocStringLen(url, SysStringLen(url));
-        setDirty(TRUE);
-    };
-    const BSTR getBaseURL(void) { return _bstr_baseurl; };
-
-    // control size in HIMETRIC
-    inline void setExtent(const SIZEL& extent)
-    {
-        _extent = extent;
-        setDirty(TRUE);
-    };
-    const SIZEL& getExtent(void) { return _extent; };
-
-    // transient properties
-    inline void setMute(BOOL mute) { _b_mute = mute; };
-
-    inline void setPicture(LPPICTURE pict)
-    {
-        if( NULL != _p_pict )
-            _p_pict->Release();
-        if( NULL != pict )
-            pict->AddRef();
-        _p_pict = pict;
-    };
-
-    inline LPPICTURE getPicture(void)
-    {
-        if( NULL != _p_pict )
-            _p_pict->AddRef();
-        return _p_pict;
-    };
-
-    BOOL hasFocus(void);
-    void setFocus(BOOL fFocus);
-
-    inline UINT getCodePage(void) { return _i_codepage; };
-    inline void setCodePage(UINT cp)
-    {
-        // accept new codepage only if it works on this system
-        size_t mblen = WideCharToMultiByte(cp,
-                0, L"test", -1, NULL, 0, NULL, NULL);
-        if( mblen > 0 )
-            _i_codepage = cp;
-    };
-
-    inline BOOL isUserMode(void) { return _b_usermode; };
-    inline void setUserMode(BOOL um) { _b_usermode = um; };
-
-    inline BOOL isDirty(void) { return _b_dirty; };
-    inline void setDirty(BOOL dirty) { _b_dirty = dirty; };
-
-    inline BOOL isRunning(void) { return NULL != _p_libvlc; };
-
-    HRESULT getVLC(libvlc_instance_t** pp_libvlc)
-    {
-        if( !isRunning() )
-            initVLC();
-        *pp_libvlc = _p_libvlc;
-        return _p_libvlc ? S_OK : E_FAIL;
-    }
-    HRESULT getMD(libvlc_media_player_t **pp_md)
-    {
-        *pp_md = _p_mplayer;
-        return _p_mplayer ? S_OK : E_FAIL;
-    }
-
-    void setErrorInfo(REFIID riid, const char *description);
-
-    // control geometry within container
-    RECT getPosRect(void) { return _posRect; };
-    inline HWND getInPlaceWindow(void) const { return _inplacewnd; };
-    BOOL isInPlaceActive(void);
-
-    /*
-    ** container events
-    */
-    HRESULT onInit(void);
-    HRESULT onLoad(void);
-    HRESULT onActivateInPlace(LPMSG lpMesg, HWND hwndParent, LPCRECT lprcPosRect, LPCRECT lprcClipRect);
-    HRESULT onInPlaceDeactivate(void);
-    HRESULT onAmbientChanged(LPUNKNOWN pContainer, DISPID dispID);
-    HRESULT onClose(DWORD dwSaveOption);
-    void onPositionChange(LPCRECT lprcPosRect, LPCRECT lprcClipRect);
-    void onDraw(DVTARGETDEVICE * ptd, HDC hicTargetDev,
-            HDC hdcDraw, LPCRECTL lprcBounds, LPCRECTL lprcWBounds);
-    void onPaint(HDC hdc, const RECT &bounds, const RECT &pr);
-
-    /*
-    ** control events
-    */
-    void freezeEvents(BOOL freeze);
-    void firePropChangedEvent(DISPID dispid);
-    void fireOnPlayEvent(void);
-    void fireOnPauseEvent(void);
-    void fireOnStopEvent(void);
-
-    // async events;
-    void fireOnMediaPlayerNothingSpecialEvent();
-    void fireOnMediaPlayerOpeningEvent();
-    void fireOnMediaPlayerBufferingEvent(long cache);
-    void fireOnMediaPlayerPlayingEvent();
-    void fireOnMediaPlayerPausedEvent();
-    void fireOnMediaPlayerForwardEvent();
-    void fireOnMediaPlayerBackwardEvent();
-    void fireOnMediaPlayerEncounteredErrorEvent();
-    void fireOnMediaPlayerEndReachedEvent();
-    void fireOnMediaPlayerStoppedEvent();
-
-    void fireOnMediaPlayerTimeChangedEvent(long time);
-    void fireOnMediaPlayerPositionChangedEvent(long position);
-    void fireOnMediaPlayerSeekableChangedEvent(VARIANT_BOOL seekable);
-    void fireOnMediaPlayerPausableChangedEvent(VARIANT_BOOL pausable);
-
-    // controlling IUnknown interface
-    LPUNKNOWN pUnkOuter;
-
-    /*
-    ** libvlc interface
-    */
-    bool isPlaying()
-    {
-        return _p_mplayer && libvlc_media_player_is_playing(_p_mplayer);
-    }
-    int  playlist_get_current_index() { return _i_midx; }
-    int  playlist_add_extended_untrusted(const char *, int, const char **);
-    void playlist_delete_item(int idx)
-    {
-        if( _p_mlist )
-        {
-            libvlc_media_list_lock(_p_mlist);
-            libvlc_media_list_remove_index(_p_mlist,idx);
-            libvlc_media_list_unlock(_p_mlist);
-        }
-    }
-    void playlist_clear()
-    {
-        if( !_p_libvlc )
-            return;
-        if( _p_mlist )
-            libvlc_media_list_release(_p_mlist);
-        _p_mlist = libvlc_media_list_new(_p_libvlc);
-    }
-    int  playlist_count()
-    {
-         int r = 0;
-         if( !_p_mlist )
-             return 0;
-         libvlc_media_list_lock(_p_mlist);
-         r = libvlc_media_list_count(_p_mlist);
-         libvlc_media_list_unlock(_p_mlist);
-         return r;
-    }
-    void playlist_pause()
-    {
-        if( isPlaying() )
-            libvlc_media_player_pause(_p_mplayer);
-    }
-    void playlist_play()
-    {
-        if( _p_mplayer || playlist_select(0) )
-            libvlc_media_player_play(_p_mplayer);
-    }
-    void playlist_play_item(int idx)
-    {
-        if( playlist_select(idx) )
-            libvlc_media_player_play(_p_mplayer);
-    }
-    void playlist_stop()
-    {
-        if( _p_mplayer )
-            libvlc_media_player_stop(_p_mplayer);
-    }
-    void playlist_next()
-    {
-        if( playlist_select( _i_midx+1 ) )
-            libvlc_media_player_play(_p_mplayer);
-    }
-    void playlist_prev()
-    {
-        if( playlist_select( _i_midx-1 ) )
-            libvlc_media_player_play(_p_mplayer);
-    }
-
-protected:
-
-    virtual ~VLCPlugin();
-
-private:
-    void initVLC();
-    bool playlist_select(int i);
-    void set_player_window();
-    void player_register_events();
-    void player_unregister_events();
-
-    //implemented interfaces
-    class VLCOleObject *vlcOleObject;
-    class VLCOleControl *vlcOleControl;
-    class VLCOleInPlaceObject *vlcOleInPlaceObject;
-    class VLCOleInPlaceActiveObject *vlcOleInPlaceActiveObject;
-    class VLCPersistStreamInit *vlcPersistStreamInit;
-    class VLCPersistStorage *vlcPersistStorage;
-    class VLCPersistPropertyBag *vlcPersistPropertyBag;
-    class VLCProvideClassInfo *vlcProvideClassInfo;
-    class VLCConnectionPointContainer *vlcConnectionPointContainer;
-    class VLCObjectSafety *vlcObjectSafety;
-    class VLCControl *vlcControl;
-    class VLCControl2 *vlcControl2;
-    class VLCViewObject *vlcViewObject;
-    class VLCDataObject *vlcDataObject;
-    class VLCSupportErrorInfo *vlcSupportErrorInfo;
-
-    // in place activated window (Plugin window)
-    HWND _inplacewnd;
-
-    VLCPluginClass* _p_class;
-    ULONG _i_ref;
-
-    libvlc_instance_t     *_p_libvlc;
-    libvlc_media_list_t   *_p_mlist;
-    libvlc_media_player_t *_p_mplayer;
-    int  _i_midx;
-
-    UINT _i_codepage;
-    BOOL _b_usermode;
-    RECT _posRect;
-    LPPICTURE _p_pict;
-
-    // persistable properties
-    BSTR _bstr_baseurl;
-    BSTR _bstr_mrl;
-    BOOL _b_autoplay;
-    BOOL _b_autoloop;
-    BOOL _b_toolbar;
-    BOOL _b_visible;
-    BOOL _b_mute;
-    int  _i_volume;
-    int  _i_time;
-    SIZEL _extent;
-    OLE_COLOR _i_backcolor;
-    // indicates whether properties needs persisting
-    BOOL _b_dirty;
-};
-
-#endif
diff --git a/projects/activex/position.h b/projects/activex/position.h
deleted file mode 100644 (file)
index ec1c7f8..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/*****************************************************************************
- * position.h: Support routines for logo and marquee plugin objects
- *****************************************************************************
- * Copyright (C) 2010 M2X BV
- *
- * Authors: JP Dinger <jpd (at) videolan (dot) org>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-#ifndef POSITION_H
-#define POSITION_H
-
-struct posidx_s { const char *n; size_t i; };
-static const posidx_s posidx[] = {
-    { "center",        0 },
-    { "left",          1 },
-    { "right",         2 },
-    { "top",           4 },
-    { "bottom",        8 },
-    { "top-left",      5 },
-    { "top-right",     6 },
-    { "bottom-left",   9 },
-    { "bottom-right", 10 },
-};
-enum { num_posidx = sizeof(posidx)/sizeof(*posidx) };
-
-static inline const char *position_bynumber( size_t i )
-{
-    for( const posidx_s *h=posidx; h<posidx+num_posidx; ++h )
-        if( h->i == i )
-            return h->n;
-    return "undefined";
-}
-
-static inline bool position_byname( const char *n, size_t &i )
-{
-    for( const posidx_s *h=posidx; h<posidx+num_posidx; ++h )
-        if( !strcasecmp( n, h->n ) )
-            { i=h->i; return true; }
-    return false;
-}
-#endif
diff --git a/projects/activex/provideclassinfo.cpp b/projects/activex/provideclassinfo.cpp
deleted file mode 100644 (file)
index c5b9731..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-/*****************************************************************************
- * provideclassinfo.cpp: ActiveX control for VLC
- *****************************************************************************
- * Copyright (C) 2005 the VideoLAN team
- *
- * Authors: Damien Fouilleul <Damien.Fouilleul@laposte.net>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#include "plugin.h"
-#include "provideclassinfo.h"
-
-using namespace std;
-
-STDMETHODIMP VLCProvideClassInfo::GetClassInfo(ITypeInfo **ppTI)
-{
-    ITypeLib *p_typelib;
-
-    if( NULL == ppTI )
-        return E_POINTER;
-
-    HRESULT hr = _p_instance->getTypeLib(LOCALE_NEUTRAL, &p_typelib);
-    if( SUCCEEDED(hr) )
-    {
-        hr = p_typelib->GetTypeInfoOfGuid(_p_instance->getClassID(), ppTI);
-        if( FAILED(hr) )
-        {
-            *ppTI = NULL;
-        }
-        p_typelib->Release();
-    }
-    return hr;
-};
-
-STDMETHODIMP VLCProvideClassInfo::GetGUID(DWORD dwGuidKind, GUID *pGUID)
-{
-    if( GUIDKIND_DEFAULT_SOURCE_DISP_IID != dwGuidKind )
-        return E_INVALIDARG;
-
-    if( NULL == pGUID )
-        return E_POINTER;
-
-    *pGUID = _p_instance->getDispEventID();
-
-    return S_OK;
-};
diff --git a/projects/activex/provideclassinfo.h b/projects/activex/provideclassinfo.h
deleted file mode 100644 (file)
index 56cd49e..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-/*****************************************************************************
- * provideclassinfo.h: ActiveX control for VLC
- *****************************************************************************
- * Copyright (C) 2005 the VideoLAN team
- *
- * Authors: Damien Fouilleul <Damien.Fouilleul@laposte.net>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#ifndef __PROVIDECLASSINFO_H__
-#define __PROVIDECLASSINFO_H__
-
-#include <ocidl.h>
-
-class VLCProvideClassInfo : public IProvideClassInfo2
-{
-
-public:
-
-    VLCProvideClassInfo(VLCPlugin *p_instance) : _p_instance(p_instance) {};
-    virtual ~VLCProvideClassInfo() {};
-
-    // IUnknown methods
-    STDMETHODIMP QueryInterface(REFIID riid, void **ppv)
-    {
-        if( NULL == ppv )
-            return E_POINTER;
-        if( (IID_IUnknown == riid)
-         || (IID_IProvideClassInfo == riid)
-         || (IID_IProvideClassInfo2 == riid) )
-        {
-            AddRef();
-            *ppv = reinterpret_cast<LPVOID>(this);
-            return NOERROR;
-        }
-        return _p_instance->pUnkOuter->QueryInterface(riid, ppv);
-    };
-
-    STDMETHODIMP_(ULONG) AddRef(void) { return _p_instance->pUnkOuter->AddRef(); };
-    STDMETHODIMP_(ULONG) Release(void) { return _p_instance->pUnkOuter->Release(); };
-
-    // IProvideClassInfo methods
-    STDMETHODIMP GetClassInfo(ITypeInfo **);
-
-    // IProvideClassInfo2 methods
-    STDMETHODIMP GetGUID(DWORD, GUID *);
-
-private:
-
-    VLCPlugin *_p_instance;
-};
-
-#endif
diff --git a/projects/activex/supporterrorinfo.cpp b/projects/activex/supporterrorinfo.cpp
deleted file mode 100644 (file)
index a875207..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-/*****************************************************************************
- * supporterrorinfo.cpp: ActiveX control for VLC
- *****************************************************************************
- * Copyright (C) 2005-2010 the VideoLAN team
- *
- * Authors: Damien Fouilleul <Damien.Fouilleul@laposte.net>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#include "plugin.h"
-#include "supporterrorinfo.h"
-
-#include "utils.h"
-#include "axvlc_idl.h"
-
-using namespace std;
-
-STDMETHODIMP VLCSupportErrorInfo::InterfaceSupportsErrorInfo(REFIID  riid)
-{
-    if( (riid == IID_IVLCAudio)
-     || (riid == IID_IVLCInput)
-     || (riid == IID_IVLCMarquee)
-     || (riid == IID_IVLCLogo)
-     || (riid == IID_IVLCPlaylist)
-     || (riid == IID_IVLCPlaylistItems)
-     || (riid == IID_IVLCSubtitle)
-     || (riid == IID_IVLCVideo)
-     || (riid == IID_IVLCControl2) )
-    {
-        return S_OK;
-    }
-    return S_FALSE;
-};
-
-void VLCSupportErrorInfo::setErrorInfo(LPCOLESTR progid, REFIID riid, const char *description)
-{
-    BSTR bstrDescription = BSTRFromCStr(CP_UTF8, description);
-    if( NULL != bstrDescription )
-    {
-        ICreateErrorInfo* pcerrinfo;
-
-        HRESULT hr = CreateErrorInfo(&pcerrinfo);
-        if( SUCCEEDED(hr) )
-        {
-            IErrorInfo* perrinfo;
-
-            pcerrinfo->SetSource((LPOLESTR)progid);
-            pcerrinfo->SetGUID(riid);
-            pcerrinfo->SetDescription((LPOLESTR)bstrDescription);
-            hr = pcerrinfo->QueryInterface(IID_IErrorInfo, (LPVOID*) &perrinfo);
-            if( SUCCEEDED(hr) )
-            {
-               ::SetErrorInfo(0, perrinfo);
-               perrinfo->Release();
-            }
-            pcerrinfo->Release();
-        }
-        SysFreeString(bstrDescription);
-    }
-};
-
diff --git a/projects/activex/supporterrorinfo.h b/projects/activex/supporterrorinfo.h
deleted file mode 100644 (file)
index 754f3fb..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-/*****************************************************************************
- * supporterrorinfo.h: ActiveX control for VLC
- *****************************************************************************
- * Copyright (C) 2006 the VideoLAN team
- *
- * Authors: Damien Fouilleul <Damien.Fouilleul@laposte.net>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#ifndef __SUPPORTERRORINFO_H__
-#define __SUPPORTERRORINFO_H__
-
-#include <oaidl.h>
-
-class VLCSupportErrorInfo : public ISupportErrorInfo
-{
-
-public:
-
-    VLCSupportErrorInfo(VLCPlugin *p_instance) :
-        _p_instance(p_instance)
-    {};
-    virtual ~VLCSupportErrorInfo()
-    {};
-
-    // IUnknown methods
-    STDMETHODIMP QueryInterface(REFIID riid, void **ppv)
-    {
-        if( NULL == ppv )
-            return E_POINTER;
-        if( (IID_IUnknown == riid)
-         || (IID_ISupportErrorInfo == riid) )
-        {
-            AddRef();
-            *ppv = reinterpret_cast<LPVOID>(this);
-            return NOERROR;
-        }
-        return _p_instance->pUnkOuter->QueryInterface(riid, ppv);
-    };
-
-    STDMETHODIMP_(ULONG) AddRef(void) { return _p_instance->pUnkOuter->AddRef(); };
-    STDMETHODIMP_(ULONG) Release(void) { return _p_instance->pUnkOuter->Release(); };
-
-    // ISupportErrorInfo methods
-    STDMETHODIMP InterfaceSupportsErrorInfo(REFIID  riid);
-
-    // VLCSupportErrorInfo methods
-    void setErrorInfo(LPCOLESTR progid, REFIID riid, const char *description);
-
-private:
-    VLCPlugin *_p_instance;
-};
-
-#endif
-
diff --git a/projects/activex/test.html b/projects/activex/test.html
deleted file mode 100644 (file)
index 7849f6d..0000000
+++ /dev/null
@@ -1,996 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<TITLE>VLC Plugin test page</TITLE>
-<STYLE>
-  .inputTrackerInput {
-        height:20;
-        width:30;
-        font-family : Arial, Helvetica, sans-serif;
-        font-size : 12px;
-  }
-</STYLE>
-
-<SCRIPT type="text/javascript" src="blueshoes-4.5/javascript/lib/LibCrossBrowser.js"></SCRIPT>
-<SCRIPT type="text/javascript" src="blueshoes-4.5/javascript/lib/EventHandler.js"></SCRIPT>
-<SCRIPT type="text/javascript" src="blueshoes-4.5/javascript/core/form/Bs_FormUtil.lib.js"></SCRIPT>
-<SCRIPT type="text/javascript" src="blueshoes-4.5/javascript/components/slider/Bs_Slider.class.js"></SCRIPT>
-
-<SCRIPT language="JavaScript"><!--
-function init()
-{
-    inputTracker = new Bs_Slider();
-    if (inputTracker)
-    {
-        inputTracker.attachOnChange(onInputTrackerChange);
-        inputTracker.attachOnSlideStart(onInputTrackerScrollStart);
-        inputTracker.attachOnSlideEnd(onInputTrackerScrollEnd);
-        inputTracker.width         = 530;
-        inputTracker.height        = 15;
-        inputTracker.minVal        = 0;
-        inputTracker.maxVal        = 1.0;
-        inputTracker.valueDefault  = 0;
-        inputTracker.valueInterval = 1/530;
-        inputTracker.setDisabled(true);
-        inputTracker.imgDir   = 'blueshoes-4.5/javascript/components/slider/img/';
-        inputTracker.setBackgroundImage('aluminumalloyvolcanic/horizontal_background.gif', 'repeat');
-        inputTracker.setArrowIconLeft('aluminumalloyvolcanic/horizontal_backgroundLeft.gif', 2, 19);
-        inputTracker.setArrowIconRight('aluminumalloyvolcanic/horizontal_backgroundRight.gif', 2, 19);
-        inputTracker.setSliderIcon('aluminumalloyvolcanic/horizontal_knob.gif', 15, 19);
-        inputTracker.useInputField = 0;
-        inputTracker.draw('inputTrackerDiv');
-    }
-
-    if( navigator.appName.indexOf("Microsoft Internet")==-1 )
-    {
-        onVLCPluginReady()
-    }
-    else if( document.readyState == 'complete' )
-    {
-        onVLCPluginReady();
-    }
-    else
-    {
-        /* Explorer loads plugins asynchronously */
-        document.onreadystatechange=function()
-        {
-            if( document.readyState == 'complete' )
-            {
-                onVLCPluginReady();
-            }
-        }
-    }
-}
-
-function getVLC(name)
-{
-    if (window.document[name])
-    {
-        return window.document[name];
-    }
-    if (navigator.appName.indexOf("Microsoft Internet")==-1)
-    {
-        if (document.embeds && document.embeds[name])
-            return document.embeds[name];
-    }
-    else // if (navigator.appName.indexOf("Microsoft Internet")!=-1)
-    {
-        return document.getElementById(name);
-    }
-}
-
-function registerVLCEvent(event, handler)
-{
-    var vlc = getVLC("vlc");
-
-    if (vlc) {
-        if (vlc.attachEvent) {
-            // Microsoft
-            vlc.attachEvent (event, handler);
-        } else if (vlc.addEventListener) {
-            // Mozilla: DOM level 2
-            vlc.addEventListener (event, handler, true);
-        } else {
-            // DOM level 0
-            eval("vlc.on" + event + " = handler");
-        }
-    }
-}
-
-function unregisterVLCEvent(event, handler)
-{
-    var vlc = getVLC("vlc");
-
-    if (vlc) {
-        if (vlc.detachEvent) {
-            // Microsoft
-            vlc.detachEvent (event, handler);
-        } else if (vlc.removeEventListener) {
-            // Mozilla: DOM level 2
-            vlc.removeEventListener (event, handler, true);
-        } else {
-            // DOM level 0
-            eval("vlc.on" + event + " = null");
-        }
-    }
-}
-
-// JS VLC API callbacks
-function handleMediaPlayerMediaChanged()
-{
-    document.getElementById("info").innerHTML = "Media Changed";
-}
-
-function handle_MediaPlayerNothingSpecial()
-{
-    document.getElementById("state").innerHTML = "Idle...";
-}
-
-function handle_MediaPlayerOpening()
-{
-    onOpen();
-}
-
-function handle_MediaPlayerBuffering(val)
-{
-    document.getElementById("info").innerHTML = val + "%";
-}
-
-function handle_MediaPlayerPlaying()
-{
-    onPlay();
-}
-
-function handle_MediaPlayerPaused()
-{
-    onPause();
-}
-
-function handle_MediaPlayerStopped()
-{
-    onStop();
-}
-
-function handle_MediaPlayerForward()
-{
-    document.getElementById("state").innerHTML = "Forward...";
-}
-
-function handle_MediaPlayerBackward()
-{
-    document.getElementById("state").innerHTML = "Backward...";
-}
-
-function handle_MediaPlayerEndReached()
-{
-    onEnd();
-}
-
-function handle_MediaPlayerEncounteredError()
-{
-    onError();
-}
-
-function handle_MediaPlayerTimeChanged(time)
-{
-    var vlc = getVLC("vlc");
-    var info = document.getElementById("info");
-    if( vlc )
-    {
-        var mediaLen = vlc.input.length;
-        if( mediaLen > 0 )
-        {
-            // seekable media
-            info.innerHTML = formatTime(time)+"/"+formatTime(mediaLen);
-        }
-    }
-}
-
-function handle_MediaPlayerPositionChanged(val)
-{
-    // set javascript slider to correct position
-}
-
-function handle_MediaPlayerSeekableChanged(val)
-{
-    setSeekable(val);
-}
-
-function handle_MediaPlayerPausableChanged(val)
-{
-    setPauseable(val);
-}
-
-function handle_MediaPlayerTitleChanged(val)
-{
-    //setTitle(val);
-    document.getElementById("info").innerHTML = "Title: " + val;
-}
-
-function handle_MediaPlayerLengthChanged(val)
-{
-    //setMediaLength(val);
-}
-
-// VLC Plugin
-function onVLCPluginReady()
-{
-    registerVLCEvent("MediaPlayerMediaChanged", handleMediaPlayerMediaChanged);
-    registerVLCEvent("MediaPlayerNothingSpecial", handle_MediaPlayerNothingSpecial);
-    registerVLCEvent("MediaPlayerOpening", handle_MediaPlayerOpening);
-    registerVLCEvent("MediaPlayerBuffering", handle_MediaPlayerBuffering);
-    registerVLCEvent("MediaPlayerPlaying", handle_MediaPlayerPlaying);
-    registerVLCEvent("MediaPlayerPaused", handle_MediaPlayerPaused);
-    registerVLCEvent("MediaPlayerStopped", handle_MediaPlayerStopped);
-    registerVLCEvent("MediaPlayerForward", handle_MediaPlayerForward);
-    registerVLCEvent("MediaPlayerBackward", handle_MediaPlayerBackward);
-    registerVLCEvent("MediaPlayerEndReached", handle_MediaPlayerEndReached);
-    registerVLCEvent("MediaPlayerEncounteredError", handle_MediaPlayerEncounteredError);
-    registerVLCEvent("MediaPlayerTimeChanged", handle_MediaPlayerTimeChanged);
-    registerVLCEvent("MediaPlayerPositionChanged", handle_MediaPlayerPositionChanged);
-    registerVLCEvent("MediaPlayerSeekableChanged", handle_MediaPlayerSeekableChanged);
-    registerVLCEvent("MediaPlayerPausableChanged", handle_MediaPlayerPausableChanged);
-    registerVLCEvent("MediaPlayerTitleChanged", handle_MediaPlayerTitleChanged);
-    registerVLCEvent("MediaPlayerLengthChanged", handle_MediaPlayerLengthChanged);
-}
-
-function close()
-{
-    unregisterVLCEvent('MediaPlayerMouseGrab', handleMouseGrab);
-    unregisterVLCEvent('MediaPlayerMouseRelease', handleMouseRelease);
-    unregisterVLCEvent('MediaPlayerMouseClick', handleMouseClick);
-
-    unregisterVLCEvent("MediaPlayerMediaChanged", handleMediaPlayerMediaChanged);
-    unregisterVLCEvent("MediaPlayerNothingSpecial", handle_MediaPlayerNothingSpecial);
-    unregisterVLCEvent("MediaPlayerOpening", handle_MediaPlayerOpening);
-    unregisterVLCEvent("MediaPlayerBuffering", handle_MediaPlayerBuffering);
-    unregisterVLCEvent("MediaPlayerPlaying", handle_MediaPlayerPlaying);
-    unregisterVLCEvent("MediaPlayerPaused", handle_MediaPlayerPaused);
-    unregisterVLCEvent("MediaPlayerStopped", handle_MediaPlayerStopped);
-    unregisterVLCEvent("MediaPlayerForward", handle_MediaPlayerForward);
-    unregisterVLCEvent("MediaPlayerBackward", handle_MediaPlayerBackward);
-    unregisterVLCEvent("MediaPlayerEndReached", handle_MediaPlayerEndReached);
-    unregisterVLCEvent("MediaPlayerEncounteredError", handle_MediaPlayerEncounteredError);
-    unregisterVLCEvent("MediaPlayerTimeChanged", handle_MediaPlayerTimeChanged);
-    unregisterVLCEvent("MediaPlayerPositionChanged", handle_MediaPlayerPositionChanged);
-    unregisterVLCEvent("MediaPlayerSeekableChanged", handle_MediaPlayerSeekableChanged);
-    unregisterVLCEvent("MediaPlayerPausableChanged", handle_MediaPlayerPausableChanged);
-    unregisterVLCEvent("MediaPlayerTitleChanged", handle_MediaPlayerTitleChanged);
-    unregisterVLCEvent("MediaPlayerLengthChanged", handle_MediaPlayerLengthChanged);
-}
-
-//--></SCRIPT>
-
-<BODY onLoad="init();" onClose="close();>
-<TABLE>
-<TR><TD colspan="2">
-MRL:
-<INPUT size="90" id="targetTextField" value="">
-<INPUT type=submit value="Go" onClick="doGo(document.getElementById('targetTextField').value);">
-<INPUT type=submit value="Add" onClick="doAdd(document.getElementById('targetTextField').value);">
-</TD></TR>
-<TR><TD align="center" colspan="2">
-<!--
-Insert VideoLAN.VLCPlugin.2
--->
-<OBJECT classid="clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921"
-        width="640"
-        height="480"
-        id="vlc"
-        events="True">
-<param name="MRL" value="" />
-<param name="ShowDisplay" value="True" />
-<param name="AutoLoop" value="False" />
-<param name="AutoPlay" value="False" />
-<param name="Volume" value="50" />
-<param name="toolbar" value="true" />
-<param name="StartTime" value="0" />
-<EMBED pluginspage="http://www.videolan.org"
-       type="application/x-vlc-plugin"
-       version="VideoLAN.VLCPlugin.2"
-       width="640"
-       height="480"
-       toolbar="true"
-       text="Waiting for video"
-       name="vlc">
-</EMBED>
-</OBJECT>
-</TD></TR>
-<TR><TD colspan="2">
-<TABLE><TR>
-<TD valign="top" width="550">
-<!--
-Insert Slider widget
--->
-<DIV id="inputTrackerDiv"</DIV>
-</TD><TD width="15%">
-<DIV id="info" style="text-align:center">-:--:--/-:--:--</DIV>
-<DIV id="state" style="text-align:center">Stopped...</DIV>
-</TD></TR></TABLE>
-</TD></TR>
-<TR><TD>
-<INPUT type=button id="PlayOrPause" value=" Play " onClick='doPlayOrPause();'>
-<INPUT type=button value="Stop" onClick='doStop();'>
-&nbsp;
-<INPUT type=button value=" << " onClick='doPlaySlower();'>
-<INPUT type=button value="Reverse" onClick='doReverse();'>
-<INPUT type=button value=" >> " onClick='doPlayFaster();'>
-&nbsp;
-<INPUT type=button value="Fullscreen" onClick='getVLC("vlc").video.toggleFullscreen();'>
-<INPUT type=button value="Version" onClick='alert("vlc " + getVLC("vlc").VersionInfo);'>
-<INPUT type=button value=" State " onClick='alert("state: " + getVLC("vlc").input.state);'>
-</TD><TD align="right">
-<SPAN style="text-align:center">Volume:</SPAN>
-<INPUT type=button value=" - " onClick='updateVolume(-10)'>
-<SPAN id="volumeTextField" style="text-align:center">--</SPAN>
-<INPUT type=button value=" + " onClick='updateVolume(+10)'>
-<INPUT type=button value="Mute" onClick='getVLC("vlc").audio.toggleMute();'>
-</TD>
-</TR>
-<TR><TD>Playlist:
-<INPUT type=button value="Prev" onClick='getVLC("vlc").playlist.prev();'>
-<INPUT type=button value="Next" onClick='getVLC("vlc").playlist.next();'>
-<INPUT type=button value="Clear All" onClick='doPlaylistClearAll();'>
-    Aspect Ratio:
-    <SELECT readonly onChange='doAspectRatio(this.value)'>
-      <OPTION value="default">Default</OPTION>
-      <OPTION value="1:1">1:1</OPTION>
-      <OPTION value="4:3">4:3</OPTION>
-      <OPTION value="16:9">16:9</OPTION>
-      <OPTION value="221:100">221:100</OPTION>
-      <OPTION value="5:4">5:4</OPTION>
-    </SELECT>
-</TD><TD align="right">
-<INPUT type=button id="itemCount" value=" Items 0 " onClick='doItemCount();'>
-<INPUT size=4 value="" id="removeid"><INPUT type=submit value="Delete" onClick="doRemoveItem(document.getElementById('removeid').value);">
-</TD>
-</TR>
-<TR><TD>Audio Channel:
-  <SELECT readonly onClick='doAudioChannel(this.value);'>
-    <OPTION value=1>Stereo</OPTION>
-    <OPTION value=2>Reverse Stereo</OPTION>
-    <OPTION value=3>Left</OPTION>
-    <OPTION value=4>Right</OPTION>
-    <OPTION value=5>Dolby</OPTION>
-  </SELECT>
-</TD>
-<TD>
-<INPUT type=button value="current channel" onClick='alert(getVLC("vlc").audio.channel);'>
-</TD>
-</TR>
-<TR><TD> Audio Track:
-<INPUT type=button value=" + " onClick='doAudioTrack(1);'>
-<SPAN id="trackTextField" style="text-align:center">--</SPAN>
-<INPUT type=button value=" - " onClick='doAudioTrack(-1);'>
-<INPUT type=button value="current track" onClick='alert(getVLC("vlc").audio.description(vlc.audio.track));'>
-<INPUT type=button value="number of track" onClick='alert(getVLC("vlc").audio.count);'>
-</TD>
-<TD>
-<INPUT type=button value="set slider" onClick='doSetSlider();'>
-<INPUT type=button value="get position" onClick='doGetPosition();'>
-</TD>
-</TR>
-<TR>
-<TD>Video Subtitle:
-    <INPUT type=button value=" + " onClick='doSubtitle(1);'>
-    <SPAN id="spuTextField" style="text-align:center">--</SPAN>
-    <INPUT type=button value=" - " onClick='doSubtitle(-1);'>
-    <INPUT type=button value="current subtitle" onClick='alert(getVLC("vlc").subtitle.description(vlc.subtitle.track));'>
-    <INPUT type=button value="number of subtitle" onClick='alert(getVLC("vlc").subtitle.count);'>
-</TD>
-</TR>
-<TR>
-<TD>Deinterlacing:
-    <INPUT type=button value="BLEND" onClick='getVLC("vlc").video.deinterlace.enable("blend");'>
-    <INPUT type=button value="  X  " onClick='getVLC("vlc").video.deinterlace.enable("x");'>
-    <INPUT type=button value="Disable" onClick='getVLC("vlc").video.deinterlace.disable();'>
-</TD>
-</TR>
-<TR>
-<TD>Marquee video filter:
-    <INPUT type=button value="Enable" onClick='getVLC("vlc").video.marquee.enable();'>
-    <INPUT type=button value="Disable" onClick='getVLC("vlc").video.marquee.disable();'>
-    <INPUT size=4 value="" id="marqueeIntValue">
-    <SELECT readonly onClick="doMarqueeOption(this.value,document.getElementById('marqueeIntValue').value);">
-        <OPTION value=1>Color</OPTION>
-        <OPTION value=2>Opacity</OPTION>
-        <OPTION value=3>Position</OPTION>
-        <OPTION value=4>Refresh</OPTION>
-        <OPTION value=5>Size</OPTION>
-        <OPTION value=6>Text</OPTION>
-        <OPTION value=7>Timeout</OPTION>
-        <OPTION value=8>X</OPTION>
-        <OPTION value=9>Y</OPTION>
-    </SELECT>
-</TD>
-</TR>
-<TR>
-<TD>Logo video filter:
-    <INPUT type=button value="Enable" onClick='getVLC("vlc").video.logo.enable();'>
-    <INPUT type=button value="Disable" onClick='getVLC("vlc").video.logo.disable();'>
-    <INPUT size=4 value="" id="logoIntValue">
-    <SELECT readonly onClick="doLogoOption(this.value,document.getElementById('logoIntValue').value);">
-        <OPTION value=1>File</OPTION>
-        <OPTION value=2>Position</OPTION>
-        <OPTION value=3>Opacity</OPTION>
-        <OPTION value=4>Repeat</OPTION>
-        <OPTION value=5>Delay</OPTION>
-        <OPTION value=6>X</OPTION>
-        <OPTION value=7>Y</OPTION>
-    </SELECT>
-</TD>
-</TR>
-<TR>
-<TD>
-    <INPUT type=button id="telx" value="Teletext off" onClick='doToggleTeletext();'>
-    Teletext page:
-    <INPUT size=4 value="100" id="telxPage" onClick='doTelxPage(document.getElementById("telxPage").value);'>
-</TD>
-</TR>
-</TABLE>
-<SCRIPT language="javascript">
-<!--
-
-var rate = 0;
-var prevState = 0;
-var monitorTimerId = 0;
-var inputTracker;
-var inputTrackerScrolling = false;
-var inputTrackerIgnoreChange = false;
-var telxState = false;
-var canPause = true;
-var canSeek = true;
-
-function setPauseable(val)
-{
-    canPause = val;
-}
-
-function setSeekable(val)
-{
-    canSeek = val;
-}
-
-function doSetSlider()
-{
-    var vlc = getVLC("vlc");
-
-    // set slider to new position
-    if( vlc )
-        vlc.input.time = (vlc.input.length/2);
-}
-
-function doGetPosition()
-{
-    var vlc = getVLC("vlc");
-
-    // set slider to new position
-    if (vlc)
-        alert( "position is " + vlc.input.time);
-}
-
-function doReverse(rate)
-{
-    var vlc = getVLC("vlc");
-    if( vlc )
-        vlc.input.rate = -1.0 * vlc.input.rate;
-}
-
-function doAudioChannel(value)
-{
-    var vlc = getVLC("vlc");
-    if( vlc )
-        vlc.audio.channel = parseInt(value);
-}
-
-function doAudioTrack(value)
-{
-    var vlc = getVLC("vlc");
-    if( vlc )
-    {
-        vlc.audio.track = vlc.audio.track + value;
-        document.getElementById("trackTextField").innerHTML = vlc.audio.track;
-    }
-}
-
-function doAspectRatio(value)
-{
-    var vlc = getVLC("vlc");
-    if( vlc )
-        vlc.video.aspectRatio = value;
-}
-
-function doSubtitle(value)
-{
-    var vlc = getVLC("vlc");
-    if( vlc )
-    {
-        vlc.subtitle.track = vlc.subtitle.track + value;
-        document.getElementById("spuTextField").innerHTML = vlc.subtitle.track;
-    }
-}
-
-function doTelxPage(value)
-{
-    var vlc = getVLC("vlc");
-    if( vlc )
-        vlc.video.teletext = parseInt(value);
-}
-
-function doToggleTeletext()
-{
-    var vlc = getVLC("vlc");
-
-    if( vlc )
-    {
-        vlc.video.toggleTeletext();
-        if (telxState)
-        {
-            document.getElementById("telx").innerHTML = "Teletext on";
-            telxState = true;
-        }
-        else
-        {
-            document.getElementById("telx").innerHTML = "Teletext off";
-            telxState = false;
-        }
-    }
-}
-
-function doItemCount()
-{
-    var vlc = getVLC("vlc");
-    if( vlc )
-    {
-        var count = vlc.playlist.items.count;
-        document.getElementById("itemCount").value = " Items " + count + " ";
-    }
-}
-
-function doRemoveItem(item)
-{
-    var vlc = getVLC("vlc");
-    if( vlc )
-        vlc.playlist.items.remove(item);
-}
-
-function doPlaylistClearAll()
-{
-    var vlc = getVLC("vlc");
-    if( vlc )
-    {
-        vlc.playlist.items.clear();
-        while( vlc.playlist.items.count > 0)
-        {
-            // wait till playlist empties.
-        }
-        doItemCount();
-    }
-}
-
-function updateVolume(deltaVol)
-{
-    var vlc = getVLC("vlc");
-    if( vlc )
-    {
-        vlc.audio.volume += deltaVol;
-        document.getElementById("volumeTextField").innerHTML = vlc.audio.volume+"%";
-    }
-}
-
-function formatTime(timeVal)
-{
-    if( typeof timeVal != 'number' )
-        return "-:--:--";
-
-    var timeHour = Math.round(timeVal / 1000);
-    var timeSec = timeHour % 60;
-    if( timeSec < 10 )
-        timeSec = '0'+timeSec;
-    timeHour = (timeHour - timeSec)/60;
-    var timeMin = timeHour % 60;
-    if( timeMin < 10 )
-        timeMin = '0'+timeMin;
-    timeHour = (timeHour - timeMin)/60;
-    if( timeHour > 0 )
-        return timeHour+":"+timeMin+":"+timeSec;
-    else
-        return timeMin+":"+timeSec;
-}
-
-function doState()
-{
-    var vlc = getVLC("vlc");
-    var newState = 0;
-
-    if( vlc )
-        newState = vlc.input.state;
-
-    if( newState == 0 )
-    {
-        // current media has stopped
-        onEnd();
-    }
-    else if( newState == 1 )
-    {
-        // current media is openning/connecting
-        onOpen();
-    }
-    else if( newState == 2 )
-    {
-        // current media is buffering data
-        onBuffer();
-    }
-    else if( newState == 3 )
-    {
-        // current media is now playing
-        onPlay();
-    }
-    else if( newState == 4 )
-    {
-        // current media is now paused
-        onPause();
-    }
-    else if( newState == 5 )
-    {
-        // current media has stopped
-        onStop();
-    }
-    else if( newState == 6 )
-    {
-        // current media has ended
-        onEnd();
-    }
-    else if( newState == 7 )
-    {
-        // current media encountered error
-        onError();
-    }
-}
-
-function monitor()
-{
-    var vlc = getVLC("vlc");
-    var newState = 0;
-
-    if( vlc )
-    {
-        newState = vlc.input.state;
-    }
-
-    if( prevState != newState )
-    {
-        if( newState == 0 )
-        {
-            // current media has stopped
-            onEnd();
-        }
-        else if( newState == 1 )
-        {
-            // current media is openning/connecting
-            onOpen();
-        }
-        else if( newState == 2 )
-        {
-            // current media is buffering data
-            onBuffer();
-        }
-        else if( newState == 3 )
-        {
-            // current media is now playing
-            onPlay();
-        }
-        else if( newState == 4 )
-        {
-            // current media is now paused
-            onPause();
-        }
-        else if( newState == 5 )
-        {
-            // current media has stopped
-            onStop();
-        }
-        else if( newState == 6 )
-        {
-            // current media has ended
-            onEnd();
-        }
-        else if( newState == 7 )
-        {
-            // current media encountered error
-            onError();
-        }
-        prevState = newState;
-    }
-    else if( newState == 3 )
-    {
-        // current media is playing
-        onPlaying();
-    }
-    if( monitorTimerId == 0 )
-    {
-        monitorTimerId = setInterval("monitor()", 1000);
-    }
-};
-
-/* actions */
-
-function doGo(targetURL)
-{
-    var vlc = getVLC("vlc");
-
-    if( vlc )
-    {
-        vlc.playlist.items.clear();
-        while( vlc.playlist.items.count > 0 )
-        {
-            // clear() may return before the playlist has actually been cleared
-            // just wait for it to finish its job
-        }
-        var options = [":rtsp-tcp"];
-        var itemId = vlc.playlist.add(targetURL,"",options);
-        options = [];
-        if( itemId != -1 )
-        {
-            // play MRL
-            vlc.playlist.playItem(itemId);
-            if( monitorTimerId == 0 )
-            {
-                monitor();
-            }
-        }
-        else
-        {
-            alert("cannot play at the moment !");
-        }
-        doItemCount();
-    }
-}
-
-function doAdd(targetURL)
-{
-    var vlc = getVLC("vlc");
-    var options = [":vout-filter=deinterlace", ":deinterlace-mode=linear"];
-    if( vlc )
-    {
-        vlc.playlist.add(targetURL, "", options);
-        options = [];
-        doItemCount();
-    }
-}
-
-function doPlayOrPause()
-{
-    var vlc = getVLC("vlc");
-    if( vlc )
-    {
-        if( vlc.playlist.isPlaying && canPause )
-        {
-            vlc.playlist.togglePause();
-            //monitor();
-        }
-        else if( vlc.playlist.items.count > 0 )
-        {
-            vlc.playlist.play();
-            //monitor();
-        }
-        else
-        {
-            alert('nothing to play !');
-        }
-    }
-}
-
-function doStop()
-{
-    var vlc = getVLC("vlc");
-
-    if( vlc )
-        vlc.playlist.stop();
-
-    if( monitorTimerId != 0 )
-    {
-        clearInterval(monitorTimerId);
-        monitorTimerId = 0;
-    }
-    onStop();
-}
-
-function doPlaySlower()
-{
-    var vlc = getVLC("vlc");
-    if( vlc )
-        vlc.input.rate = vlc.input.rate / 2;
-}
-
-function doPlayFaster()
-{
-    var vlc = getVLC("vlc");
-    if( vlc )
-        vlc.input.rate = vlc.input.rate * 2;
-}
-
-function doMarqueeOption(option, value)
-{
-    var vlc = getVLC("vlc");
-    val = parseInt(value);
-    if( vlc )
-    {
-        if (option == 1)
-            vlc.video.marquee.color = val;
-        if (option == 2)
-            vlc.video.marquee.opacity = val;
-        if (option == 3)
-            vlc.video.marquee.position = value;
-        if (option == 4)
-            vlc.video.marquee.refresh = val;
-        if (option == 5)
-            vlc.video.marquee.size = val;
-        if (option == 6)
-            vlc.video.marquee.text = value;
-        if (option == 7)
-            vlc.video.marquee.timeout = val;
-        if (option == 8)
-            vlc.video.marquee.x = val;
-        if (option == 9)
-            vlc.video.marquee.y = val;
-    }
-}
-
-function doLogoOption(option, value)
-{
-    var vlc = getVLC("vlc");
-    if( vlc )
-    {
-        if (option == 1)
-            vlc.video.logo.file(value);
-        if (option == 2)
-            vlc.video.logo.position = value;
-        val = parseInt(value);
-        if (option == 3)
-            vlc.video.logo.opacity = val;
-        if (option == 4)
-            vlc.video.logo.repeat = val;
-        if (option == 5)
-            vlc.video.logo.delay = val;
-        if (option == 6)
-            vlc.video.logo.x = val;
-        if (option == 7)
-            vlc.video.logo.y = val;
-    }
-}
-
-/* events */
-
-function onOpen()
-{
-    document.getElementById("state").innerHTML = "Opening...";
-    document.getElementById("PlayOrPause").value = "Pause";
-}
-
-function onBuffer()
-{
-    document.getElementById("state").innerHTML = "Buffering...";
-    document.getElementById("PlayOrPause").value = "Pause";
-}
-
-function onPlay()
-{
-    document.getElementById("state").innerHTML = "Playing...";
-    document.getElementById("PlayOrPause").value = "Pause";
-    onPlaying();
-}
-
-function onEnd()
-{
-    document.getElementById("state").innerHTML = "End...";
-}
-
-var liveFeedText = ["Live", "((Live))", "(( Live ))", "((  Live  ))"];
-var liveFeedRoll = 0;
-
-function onPlaying()
-{
-    if( !inputTrackerScrolling )
-    {
-        var vlc = getVLC("vlc");
-        var info = document.getElementById("info");
-        if( vlc )
-        {
-            var mediaLen = vlc.input.length;
-            inputTrackerIgnoreChange = true;
-            if( mediaLen > 0 )
-            {
-                // seekable media
-                if( inputTracker )
-                {
-                    if( inputTracker.maxVal == 1.0 )
-                    {
-                        inputTracker.setDisabled(false);
-                        inputTracker.maxVal = 1.0;
-                    }
-                    inputTracker.setValue(vlc.input.position);
-                }
-                info.innerHTML = formatTime(vlc.input.time)+"/"+formatTime(mediaLen);
-            }
-            else
-            {
-                // non-seekable "live" media
-                if( inputTracker )
-                {
-                    if( inputTracker.maxVal != 0.0 )
-                    {
-                        inputTracker.maxVal = 0.0;
-                        inputTracker.setValue(0.0);
-                        inputTracker.setDisabled(true);
-                    }
-                }
-                liveFeedRoll = liveFeedRoll & 3;
-                info.innerHTML = liveFeedText[liveFeedRoll++];
-            }
-            inputTrackerIgnoreChange  = false;
-        }
-    }
-}
-
-function onPause()
-{
-    document.getElementById("state").innerHTML = "Paused...";
-    document.getElementById("PlayOrPause").value = " Play ";
-}
-
-function onStop()
-{
-    var vlc = getVLC("vlc");
-
-    if( inputTracker )
-    {
-        if( !inputTracker.disabled )
-        {
-            inputTracker.setValue(inputTracker.minVal);
-            inputTracker.setDisabled(true);
-        }
-    }
-
-    document.getElementById("info").innerHTML = "-:--:--/-:--:--";
-    document.getElementById("state").innerHTML = "Stopped...";
-    document.getElementById("PlayOrPause").value = " Play ";
-}
-
-function onError()
-{
-    var vlc = getVLC("vlc");
-
-    document.getElementById("state").innerHTML = "Error...";
-}
-
-function onInputTrackerScrollStart()
-{
-    inputTrackerScrolling = true;
-}
-
-function onInputTrackerScrollEnd(inputTracker, value, pos)
-{
-    inputTrackerScrolling = false;
-}
-
-function onInputTrackerChange(inputTracker, value, pos)
-{
-    if( !inputTrackerIgnoreChange )
-    {
-        var vlc = getVLC("vlc");
-        if( vlc )
-        {
-            if( (vlc.input.state == 3) && (vlc.input.position != value) )
-            {
-                var info = document.getElementById("info");
-                vlc.input.position = value;
-                info.innerHTML = formatTime(vlc.input.time)+"/"+formatTime(vlc.input.length);
-            }
-        }
-    }
-}
-
-//-->
-</SCRIPT>
-</BODY>
-</HTML>
diff --git a/projects/activex/utils.cpp b/projects/activex/utils.cpp
deleted file mode 100644 (file)
index 9c469db..0000000
+++ /dev/null
@@ -1,322 +0,0 @@
-/*****************************************************************************
- * utils.cpp: ActiveX control for VLC
- *****************************************************************************
- * Copyright (C) 2005 the VideoLAN team
- *
- * Authors: Damien Fouilleul <Damien.Fouilleul@laposte.net>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#include "utils.h"
-
-#include <wchar.h>
-#include <wctype.h>
-
-/*
-** conversion facilities
-*/
-
-using namespace std;
-
-char *CStrFromWSTR(UINT codePage, LPCWSTR wstr, UINT len)
-{
-    if( len > 0 )
-    {
-        size_t mblen = WideCharToMultiByte(codePage,
-                0, wstr, len, NULL, 0, NULL, NULL);
-        if( mblen > 0 )
-        {
-            char *buffer = (char *)CoTaskMemAlloc(mblen+1);
-            ZeroMemory(buffer, mblen+1);
-            if( WideCharToMultiByte(codePage, 0, wstr, len, buffer, mblen, NULL, NULL) )
-            {
-                buffer[mblen] = '\0';
-                return buffer;
-            }
-        }
-    }
-    return NULL;
-};
-
-char *CStrFromBSTR(UINT codePage, BSTR bstr)
-{
-    return CStrFromWSTR(codePage, bstr, SysStringLen(bstr));
-};
-
-BSTR BSTRFromCStr(UINT codePage, LPCSTR s)
-{
-    int wideLen = MultiByteToWideChar(codePage, 0, s, -1, NULL, 0);
-    if( wideLen > 0 )
-    {
-        WCHAR* wideStr = (WCHAR*)CoTaskMemAlloc(wideLen*sizeof(WCHAR));
-        if( NULL != wideStr )
-        {
-            BSTR bstr;
-
-            ZeroMemory(wideStr, wideLen*sizeof(WCHAR));
-            MultiByteToWideChar(codePage, 0, s, -1, wideStr, wideLen);
-            bstr = SysAllocStringLen(wideStr, wideLen-1);
-            CoTaskMemFree(wideStr);
-
-            return bstr;
-        }
-    }
-    return NULL;
-};
-
-/*
-**  properties
-*/
-
-HRESULT GetObjectProperty(LPUNKNOWN object, DISPID dispID, VARIANT& v)
-{
-    IDispatch *pDisp;
-    HRESULT hr = object->QueryInterface(IID_IDispatch, (LPVOID *)&pDisp);
-    if( SUCCEEDED(hr) )
-    {
-        DISPPARAMS dispparamsNoArgs = {NULL, NULL, 0, 0};
-        VARIANT vres;
-        VariantInit(&vres);
-        hr = pDisp->Invoke(dispID, IID_NULL, LOCALE_USER_DEFAULT,
-                DISPATCH_PROPERTYGET, &dispparamsNoArgs, &vres, NULL, NULL);
-        if( SUCCEEDED(hr) )
-        {
-            if( V_VT(&v) != V_VT(&vres) )
-            {
-                hr = VariantChangeType(&v, &vres, 0, V_VT(&v));
-                VariantClear(&vres);
-            }
-            else
-            {
-                v = vres;
-            }
-        }
-        pDisp->Release();
-    }
-    return hr;
-};
-
-HDC CreateDevDC(DVTARGETDEVICE *ptd)
-{
-    HDC hdc;
-    if( NULL == ptd )
-    {
-        hdc = CreateDC(TEXT("DISPLAY"), NULL, NULL, NULL);
-    }
-    else
-    {
-        LPDEVNAMES lpDevNames = (LPDEVNAMES) ptd; // offset for size field
-        LPDEVMODE  lpDevMode  = NULL;
-
-        if (ptd->tdExtDevmodeOffset != 0)
-            lpDevMode  = (LPDEVMODE) ((LPTSTR)ptd + ptd->tdExtDevmodeOffset);
-
-        hdc = CreateDC( (LPTSTR) lpDevNames + ptd->tdDriverNameOffset,
-                        (LPTSTR) lpDevNames + ptd->tdDeviceNameOffset,
-                        (LPTSTR) lpDevNames + ptd->tdPortNameOffset,
-                        lpDevMode );
-    }
-    return hdc;
-};
-
-#define HIMETRIC_PER_INCH 2540
-
-void DPFromHimetric(HDC hdc, LPPOINT pt, int count)
-{
-    LONG lpX = GetDeviceCaps(hdc, LOGPIXELSX);
-    LONG lpY = GetDeviceCaps(hdc, LOGPIXELSY);
-    while( count-- )
-    {
-        pt->x = pt->x*lpX/HIMETRIC_PER_INCH;
-        pt->y = pt->y*lpY/HIMETRIC_PER_INCH;
-        ++pt;
-    }
-};
-
-void HimetricFromDP(HDC hdc, LPPOINT pt, int count)
-{
-    LONG lpX = GetDeviceCaps(hdc, LOGPIXELSX);
-    LONG lpY = GetDeviceCaps(hdc, LOGPIXELSY);
-    while( count-- )
-    {
-        pt->x = pt->x*HIMETRIC_PER_INCH/lpX;
-        pt->y = pt->y*HIMETRIC_PER_INCH/lpY;
-        ++pt;
-    }
-};
-
-
-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;
-            wchar_t c = *start;
-            if( iswalpha(c) )
-            {
-                ++start;
-                while( start != end )
-                {
-                    c = *start;
-                    if( ! (iswalnum(c)
-                       || (L'-' == c)
-                       || (L'+' == c)
-                       || (L'.' == c)
-                       || (L'/' == c)) ) /* VLC uses / to allow user to specify a demuxer */
-                        // not 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;
-}
-
diff --git a/projects/activex/utils.h b/projects/activex/utils.h
deleted file mode 100644 (file)
index 6234ab3..0000000
+++ /dev/null
@@ -1,175 +0,0 @@
-/*****************************************************************************
- * utils.h: ActiveX control for VLC
- *****************************************************************************
- * Copyright (C) 2005 the VideoLAN team
- *
- * Authors: Damien Fouilleul <Damien.Fouilleul@laposte.net>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#ifndef __UTILS_H__
-#define __UTILS_H__
-
-#include <ole2.h>
-
-#include <vector>
-
-// utilities
-extern char *CStrFromWSTR(UINT codePage, LPCWSTR wstr, UINT len);
-extern char *CStrFromBSTR(UINT codePage, BSTR bstr);
-extern BSTR BSTRFromCStr(UINT codePage, LPCSTR s);
-
-// properties
-extern HRESULT GetObjectProperty(LPUNKNOWN object, DISPID dispID, VARIANT& v);
-
-// properties
-extern HDC CreateDevDC(DVTARGETDEVICE *ptd);
-extern void DPFromHimetric(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 */
-template <typename T, class Iterator>
-struct VLCDereference
-{
-    T operator()(const Iterator& i) const
-    {
-        return *i;
-    };
-};
-
-template<REFIID EnumeratorIID, class Enumerator, typename T, class Iterator, typename Dereference = VLCDereference<T, Iterator> >
-class VLCEnumIterator : public Enumerator
-{
-
-public:
-
-    VLCEnumIterator(const Iterator& from, const Iterator& to) :
-        _refcount(1),
-        _begin(from),
-        _curr(from),
-        _end(to)
-    {};
-
-    VLCEnumIterator(const VLCEnumIterator& e) :
-        Enumerator(),
-        _refcount(e._refcount),
-        _begin(e._begin),
-        _curr(e._curr),
-        _end(e._end)
-    {};
-
-    virtual ~VLCEnumIterator()
-    {};
-
-    // IUnknown methods
-    STDMETHODIMP QueryInterface(REFIID riid, void **ppv)
-    {
-        if( NULL == ppv )
-            return E_POINTER;
-        if( (IID_IUnknown == riid)
-         || (EnumeratorIID == riid) )
-        {
-            AddRef();
-            *ppv = reinterpret_cast<LPVOID>(this);
-            return NOERROR;
-        }
-        // standalone object
-        return E_NOINTERFACE;
-    };
-
-    STDMETHODIMP_(ULONG) AddRef(void)
-    {
-        return InterlockedIncrement(&_refcount);
-    };
-
-    STDMETHODIMP_(ULONG) Release(void)
-    {
-        ULONG refcount = InterlockedDecrement(&_refcount);
-        if( 0 == refcount )
-        {
-            delete this;
-            return 0;
-        }
-        return refcount;
-    };
-
-
-    // IEnumXXXX methods
-    STDMETHODIMP Next(ULONG celt, T *rgelt, ULONG *pceltFetched)
-    {
-        if( NULL == rgelt )
-            return E_POINTER;
-
-        if( (celt > 1) && (NULL == pceltFetched) )
-            return E_INVALIDARG;
-
-        ULONG c = 0;
-
-        while( (c < celt) && (_curr != _end) )
-        {
-            rgelt[c] = dereference(_curr);
-            ++_curr;
-            ++c;
-        }
-
-        if( NULL != pceltFetched )
-            *pceltFetched = c;
-
-        return (c == celt) ? S_OK : S_FALSE;
-    };
-
-    STDMETHODIMP Skip(ULONG celt)
-    {
-        ULONG c = 0;
-
-        while( (c < celt) && (_curr != _end) )
-        {
-            ++_curr;
-            ++c;
-        }
-        return (c == celt) ? S_OK : S_FALSE;
-    };
-
-    STDMETHODIMP Reset(void)
-    {
-        _curr = _begin;
-        return S_OK;
-    };
-
-    STDMETHODIMP Clone(Enumerator **ppEnum)
-    {
-        if( NULL == ppEnum )
-            return E_POINTER;
-        *ppEnum = dynamic_cast<Enumerator *>(new VLCEnumIterator(*this));
-        return (NULL != *ppEnum ) ? S_OK : E_OUTOFMEMORY;
-    };
-
-private:
-
-    LONG     _refcount;
-    Iterator _begin, _curr, _end;
-
-    Dereference dereference;
-
-};
-
-#endif
-
diff --git a/projects/activex/viewobject.cpp b/projects/activex/viewobject.cpp
deleted file mode 100644 (file)
index a194ff7..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-/*****************************************************************************
- * viewobject.cpp: ActiveX control for VLC
- *****************************************************************************
- * Copyright (C) 2005 the VideoLAN team
- *
- * Authors: Damien Fouilleul <Damien.Fouilleul@laposte.net>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#include "plugin.h"
-#include "viewobject.h"
-
-#include "utils.h"
-
-using namespace std;
-
-STDMETHODIMP VLCViewObject::Draw(DWORD dwAspect, LONG lindex, PVOID pvAspect,
-        DVTARGETDEVICE *ptd, HDC hicTargetDev, HDC hdcDraw, LPCRECTL lprcBounds,
-        LPCRECTL lprcWBounds, BOOL(CALLBACK *pfnContinue)(DWORD), DWORD dwContinue)
-{
-    if( dwAspect & DVASPECT_CONTENT )
-    {
-        if( NULL == lprcBounds )
-            return E_INVALIDARG;
-
-        BOOL releaseDC = FALSE;
-        SIZEL size = _p_instance->getExtent();
-
-        if( NULL == ptd )
-        {
-            hicTargetDev = CreateDevDC(NULL);
-            releaseDC = TRUE;
-        }
-        DPFromHimetric(hicTargetDev, (LPPOINT)&size, 1);
-
-        RECTL bounds = { 0L, 0L, size.cx, size.cy };
-
-        int sdc = SaveDC(hdcDraw);
-        SetMapMode(hdcDraw, MM_ANISOTROPIC);
-        SetWindowOrgEx(hdcDraw, 0, 0, NULL);
-        SetWindowExtEx(hdcDraw, size.cx, size.cy, NULL);
-        OffsetViewportOrgEx(hdcDraw, lprcBounds->left, lprcBounds->top, NULL);
-        SetViewportExtEx(hdcDraw, lprcBounds->right-lprcBounds->left,
-                lprcBounds->bottom-lprcBounds->top, NULL);
-
-        _p_instance->onDraw(ptd, hicTargetDev, hdcDraw, &bounds, lprcWBounds);
-        RestoreDC(hdcDraw, sdc);
-
-        if( releaseDC )
-            DeleteDC(hicTargetDev);
-
-        return S_OK;
-    }
-    return E_NOTIMPL;
-};
-
-STDMETHODIMP VLCViewObject::Freeze(DWORD dwAspect, LONG lindex,
-        PVOID pvAspect, LPDWORD pdwFreeze)
-{
-    return E_NOTIMPL;
-};
-
-STDMETHODIMP VLCViewObject::GetAdvise(LPDWORD pdwAspect, LPDWORD padvf,
-        LPADVISESINK *ppAdviseSink)
-{
-    if( NULL != pdwAspect )
-        *pdwAspect = _dwAspect;
-
-    if( NULL != padvf )
-        *padvf = _advf;
-
-    if( NULL != ppAdviseSink )
-    {
-        *ppAdviseSink = _pAdvSink;
-        if( NULL != _pAdvSink )
-            _pAdvSink->AddRef();
-    }
-
-    return S_OK;
-};
-
-STDMETHODIMP VLCViewObject::GetColorSet(DWORD dwAspect, LONG lindex,
-        PVOID pvAspect, DVTARGETDEVICE *ptd, HDC hicTargetDev, LPLOGPALETTE *ppColorSet)
-{
-    return S_FALSE;
-};
-
-STDMETHODIMP VLCViewObject::SetAdvise(DWORD dwAspect, DWORD advf,
-        LPADVISESINK pAdvSink)
-{
-    if( NULL != pAdvSink )
-        pAdvSink->AddRef();
-
-    if( NULL != _pAdvSink )
-        _pAdvSink->Release();
-
-    _dwAspect = dwAspect;
-    _advf = advf;
-    _pAdvSink = pAdvSink;
-
-    if( (dwAspect & DVASPECT_CONTENT) && (advf & ADVF_PRIMEFIRST) && (NULL != _pAdvSink) )
-    {
-        _pAdvSink->OnViewChange(DVASPECT_CONTENT, -1);
-    }
-
-    return S_OK;
-};
-
-STDMETHODIMP VLCViewObject::Unfreeze(DWORD dwFreeze)
-{
-    return E_NOTIMPL;
-};
-
-STDMETHODIMP VLCViewObject::GetExtent(DWORD dwAspect, LONG lindex,
-        DVTARGETDEVICE *ptd, LPSIZEL lpSizel)
-{
-    if( dwAspect & DVASPECT_CONTENT )
-    {
-        *lpSizel = _p_instance->getExtent();
-        return S_OK;
-    }
-    lpSizel->cx= 0L;
-    lpSizel->cy= 0L;
-    return E_NOTIMPL;
-};
-
diff --git a/projects/activex/viewobject.h b/projects/activex/viewobject.h
deleted file mode 100644 (file)
index 0b860c2..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-/*****************************************************************************
- * persiststorage.h: ActiveX control for VLC
- *****************************************************************************
- * Copyright (C) 2005 the VideoLAN team
- *
- * Authors: Damien Fouilleul <Damien.Fouilleul@laposte.net>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#ifndef __VIEWOBJECT_H__
-#define __VIEWOBJECT_H__
-
-#include <oleidl.h>
-
-class VLCViewObject : public IViewObject2
-{
-
-public:
-
-    VLCViewObject(VLCPlugin *p_instance) : _p_instance(p_instance),
-        _dwAspect(0), _advf(0), _pAdvSink(NULL) {};
-    virtual ~VLCViewObject() {};
-
-    // IUnknown methods
-    STDMETHODIMP QueryInterface(REFIID riid, void **ppv)
-    {
-        if( NULL == ppv )
-            return E_POINTER;
-        if( (IID_IUnknown == riid)
-         || (IID_IViewObject == riid)
-         || (IID_IViewObject2 == riid) )
-        {
-            AddRef();
-            *ppv = reinterpret_cast<LPVOID>(this);
-            return NOERROR;
-        }
-        return _p_instance->pUnkOuter->QueryInterface(riid, ppv);
-    };
-
-    STDMETHODIMP_(ULONG) AddRef(void) { return _p_instance->pUnkOuter->AddRef(); };
-    STDMETHODIMP_(ULONG) Release(void) { return _p_instance->pUnkOuter->Release(); };
-
-    // IViewObject methods
-    STDMETHODIMP Draw(DWORD,LONG,PVOID,DVTARGETDEVICE*,HDC,HDC,LPCRECTL,LPCRECTL,BOOL(CALLBACK *)(DWORD),DWORD);
-    STDMETHODIMP Freeze(DWORD,LONG,PVOID,LPDWORD);
-    STDMETHODIMP GetAdvise(LPDWORD,LPDWORD,LPADVISESINK *);
-    STDMETHODIMP GetColorSet(DWORD,LONG,PVOID,DVTARGETDEVICE *,HDC,LPLOGPALETTE *);
-    STDMETHODIMP SetAdvise(DWORD,DWORD,LPADVISESINK);
-    STDMETHODIMP Unfreeze(DWORD);
-
-    // IViewObject2 methods
-    STDMETHODIMP GetExtent(DWORD,LONG,DVTARGETDEVICE *,LPSIZEL);
-
-private:
-
-    VLCPlugin *_p_instance;
-
-    // Advise Sink support
-    DWORD _dwAspect;
-    DWORD _advf;
-    LPADVISESINK _pAdvSink;
-};
-
-#endif
-
diff --git a/projects/activex/vlc16x16.bmp b/projects/activex/vlc16x16.bmp
deleted file mode 100644 (file)
index bfa7bd8..0000000
Binary files a/projects/activex/vlc16x16.bmp and /dev/null differ
diff --git a/projects/activex/vlccontrol.cpp b/projects/activex/vlccontrol.cpp
deleted file mode 100644 (file)
index 541a90d..0000000
+++ /dev/null
@@ -1,814 +0,0 @@
-/*****************************************************************************
- * vlccontrol.cpp: ActiveX control for VLC
- *****************************************************************************
- * Copyright (C) 2005-2010 the VideoLAN team
- *
- * Authors: Damien Fouilleul <Damien.Fouilleul@laposte.net>
- *          Jean-Paul Saman <jpsaman@videolan.org>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#include "plugin.h"
-#include "vlccontrol.h"
-
-#include "utils.h"
-
-using namespace std;
-
-VLCControl::~VLCControl()
-{
-    if( _p_typeinfo )
-        _p_typeinfo->Release();
-};
-
-HRESULT VLCControl::getTypeInfo(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_IVLCControl, &_p_typeinfo);
-            if( FAILED(hr) )
-            {
-                _p_typeinfo = NULL;
-            }
-            p_typelib->Release();
-        }
-    }
-    return hr;
-};
-
-STDMETHODIMP VLCControl::GetTypeInfoCount(UINT* pctInfo)
-{
-    if( NULL == pctInfo )
-        return E_INVALIDARG;
-
-    if( SUCCEEDED(getTypeInfo()) )
-        *pctInfo = 1;
-    else
-        *pctInfo = 0;
-
-    return NOERROR;
-};
-
-STDMETHODIMP VLCControl::GetTypeInfo(UINT iTInfo, LCID lcid, LPTYPEINFO* ppTInfo)
-{
-    if( NULL == ppTInfo )
-        return E_INVALIDARG;
-
-    if( SUCCEEDED(getTypeInfo()) )
-    {
-        _p_typeinfo->AddRef();
-        *ppTInfo = _p_typeinfo;
-        return NOERROR;
-    }
-    *ppTInfo = NULL;
-    return E_NOTIMPL;
-};
-
-STDMETHODIMP VLCControl::GetIDsOfNames(REFIID riid, LPOLESTR* rgszNames,
-        UINT cNames, LCID lcid, DISPID* rgDispID)
-{
-    if( SUCCEEDED(getTypeInfo()) )
-    {
-        return DispGetIDsOfNames(_p_typeinfo, rgszNames, cNames, rgDispID);
-    }
-    return E_NOTIMPL;
-};
-
-STDMETHODIMP VLCControl::Invoke(DISPID dispIdMember, REFIID riid,
-        LCID lcid, WORD wFlags, DISPPARAMS* pDispParams,
-        VARIANT* pVarResult, EXCEPINFO* pExcepInfo, UINT* puArgErr)
-{
-    if( SUCCEEDED(getTypeInfo()) )
-    {
-        return DispInvoke(this, _p_typeinfo, dispIdMember, wFlags, pDispParams,
-                pVarResult, pExcepInfo, puArgErr);
-    }
-    return E_NOTIMPL;
-};
-
-STDMETHODIMP VLCControl::get_Visible(VARIANT_BOOL *isVisible)
-{
-    if( NULL == isVisible )
-        return E_POINTER;
-
-    *isVisible = _p_instance->getVisible() ? VARIANT_TRUE : VARIANT_FALSE;
-
-    return S_OK;
-};
-
-STDMETHODIMP VLCControl::put_Visible(VARIANT_BOOL isVisible)
-{
-    _p_instance->setVisible(isVisible != VARIANT_FALSE);
-
-    return S_OK;
-};
-
-STDMETHODIMP VLCControl::play(void)
-{
-    _p_instance->playlist_play();
-    _p_instance->fireOnPlayEvent();
-    return S_OK;
-};
-
-STDMETHODIMP VLCControl::pause(void)
-{
-    libvlc_media_player_t* p_md;
-    HRESULT result = _p_instance->getMD(&p_md);
-    if( SUCCEEDED(result) )
-    {
-        libvlc_media_player_pause(p_md);
-        _p_instance->fireOnPauseEvent();
-    }
-    return result;
-};
-
-STDMETHODIMP VLCControl::stop(void)
-{
-    libvlc_media_player_t *p_md;
-    HRESULT result = _p_instance->getMD(&p_md);
-    if( SUCCEEDED(result) )
-    {
-        libvlc_media_player_stop(p_md);
-        _p_instance->fireOnStopEvent();
-    }
-    return result;
-};
-
-STDMETHODIMP VLCControl::get_Playing(VARIANT_BOOL *isPlaying)
-{
-    if( NULL == isPlaying )
-        return E_POINTER;
-
-    libvlc_media_player_t *p_md;
-    HRESULT result = _p_instance->getMD(&p_md);
-    if( SUCCEEDED(result) )
-    {
-        *isPlaying = libvlc_media_player_is_playing(p_md) ?
-                     VARIANT_TRUE : VARIANT_FALSE;
-    } else *isPlaying = VARIANT_FALSE;
-    return result;
-};
-
-STDMETHODIMP VLCControl::get_Position(float *position)
-{
-    if( NULL == position )
-        return E_POINTER;
-    *position = 0.0f;
-
-    libvlc_media_player_t *p_md;
-    HRESULT result = _p_instance->getMD(&p_md);
-    if( SUCCEEDED(result) )
-    {
-        *position = libvlc_media_player_get_position(p_md);
-    }
-    return result;
-};
-
-STDMETHODIMP VLCControl::put_Position(float position)
-{
-    libvlc_media_player_t *p_md;
-    HRESULT result = _p_instance->getMD(&p_md);
-    if( SUCCEEDED(result) )
-    {
-        libvlc_media_player_set_position(p_md, position);
-    }
-    return result;
-};
-
-STDMETHODIMP VLCControl::get_Time(int *seconds)
-{
-    if( NULL == seconds )
-        return E_POINTER;
-
-    *seconds = 0;
-    libvlc_media_player_t *p_md;
-    HRESULT result = _p_instance->getMD(&p_md);
-    if( SUCCEEDED(result) )
-    {
-        *seconds = libvlc_media_player_get_time(p_md);
-    }
-    return result;
-};
-
-STDMETHODIMP VLCControl::put_Time(int seconds)
-{
-    /* setTime function of the plugin sets the time. */
-    _p_instance->setTime(seconds);
-    return S_OK;
-};
-
-STDMETHODIMP VLCControl::shuttle(int seconds)
-{
-    libvlc_media_player_t *p_md;
-    HRESULT result = _p_instance->getMD(&p_md);
-    if( SUCCEEDED(result) )
-    {
-        if( seconds < 0 ) seconds = 0;
-        libvlc_media_player_set_time(p_md, (int64_t)seconds);
-    }
-    return result;
-
-};
-
-STDMETHODIMP VLCControl::fullscreen(void)
-{
-    libvlc_media_player_t *p_md;
-    HRESULT result = _p_instance->getMD(&p_md);
-    if( SUCCEEDED(result) )
-    {
-        if( libvlc_media_player_is_playing(p_md) )
-        {
-            libvlc_toggle_fullscreen(p_md);
-        }
-    }
-    return result;
-};
-
-STDMETHODIMP VLCControl::get_Length(int *seconds)
-{
-    if( NULL == seconds )
-        return E_POINTER;
-    *seconds = 0;
-
-    libvlc_media_player_t *p_md;
-    HRESULT result = _p_instance->getMD(&p_md);
-    if( SUCCEEDED(result) )
-    {
-        *seconds = (double)libvlc_media_player_get_length(p_md);
-    }
-    return result;
-
-};
-
-STDMETHODIMP VLCControl::playFaster(void)
-{
-    int32_t rate = 2;
-
-    libvlc_media_player_t *p_md;
-    HRESULT result = _p_instance->getMD(&p_md);
-
-    if( SUCCEEDED(result) )
-    {
-        libvlc_media_player_set_rate(p_md, rate);
-    }
-    return result;
-};
-
-STDMETHODIMP VLCControl::playSlower(void)
-{
-    float rate = 0.5;
-
-    libvlc_media_player_t *p_md;
-    HRESULT result = _p_instance->getMD(&p_md);
-    if( SUCCEEDED(result) )
-    {
-        libvlc_media_player_set_rate(p_md, rate);
-    }
-    return result;
-};
-
-STDMETHODIMP VLCControl::get_Volume(int *volume)
-{
-    if( NULL == volume )
-        return E_POINTER;
-
-    *volume  = _p_instance->getVolume();
-    return S_OK;
-};
-
-STDMETHODIMP VLCControl::put_Volume(int volume)
-{
-    _p_instance->setVolume(volume);
-    return S_OK;
-};
-
-STDMETHODIMP VLCControl::toggleMute(void)
-{
-    libvlc_media_player_t *p_md;
-    HRESULT result = _p_instance->getMD(&p_md);
-    if( SUCCEEDED(result) )
-        libvlc_audio_toggle_mute(p_md);
-    return result;
-};
-
-STDMETHODIMP VLCControl::setVariable(BSTR name, VARIANT value)
-{
-    libvlc_instance_t* p_libvlc;
-    HRESULT result = _p_instance->getVLC(&p_libvlc);
-    if( SUCCEEDED(result) )
-    {
-        _p_instance->setErrorInfo(IID_IVLCControl,
-            "setVariable() is an unsafe interface to use. "
-            "It has been removed because of security implications." );
-    }
-    return E_FAIL;
-};
-
-STDMETHODIMP VLCControl::getVariable(BSTR name, VARIANT *value)
-{
-    libvlc_instance_t* p_libvlc;
-    HRESULT result = _p_instance->getVLC(&p_libvlc);
-    if( SUCCEEDED(result) )
-    {
-        _p_instance->setErrorInfo(IID_IVLCControl,
-            "getVariable() is an unsafe interface to use. "
-            "It has been removed because of security implications." );
-    }
-    return E_FAIL;
-};
-
-void VLCControl::FreeTargetOptions(char **cOptions, int cOptionCount)
-{
-    // clean up
-    if( NULL != cOptions )
-    {
-        for( int pos=0; pos<cOptionCount; ++pos )
-        {
-            char *cOption = cOptions[pos];
-            if( NULL != cOption )
-                CoTaskMemFree(cOption);
-            else
-                break;
-        }
-        CoTaskMemFree(cOptions);
-    }
-};
-
-static HRESULT parseStringOptions(int codePage, BSTR bstr, char*** cOptions, int *cOptionCount)
-{
-    HRESULT hr = E_INVALIDARG;
-    if( SysStringLen(bstr) > 0 )
-    {
-        hr = E_OUTOFMEMORY;
-        char *s = CStrFromBSTR(codePage, bstr);
-        char *val = s;
-        if( val )
-        {
-            long capacity = 16;
-            char **options = (char **)CoTaskMemAlloc(capacity*sizeof(char *));
-            if( options )
-            {
-                int nOptions = 0;
-
-                char *end = val + strlen(val);
-                while( val < end )
-                {
-                    // skip leading blanks
-                    while( (val < end)
-                        && ((*val == ' ' ) || (*val == '\t')) )
-                        ++val;
-
-                    char *start = val;
-                    // skip till we get a blank character
-                    while( (val < end)
-                        && (*val != ' ' )
-                        && (*val != '\t') )
-                    {
-                        char c = *(val++);
-                        if( ('\'' == c) || ('"' == c) )
-                        {
-                            // skip till end of string
-                            while( (val < end) && (*(val++) != c ) );
-                        }
-                    }
-
-                    if( val > start )
-                    {
-                        if( nOptions == capacity )
-                        {
-                            capacity += 16;
-                            char **moreOptions = (char **)CoTaskMemRealloc(options, capacity*sizeof(char*));
-                            if( ! moreOptions )
-                            {
-                                /* failed to allocate more memory */
-                                CoTaskMemFree(s);
-                                /* return what we got so far */
-                                *cOptionCount = nOptions;
-                                *cOptions = options;
-                                return NOERROR;
-                            }
-                            options = moreOptions;
-                        }
-                        *(val++) = '\0';
-                        options[nOptions] = (char *)CoTaskMemAlloc(val-start);
-                        if( options[nOptions] )
-                        {
-                            memcpy(options[nOptions], start, val-start);
-                            ++nOptions;
-                        }
-                        else
-                        {
-                            /* failed to allocate memory */
-                            CoTaskMemFree(s);
-                            /* return what we got so far */
-                            *cOptionCount = nOptions;
-                            *cOptions = options;
-                            return NOERROR;
-                        }
-                    }
-                    else
-                        // must be end of string
-                        break;
-                }
-                *cOptionCount = nOptions;
-                *cOptions = options;
-                hr = NOERROR;
-            }
-            CoTaskMemFree(s);
-        }
-    }
-    return hr;
-}
-
-HRESULT VLCControl::CreateTargetOptions(int codePage, VARIANT *options, char ***cOptions, int *cOptionCount)
-{
-    HRESULT hr = E_INVALIDARG;
-    if( VT_ERROR == V_VT(options) )
-    {
-        if( DISP_E_PARAMNOTFOUND == V_ERROR(options) )
-        {
-            // optional parameter not set
-            *cOptions = NULL;
-            *cOptionCount = 0;
-            return NOERROR;
-        }
-    }
-    else if( (VT_EMPTY == V_VT(options)) || (VT_NULL == V_VT(options)) )
-    {
-        // null parameter
-        *cOptions = NULL;
-        *cOptionCount = 0;
-        return NOERROR;
-    }
-    else if( VT_DISPATCH == V_VT(options) )
-    {
-        // if object is a collection, retrieve enumerator
-        VARIANT colEnum;
-        V_VT(&colEnum) = VT_UNKNOWN;
-        hr = GetObjectProperty(V_DISPATCH(options), DISPID_NEWENUM, colEnum);
-        if( SUCCEEDED(hr) )
-        {
-            IEnumVARIANT *enumVar;
-            hr = V_UNKNOWN(&colEnum)->QueryInterface(IID_IEnumVARIANT, (LPVOID *)&enumVar);
-            if( SUCCEEDED(hr) )
-            {
-                long pos = 0;
-                long capacity = 16;
-                VARIANT option;
-
-                *cOptions = (char **)CoTaskMemAlloc(capacity*sizeof(char *));
-                if( NULL != *cOptions )
-                {
-                    ZeroMemory(*cOptions, sizeof(char *)*capacity);
-                    while( SUCCEEDED(hr) && (S_OK == enumVar->Next(1, &option, NULL)) )
-                    {
-                        if( VT_BSTR == V_VT(&option) )
-                        {
-                            char *cOption = CStrFromBSTR(codePage, V_BSTR(&option));
-                            (*cOptions)[pos] = cOption;
-                            if( NULL != cOption )
-                            {
-                                ++pos;
-                                if( pos == capacity )
-                                {
-                                    char **moreOptions = (char **)CoTaskMemRealloc(*cOptions, (capacity+16)*sizeof(char *));
-                                    if( NULL != moreOptions )
-                                    {
-                                        ZeroMemory(moreOptions+capacity, sizeof(char *)*16);
-                                        capacity += 16;
-                                        *cOptions = moreOptions;
-                                    }
-                                    else
-                                        hr = E_OUTOFMEMORY;
-                                }
-                            }
-                            else
-                                hr = ( SysStringLen(V_BSTR(&option)) > 0 ) ?
-                                    E_OUTOFMEMORY : E_INVALIDARG;
-                        }
-                        else
-                            hr = E_INVALIDARG;
-
-                        VariantClear(&option);
-                    }
-                    *cOptionCount = pos;
-                    if( FAILED(hr) )
-                    {
-                        // free already processed elements
-                        FreeTargetOptions(*cOptions, *cOptionCount);
-                    }
-                }
-                else
-                    hr = E_OUTOFMEMORY;
-
-                enumVar->Release();
-            }
-        }
-        else
-        {
-            // coerce object into a string and parse it
-            VARIANT v_name;
-            VariantInit(&v_name);
-            hr = VariantChangeType(&v_name, options, 0, VT_BSTR);
-            if( SUCCEEDED(hr) )
-            {
-                hr = parseStringOptions(codePage, V_BSTR(&v_name), cOptions, cOptionCount);
-                VariantClear(&v_name);
-            }
-        }
-    }
-    else if( V_ISARRAY(options) )
-    {
-        // array parameter
-        SAFEARRAY *array = V_ISBYREF(options) ? *V_ARRAYREF(options) : V_ARRAY(options);
-
-        if( SafeArrayGetDim(array) != 1 )
-            return E_INVALIDARG;
-
-        long lBound = 0;
-        long uBound = 0;
-        SafeArrayGetLBound(array, 1, &lBound);
-        SafeArrayGetUBound(array, 1, &uBound);
-
-        // have we got any options
-        if( uBound >= lBound )
-        {
-            VARTYPE vType;
-            hr = SafeArrayGetVartype(array, &vType);
-            if( FAILED(hr) )
-                return hr;
-
-            long pos;
-
-            // marshall options into an array of C strings
-            if( VT_VARIANT == vType )
-            {
-                *cOptions = (char **)CoTaskMemAlloc(sizeof(char *)*(uBound-lBound+1));
-                if( NULL == *cOptions )
-                    return E_OUTOFMEMORY;
-
-                ZeroMemory(*cOptions, sizeof(char *)*(uBound-lBound+1));
-                for(pos=lBound; (pos<=uBound) && SUCCEEDED(hr); ++pos )
-                {
-                    VARIANT option;
-                    hr = SafeArrayGetElement(array, &pos, &option);
-                    if( SUCCEEDED(hr) )
-                    {
-                        if( VT_BSTR == V_VT(&option) )
-                        {
-                            char *cOption = CStrFromBSTR(codePage, V_BSTR(&option));
-                            (*cOptions)[pos-lBound] = cOption;
-                            if( NULL == cOption )
-                                hr = ( SysStringLen(V_BSTR(&option)) > 0 ) ?
-                                    E_OUTOFMEMORY : E_INVALIDARG;
-                        }
-                        else
-                            hr = E_INVALIDARG;
-                        VariantClear(&option);
-                    }
-                }
-            }
-            else if( VT_BSTR == vType )
-            {
-                *cOptions = (char **)CoTaskMemAlloc(sizeof(char *)*(uBound-lBound+1));
-                if( NULL == *cOptions )
-                    return E_OUTOFMEMORY;
-
-                ZeroMemory(*cOptions, sizeof(char *)*(uBound-lBound+1));
-                for(pos=lBound; (pos<=uBound) && SUCCEEDED(hr); ++pos )
-                {
-                    BSTR option;
-                    hr = SafeArrayGetElement(array, &pos, &option);
-                    if( SUCCEEDED(hr) )
-                    {
-                        char *cOption = CStrFromBSTR(codePage, option);
-
-                        (*cOptions)[pos-lBound] = cOption;
-                        if( NULL == cOption )
-                            hr = ( SysStringLen(option) > 0 ) ?
-                                E_OUTOFMEMORY : E_INVALIDARG;
-                        SysFreeString(option);
-                    }
-                }
-            }
-            else
-            {
-                // unsupported type
-                return E_INVALIDARG;
-            }
-
-            *cOptionCount = pos-lBound;
-            if( FAILED(hr) )
-            {
-                // free already processed elements
-                FreeTargetOptions(*cOptions, *cOptionCount);
-            }
-        }
-        else
-        {
-            // empty array
-            *cOptions = NULL;
-            *cOptionCount = 0;
-            return NOERROR;
-        }
-    }
-    else if( VT_UNKNOWN == V_VT(options) )
-    {
-        // coerce object into a string and parse it
-        VARIANT v_name;
-        VariantInit(&v_name);
-        hr = VariantChangeType(&v_name, options, 0, VT_BSTR);
-        if( SUCCEEDED(hr) )
-        {
-            hr = parseStringOptions(codePage, V_BSTR(&v_name), cOptions, cOptionCount);
-            VariantClear(&v_name);
-        }
-    }
-    else if( VT_BSTR == V_VT(options) )
-    {
-        hr = parseStringOptions(codePage, V_BSTR(options), cOptions, cOptionCount);
-    }
-    return hr;
-};
-
-/*
-** use VARIANT rather than a SAFEARRAY as argument type
-** for compatibility with some scripting language (JScript)
-*/
-
-STDMETHODIMP VLCControl::addTarget(BSTR uri, VARIANT options, enum VLCPlaylistMode mode, int position)
-{
-    if( 0 == SysStringLen(uri) )
-        return E_INVALIDARG;
-
-    libvlc_instance_t *p_libvlc;
-    HRESULT hr = _p_instance->getVLC(&p_libvlc);
-    if( SUCCEEDED(hr) )
-    {
-        char *cUri = CStrFromBSTR(CP_UTF8, uri);
-        if( NULL == cUri )
-            return E_OUTOFMEMORY;
-
-        int cOptionsCount;
-        char **cOptions;
-
-        if( FAILED(CreateTargetOptions(CP_UTF8, &options, &cOptions, &cOptionsCount)) )
-            return E_INVALIDARG;
-
-        position = _p_instance->playlist_add_extended_untrusted(cUri,
-                       cOptionsCount, const_cast<const char**>(cOptions));
-
-        FreeTargetOptions(cOptions, cOptionsCount);
-        CoTaskMemFree(cUri);
-
-        if( position >= 0 )
-        {
-            if( mode & VLCPlayListAppendAndGo )
-                _p_instance->fireOnPlayEvent();
-        }
-        else
-        {
-            if( mode & VLCPlayListAppendAndGo )
-                _p_instance->fireOnStopEvent();
-        }
-    }
-    return hr;
-};
-
-STDMETHODIMP VLCControl::get_PlaylistIndex(int *index)
-{
-    if( NULL == index )
-        return E_POINTER;
-
-    *index = 0;
-    libvlc_instance_t *p_libvlc;
-    HRESULT result = _p_instance->getVLC(&p_libvlc);
-    if( SUCCEEDED(result) )
-    {
-        *index = _p_instance->playlist_get_current_index();
-    }
-    return result;
-};
-
-STDMETHODIMP VLCControl::get_PlaylistCount(int *count)
-{
-    if( NULL == count )
-        return E_POINTER;
-
-    *count = _p_instance->playlist_count();
-    return S_OK;
-};
-
-STDMETHODIMP VLCControl::playlistNext(void)
-{
-    libvlc_instance_t* p_libvlc;
-    HRESULT result = _p_instance->getVLC(&p_libvlc);
-    if( SUCCEEDED(result) )
-    {
-        _p_instance->playlist_next();
-    }
-    return result;
-};
-
-STDMETHODIMP VLCControl::playlistPrev(void)
-{
-    libvlc_instance_t* p_libvlc;
-    HRESULT result = _p_instance->getVLC(&p_libvlc);
-    if( SUCCEEDED(result) )
-    {
-        _p_instance->playlist_prev();
-    }
-    return result;
-};
-
-STDMETHODIMP VLCControl::playlistClear(void)
-{
-    libvlc_instance_t* p_libvlc;
-    HRESULT result = _p_instance->getVLC(&p_libvlc);
-    if( SUCCEEDED(result) )
-    {
-        _p_instance->playlist_clear();
-    }
-    return result;
-};
-
-STDMETHODIMP VLCControl::get_VersionInfo(BSTR *version)
-{
-    if( NULL == version )
-        return E_POINTER;
-
-    const char *versionStr = libvlc_get_version();
-    if( NULL != versionStr )
-    {
-        *version = BSTRFromCStr(CP_UTF8, versionStr);
-        return (NULL == *version) ? E_OUTOFMEMORY : NOERROR;
-    }
-    *version = NULL;
-    return E_FAIL;
-};
-
-STDMETHODIMP VLCControl::get_MRL(BSTR *mrl)
-{
-    if( NULL == mrl )
-        return E_POINTER;
-
-    *mrl = SysAllocStringLen(_p_instance->getMRL(),
-                SysStringLen(_p_instance->getMRL()));
-    return S_OK;
-};
-
-STDMETHODIMP VLCControl::put_MRL(BSTR mrl)
-{
-    _p_instance->setMRL(mrl);
-
-    return S_OK;
-};
-
-STDMETHODIMP VLCControl::get_AutoPlay(VARIANT_BOOL *autoplay)
-{
-    if( NULL == autoplay )
-        return E_POINTER;
-
-    *autoplay = _p_instance->getAutoPlay() ? VARIANT_TRUE: VARIANT_FALSE;
-    return S_OK;
-};
-
-STDMETHODIMP VLCControl::put_AutoPlay(VARIANT_BOOL autoplay)
-{
-    _p_instance->setAutoPlay((VARIANT_FALSE != autoplay) ? TRUE: FALSE);
-    return S_OK;
-};
-
-STDMETHODIMP VLCControl::get_AutoLoop(VARIANT_BOOL *autoloop)
-{
-    if( NULL == autoloop )
-        return E_POINTER;
-
-    *autoloop = _p_instance->getAutoLoop() ? VARIANT_TRUE: VARIANT_FALSE;
-    return S_OK;
-};
-
-STDMETHODIMP VLCControl::put_AutoLoop(VARIANT_BOOL autoloop)
-{
-    _p_instance->setAutoLoop((VARIANT_FALSE != autoloop) ? TRUE: FALSE);
-    return S_OK;
-};
diff --git a/projects/activex/vlccontrol.h b/projects/activex/vlccontrol.h
deleted file mode 100644 (file)
index a1c6a16..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-/*****************************************************************************
- * vlccontrol.h: ActiveX control for VLC
- *****************************************************************************
- * Copyright (C) 2005-2010 the VideoLAN team
- *
- * Authors: Damien Fouilleul <Damien.Fouilleul@laposte.net>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#ifndef _VLCCONTROL_H_
-#define _VLCCONTROL_H_
-
-#include "axvlc_idl.h"
-
-class VLCControl : public IVLCControl
-{
-public:
-
-    VLCControl(VLCPlugin *p_instance):
-        _p_instance(p_instance), _p_typeinfo(NULL) { }
-    virtual ~VLCControl();
-
-    // IUnknown methods
-    STDMETHODIMP QueryInterface(REFIID riid, void **ppv)
-    {
-        if( NULL == ppv )
-          return E_POINTER;
-        if( (IID_IUnknown == riid)
-         || (IID_IDispatch == riid)
-         || (IID_IVLCControl == riid) )
-        {
-            AddRef();
-            *ppv = reinterpret_cast<LPVOID>(this);
-            return NOERROR;
-        }
-        return _p_instance->pUnkOuter->QueryInterface(riid, ppv);
-    }
-
-    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*);
-
-    // IVLCControl methods
-    STDMETHODIMP play(void);
-    STDMETHODIMP get_Visible(VARIANT_BOOL *visible);
-    STDMETHODIMP put_Visible(VARIANT_BOOL visible);
-    STDMETHODIMP pause(void);
-    STDMETHODIMP stop(void);
-    STDMETHODIMP get_Playing(VARIANT_BOOL *isPlaying);
-    STDMETHODIMP get_Position(float *position);
-    STDMETHODIMP put_Position(float position);
-    STDMETHODIMP get_Time(int *seconds);
-    STDMETHODIMP put_Time(int seconds);
-    STDMETHODIMP shuttle(int seconds);
-    STDMETHODIMP fullscreen();
-    STDMETHODIMP get_Length(int *seconds);
-    STDMETHODIMP playFaster(void);
-    STDMETHODIMP playSlower(void);
-    STDMETHODIMP get_Volume(int *volume);
-    STDMETHODIMP put_Volume(int volume);
-    STDMETHODIMP toggleMute(void);
-    STDMETHODIMP setVariable( BSTR name, VARIANT value);
-    STDMETHODIMP getVariable( BSTR name, VARIANT *value);
-    STDMETHODIMP addTarget( BSTR uri, VARIANT options, enum VLCPlaylistMode mode, int position);
-    STDMETHODIMP get_PlaylistIndex(int *index);
-    STDMETHODIMP get_PlaylistCount(int *count);
-    STDMETHODIMP playlistNext(void);
-    STDMETHODIMP playlistPrev(void);
-    STDMETHODIMP playlistClear(void);
-    STDMETHODIMP get_VersionInfo(BSTR *version);
-    STDMETHODIMP get_MRL(BSTR *mrl);
-    STDMETHODIMP put_MRL(BSTR mrl);
-    STDMETHODIMP get_AutoLoop(VARIANT_BOOL *autoloop);
-    STDMETHODIMP put_AutoLoop(VARIANT_BOOL autoloop);
-    STDMETHODIMP get_AutoPlay(VARIANT_BOOL *autoplay);
-    STDMETHODIMP put_AutoPlay(VARIANT_BOOL autoplay);
-
-    static HRESULT CreateTargetOptions(int codePage, VARIANT *options, char ***cOptions, int *cOptionCount);
-    static void FreeTargetOptions(char **cOptions, int cOptionCount);
-
-private:
-
-    HRESULT      getTypeInfo();
-
-    VLCPlugin *_p_instance;
-    ITypeInfo *_p_typeinfo;
-};
-
-#endif
diff --git a/projects/activex/vlccontrol2.cpp b/projects/activex/vlccontrol2.cpp
deleted file mode 100644 (file)
index 2940e4e..0000000
+++ /dev/null
@@ -1,1497 +0,0 @@
-/*****************************************************************************
- * vlccontrol2.cpp: ActiveX control for VLC
- *****************************************************************************
- * Copyright (C) 2006 the VideoLAN team
- * Copyright (C) 2010 M2X BV
- *
- * Authors: Damien Fouilleul <Damien.Fouilleul@laposte.net>
- *          Jean-Paul Saman <jpsaman _at_ m2x _dot_ nl>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#include <stdio.h>
-#include <shlwapi.h>
-#include <wininet.h>
-#include <tchar.h>
-
-#include "utils.h"
-#include "plugin.h"
-#include "vlccontrol2.h"
-#include "vlccontrol.h"
-
-#include "position.h"
-
-// ---------
-
-HRESULT VLCInterfaceBase::loadTypeInfo(REFIID riid)
-{
-    // if( _ti ) return NOERROR; // unnecessairy
-
-    ITypeLib *p_typelib;
-    HRESULT hr = _plug->getTypeLib(LOCALE_USER_DEFAULT, &p_typelib);
-    if( SUCCEEDED(hr) )
-    {
-        hr = p_typelib->GetTypeInfoOfGuid(riid, &_ti);
-        if( FAILED(hr) ) _ti = NULL;
-        p_typelib->Release();
-    }
-    return hr;
-}
-
-#define BIND_INTERFACE( class ) \
-    template<> REFIID VLCInterface<class, I##class>::_riid = IID_I##class;
-
-BIND_INTERFACE( VLCAudio )
-BIND_INTERFACE( VLCInput )
-BIND_INTERFACE( VLCMarquee )
-BIND_INTERFACE( VLCLogo )
-BIND_INTERFACE( VLCDeinterlace )
-BIND_INTERFACE( VLCPlaylistItems )
-BIND_INTERFACE( VLCPlaylist )
-BIND_INTERFACE( VLCVideo )
-BIND_INTERFACE( VLCSubtitle )
-
-#undef  BIND_INTERFACE
-
-template<class I> static inline
-HRESULT object_get(I **dst, I *src)
-{
-    if( NULL == dst )
-        return E_POINTER;
-
-    *dst = src;
-    if( NULL != src )
-    {
-        src->AddRef();
-        return NOERROR;
-    }
-    return E_OUTOFMEMORY;
-}
-
-static inline
-VARIANT_BOOL varbool(bool b) { return b ? VARIANT_TRUE : VARIANT_FALSE; }
-
-// ---------
-
-STDMETHODIMP VLCAudio::get_mute(VARIANT_BOOL* mute)
-{
-    if( NULL == mute )
-        return E_POINTER;
-
-    libvlc_media_player_t *p_md;
-    HRESULT hr = getMD(&p_md);
-    if( SUCCEEDED(hr) )
-        *mute = varbool( libvlc_audio_get_mute(p_md) );
-    return hr;
-};
-
-STDMETHODIMP VLCAudio::put_mute(VARIANT_BOOL mute)
-{
-    libvlc_media_player_t *p_md;
-    HRESULT hr = getMD(&p_md);
-    if( SUCCEEDED(hr) )
-        libvlc_audio_set_mute(p_md, VARIANT_FALSE != mute);
-    return hr;
-};
-
-STDMETHODIMP VLCAudio::get_volume(long* volume)
-{
-    if( NULL == volume )
-        return E_POINTER;
-
-    libvlc_media_player_t *p_md;
-    HRESULT hr = getMD(&p_md);
-    if( SUCCEEDED(hr) )
-        *volume = libvlc_audio_get_volume(p_md);
-    return hr;
-};
-
-STDMETHODIMP VLCAudio::put_volume(long volume)
-{
-    libvlc_media_player_t *p_md;
-    HRESULT hr = getMD(&p_md);
-    if( SUCCEEDED(hr) )
-    {
-        libvlc_audio_set_volume(p_md, volume);
-    }
-    return hr;
-};
-
-STDMETHODIMP VLCAudio::get_track(long* track)
-{
-    if( NULL == track )
-        return E_POINTER;
-
-    libvlc_media_player_t* p_md;
-    HRESULT hr = getMD(&p_md);
-    if( SUCCEEDED(hr) )
-    {
-        *track = libvlc_audio_get_track(p_md);
-    }
-    return hr;
-};
-
-STDMETHODIMP VLCAudio::put_track(long track)
-{
-    libvlc_media_player_t *p_md;
-    HRESULT hr = getMD(&p_md);
-    if( SUCCEEDED(hr) )
-    {
-        libvlc_audio_set_track(p_md, track);
-    }
-    return hr;
-};
-
-STDMETHODIMP VLCAudio::get_count(long* trackNumber)
-{
-    if( NULL == trackNumber )
-        return E_POINTER;
-
-    libvlc_media_player_t* p_md;
-    HRESULT hr = getMD(&p_md);
-    if( SUCCEEDED(hr) )
-    {
-        // get the number of audio track available and return it
-        *trackNumber = libvlc_audio_get_track_count(p_md);
-    }
-    return hr;
-};
-
-
-STDMETHODIMP VLCAudio::description(long trackID, BSTR* name)
-{
-    if( NULL == name )
-        return E_POINTER;
-
-    libvlc_media_player_t* p_md;
-
-    HRESULT hr = getMD(&p_md);
-    if( SUCCEEDED(hr) )
-    {
-        int i, i_limit;
-        const char *psz_name;
-        libvlc_track_description_t *p_trackDesc;
-
-        // get tracks description
-        p_trackDesc = libvlc_audio_get_track_description(p_md);
-        if( !p_trackDesc )
-            return E_FAIL;
-
-        //get the number of available track
-        i_limit = libvlc_audio_get_track_count(p_md);
-        if( i_limit < 0 )
-            return E_FAIL;
-
-        // check if the number given is a good one
-        if ( ( trackID > ( i_limit -1 ) ) || ( trackID < 0 ) )
-                return E_FAIL;
-
-        // get the good trackDesc
-        for( i = 0 ; i < trackID ; i++ )
-        {
-            p_trackDesc = p_trackDesc->p_next;
-        }
-        // get the track name
-        psz_name = p_trackDesc->psz_name;
-
-        // return it
-        if( psz_name != NULL )
-        {
-            *name = BSTRFromCStr(CP_UTF8, psz_name);
-            return (NULL == *name) ? E_OUTOFMEMORY : NOERROR;
-        }
-        *name = NULL;
-        return E_FAIL;
-    }
-    return hr;
-};
-
-STDMETHODIMP VLCAudio::get_channel(long *channel)
-{
-    if( NULL == channel )
-        return E_POINTER;
-
-    libvlc_media_player_t *p_md;
-    HRESULT hr = getMD(&p_md);
-    if( SUCCEEDED(hr) )
-    {
-        *channel = libvlc_audio_get_channel(p_md);
-    }
-    return hr;
-};
-
-STDMETHODIMP VLCAudio::put_channel(long channel)
-{
-    libvlc_media_player_t *p_md;
-    HRESULT hr = getMD(&p_md);
-    if( SUCCEEDED(hr) )
-    {
-        libvlc_audio_set_channel(p_md, channel);
-    }
-    return hr;
-};
-
-STDMETHODIMP VLCAudio::toggleMute()
-{
-    libvlc_media_player_t *p_md;
-    HRESULT hr = getMD(&p_md);
-    if( SUCCEEDED(hr) )
-        libvlc_audio_toggle_mute(p_md);
-    return hr;
-};
-
-/****************************************************************************/
-
-STDMETHODIMP VLCDeinterlace::disable()
-{
-    libvlc_media_player_t *p_md;
-    HRESULT hr = getMD(&p_md);
-    if( SUCCEEDED(hr) )
-    {
-        libvlc_video_set_deinterlace(p_md, "");
-    }
-    return hr;
-}
-
-STDMETHODIMP VLCDeinterlace::enable(BSTR mode)
-{
-    libvlc_media_player_t *p_md;
-    HRESULT hr = getMD(&p_md);
-    if( SUCCEEDED(hr) )
-    {
-        char *psz_mode = CStrFromBSTR(CP_UTF8, mode);
-        libvlc_video_set_deinterlace(p_md, psz_mode);
-        CoTaskMemFree(psz_mode);
-    }
-    return hr;
-}
-
-/****************************************************************************/
-
-STDMETHODIMP VLCInput::get_length(double* length)
-{
-    if( NULL == length )
-        return E_POINTER;
-    *length = 0;
-
-    libvlc_media_player_t *p_md;
-    HRESULT hr = getMD(&p_md);
-    if( SUCCEEDED(hr) )
-    {
-        *length = (double)libvlc_media_player_get_length(p_md);
-    }
-    return hr;
-};
-
-STDMETHODIMP VLCInput::get_position(double* position)
-{
-    if( NULL == position )
-        return E_POINTER;
-
-    *position = 0.0f;
-    libvlc_media_player_t *p_md;
-    HRESULT hr = getMD(&p_md);
-    if( SUCCEEDED(hr) )
-    {
-        *position = libvlc_media_player_get_position(p_md);
-    }
-    return hr;
-};
-
-STDMETHODIMP VLCInput::put_position(double position)
-{
-    libvlc_media_player_t *p_md;
-    HRESULT hr = getMD(&p_md);
-    if( SUCCEEDED(hr) )
-    {
-        libvlc_media_player_set_position(p_md, position);
-    }
-    return hr;
-};
-
-STDMETHODIMP VLCInput::get_time(double* time)
-{
-    if( NULL == time )
-        return E_POINTER;
-
-    libvlc_media_player_t *p_md;
-    HRESULT hr = getMD(&p_md);
-    if( SUCCEEDED(hr) )
-    {
-        *time = (double)libvlc_media_player_get_time(p_md);
-    }
-    return hr;
-};
-
-STDMETHODIMP VLCInput::put_time(double time)
-{
-    libvlc_media_player_t *p_md;
-    HRESULT hr = getMD(&p_md);
-    if( SUCCEEDED(hr) )
-    {
-        libvlc_media_player_set_time(p_md, (int64_t)time);
-    }
-    return hr;
-};
-
-STDMETHODIMP VLCInput::get_state(long* state)
-{
-    if( NULL == state )
-        return E_POINTER;
-
-    libvlc_media_player_t *p_md;
-    HRESULT hr = getMD(&p_md);
-    if( SUCCEEDED(hr) )
-    {
-        *state = libvlc_media_player_get_state(p_md);
-    }
-    return hr;
-};
-
-STDMETHODIMP VLCInput::get_rate(double* rate)
-{
-    if( NULL == rate )
-        return E_POINTER;
-
-    libvlc_media_player_t *p_md;
-    HRESULT hr = getMD(&p_md);
-    if( SUCCEEDED(hr) )
-    {
-        *rate = libvlc_media_player_get_rate(p_md);
-    }
-    return hr;
-};
-
-STDMETHODIMP VLCInput::put_rate(double rate)
-{
-    libvlc_media_player_t *p_md;
-    HRESULT hr = getMD(&p_md);
-    if( SUCCEEDED(hr) )
-    {
-        libvlc_media_player_set_rate(p_md, rate);
-    }
-    return hr;
-};
-
-STDMETHODIMP VLCInput::get_fps(double* fps)
-{
-    if( NULL == fps )
-        return E_POINTER;
-
-    *fps = 0.0;
-    libvlc_media_player_t *p_md;
-    HRESULT hr = getMD(&p_md);
-    if( SUCCEEDED(hr) )
-    {
-        *fps = libvlc_media_player_get_fps(p_md);
-    }
-    return hr;
-};
-
-STDMETHODIMP VLCInput::get_hasVout(VARIANT_BOOL* hasVout)
-{
-    if( NULL == hasVout )
-        return E_POINTER;
-
-    libvlc_media_player_t *p_md;
-    HRESULT hr = getMD(&p_md);
-    if( SUCCEEDED(hr) )
-    {
-        *hasVout = varbool( libvlc_media_player_has_vout(p_md) );
-    }
-    return hr;
-};
-
-/****************************************************************************/
-
-HRESULT VLCMarquee::do_put_int(unsigned idx, LONG val)
-{
-    libvlc_media_player_t *p_md;
-    HRESULT hr = getMD(&p_md);
-    if( SUCCEEDED(hr) )
-    {
-        libvlc_video_set_marquee_int(p_md, idx, val);
-    }
-    return hr;
-}
-
-HRESULT VLCMarquee::do_get_int(unsigned idx, LONG *val)
-{
-    if( NULL == val )
-        return E_POINTER;
-
-    libvlc_media_player_t *p_md;
-    HRESULT hr = getMD(&p_md);
-    if( SUCCEEDED(hr) )
-    {
-        *val = libvlc_video_get_marquee_int(p_md, idx);
-    }
-    return hr;
-}
-
-STDMETHODIMP VLCMarquee::get_position(BSTR* val)
-{
-    if( NULL == val )
-        return E_POINTER;
-
-    LONG i;
-    HRESULT hr = do_get_int(libvlc_marquee_Position, &i);
-    if(SUCCEEDED(hr))
-        *val = BSTRFromCStr(CP_UTF8, position_bynumber(i));
-
-    return hr;
-}
-
-STDMETHODIMP VLCMarquee::put_position(BSTR val)
-{
-    char *n = CStrFromBSTR(CP_UTF8, val);
-    if( !n ) return E_OUTOFMEMORY;
-
-    size_t i;
-    HRESULT hr;
-    if( position_byname( n, i ) )
-        hr = do_put_int(libvlc_marquee_Position,i);
-    else
-        hr = E_INVALIDARG;
-
-    CoTaskMemFree(n);
-    return hr;
-}
-
-STDMETHODIMP VLCMarquee::get_text(BSTR *val)
-{
-    char *psz;
-    if( NULL == val )
-        return E_POINTER;
-
-    libvlc_media_player_t *p_md;
-    HRESULT hr = getMD(&p_md);
-    if( SUCCEEDED(hr) )
-    {
-        psz = libvlc_video_get_marquee_string(p_md, libvlc_marquee_Text);
-        if( psz )
-            *val = BSTRFromCStr(CP_UTF8, psz);
-    }
-    return hr;
-}
-
-STDMETHODIMP VLCMarquee::put_text(BSTR val)
-{
-    libvlc_media_player_t *p_md;
-    HRESULT hr = getMD(&p_md);
-    if( SUCCEEDED(hr) )
-    {
-        char *psz_text = CStrFromBSTR(CP_UTF8, val);
-        libvlc_video_set_marquee_string(p_md, libvlc_marquee_Text, psz_text);
-        CoTaskMemFree(psz_text);
-    }
-    return hr;
-}
-
-/****************************************************************************/
-
-STDMETHODIMP VLCPlaylistItems::get_count(long* count)
-{
-    if( NULL == count )
-        return E_POINTER;
-
-    *count = Instance()->playlist_count();
-    return S_OK;
-};
-
-STDMETHODIMP VLCPlaylistItems::clear()
-{
-    Instance()->playlist_clear();
-    return S_OK;
-};
-
-STDMETHODIMP VLCPlaylistItems::remove(long item)
-{
-    libvlc_instance_t* p_libvlc;
-    HRESULT hr = getVLC(&p_libvlc);
-    if( SUCCEEDED(hr) )
-    {
-        Instance()->playlist_delete_item(item);
-    }
-    return hr;
-};
-
-/****************************************************************************/
-
-STDMETHODIMP VLCPlaylist::get_itemCount(long* count)
-{
-    if( NULL == count )
-        return E_POINTER;
-
-    *count = 0;
-    *count = Instance()->playlist_count();
-    return S_OK;
-};
-
-STDMETHODIMP VLCPlaylist::get_isPlaying(VARIANT_BOOL* isPlaying)
-{
-    if( NULL == isPlaying )
-        return E_POINTER;
-
-    libvlc_media_player_t *p_md;
-    HRESULT hr = getMD(&p_md);
-    if( SUCCEEDED(hr) )
-    {
-        *isPlaying = varbool( libvlc_media_player_is_playing(p_md) );
-    }
-    return hr;
-};
-
-STDMETHODIMP VLCPlaylist::add(BSTR uri, VARIANT name, VARIANT options, long* item)
-{
-    if( NULL == item )
-        return E_POINTER;
-
-    if( 0 == SysStringLen(uri) )
-        return E_INVALIDARG;
-
-    libvlc_instance_t* p_libvlc;
-    HRESULT hr = getVLC(&p_libvlc);
-    if( SUCCEEDED(hr) )
-    {
-        char *psz_uri = NULL;
-        if( SysStringLen(Instance()->getBaseURL()) > 0 )
-        {
-            /*
-            ** if the MRL a relative URL, we should end up with an absolute URL
-            */
-            LPWSTR abs_url = CombineURL(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;
-        char **ppsz_options;
-
-        hr = VLCControl::CreateTargetOptions(CP_UTF8, &options, &ppsz_options, &i_options);
-        if( FAILED(hr) )
-        {
-            CoTaskMemFree(psz_uri);
-            return hr;
-        }
-
-        char *psz_name = NULL;
-        VARIANT v_name;
-        VariantInit(&v_name);
-        if( SUCCEEDED(VariantChangeType(&v_name, &name, 0, VT_BSTR)) )
-        {
-            if( SysStringLen(V_BSTR(&v_name)) > 0 )
-                psz_name = CStrFromBSTR(CP_UTF8, V_BSTR(&v_name));
-
-            VariantClear(&v_name);
-        }
-
-        *item = Instance()->playlist_add_extended_untrusted(psz_uri,
-                    i_options, const_cast<const char **>(ppsz_options));
-
-        VLCControl::FreeTargetOptions(ppsz_options, i_options);
-        CoTaskMemFree(psz_uri);
-        if( psz_name ) /* XXX Do we even need to check? */
-            CoTaskMemFree(psz_name);
-    }
-    return hr;
-};
-
-STDMETHODIMP VLCPlaylist::play()
-{
-    Instance()->playlist_play();
-    return S_OK;
-};
-
-STDMETHODIMP VLCPlaylist::playItem(long item)
-{
-    Instance()->playlist_play_item(item);
-    return S_OK;
-};
-
-STDMETHODIMP VLCPlaylist::togglePause()
-{
-    libvlc_media_player_t* p_md;
-    HRESULT hr = getMD(&p_md);
-    if( SUCCEEDED(hr) )
-    {
-        libvlc_media_player_pause(p_md);
-    }
-    return hr;
-};
-
-STDMETHODIMP VLCPlaylist::stop()
-{
-    libvlc_media_player_t *p_md;
-    HRESULT hr = getMD(&p_md);
-    if( SUCCEEDED(hr) )
-    {
-        libvlc_media_player_stop(p_md);
-    }
-    return hr;
-};
-
-STDMETHODIMP VLCPlaylist::next()
-{
-    Instance()->playlist_next();
-    return S_OK;
-};
-
-STDMETHODIMP VLCPlaylist::prev()
-{
-    Instance()->playlist_prev();
-    return S_OK;
-};
-
-STDMETHODIMP VLCPlaylist::clear()
-{
-    Instance()->playlist_clear();
-    return S_OK;
-};
-
-STDMETHODIMP VLCPlaylist::removeItem(long item)
-{
-    libvlc_instance_t* p_libvlc;
-    HRESULT hr = getVLC(&p_libvlc);
-    if( SUCCEEDED(hr) )
-    {
-        Instance()->playlist_delete_item(item);
-    }
-    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;
-};
-
-/****************************************************************************/
-
-STDMETHODIMP VLCSubtitle::get_track(long* spu)
-{
-    if( NULL == spu )
-        return E_POINTER;
-
-    libvlc_media_player_t *p_md;
-    HRESULT hr = getMD(&p_md);
-    if( SUCCEEDED(hr) )
-    {
-        *spu = libvlc_video_get_spu(p_md);
-    }
-    return hr;
-};
-
-STDMETHODIMP VLCSubtitle::put_track(long spu)
-{
-    libvlc_media_player_t *p_md;
-    HRESULT hr = getMD(&p_md);
-    if( SUCCEEDED(hr) )
-    {
-        libvlc_video_set_spu(p_md, spu);
-    }
-    return hr;
-};
-
-STDMETHODIMP VLCSubtitle::get_count(long* spuNumber)
-{
-    if( NULL == spuNumber )
-        return E_POINTER;
-
-    libvlc_media_player_t *p_md;
-    HRESULT hr = getMD(&p_md);
-    if( SUCCEEDED(hr) )
-    {
-        // get the number of video subtitle available and return it
-        *spuNumber = libvlc_video_get_spu_count(p_md);
-    }
-    return hr;
-};
-
-
-STDMETHODIMP VLCSubtitle::description(long nameID, BSTR* name)
-{
-    if( NULL == name )
-       return E_POINTER;
-
-    libvlc_media_player_t* p_md;
-
-    HRESULT hr = getMD(&p_md);
-    if( SUCCEEDED(hr) )
-    {
-        int i, i_limit;
-        const char *psz_name;
-        libvlc_track_description_t *p_spuDesc;
-
-        // get subtitles description
-        p_spuDesc = libvlc_video_get_spu_description(p_md);
-        if( !p_spuDesc )
-            return E_FAIL;
-
-        // get the number of available subtitle
-        i_limit = libvlc_video_get_spu_count(p_md);
-        if( i_limit < 0 )
-            return E_FAIL;
-
-        // check if the number given is a good one
-        if ( ( nameID > ( i_limit -1 ) ) || ( nameID < 0 ) )
-            return E_FAIL;
-
-        // get the good spuDesc
-        for( i = 0 ; i < nameID ; i++ )
-        {
-            p_spuDesc = p_spuDesc->p_next;
-        }
-        // get the subtitle name
-        psz_name = p_spuDesc->psz_name;
-
-        // return it
-        if( psz_name != NULL )
-        {
-            *name = BSTRFromCStr(CP_UTF8, psz_name);
-            return (NULL == *name) ? E_OUTOFMEMORY : NOERROR;
-        }
-        *name = NULL;
-        return E_FAIL;
-    }
-    return hr;
-};
-
-/****************************************************************************/
-
-STDMETHODIMP VLCVideo::get_fullscreen(VARIANT_BOOL* fullscreen)
-{
-    if( NULL == fullscreen )
-        return E_POINTER;
-
-    libvlc_media_player_t *p_md;
-    HRESULT hr = getMD(&p_md);
-    if( SUCCEEDED(hr) )
-    {
-        *fullscreen = varbool( libvlc_get_fullscreen(p_md) );
-    }
-    return hr;
-};
-
-STDMETHODIMP VLCVideo::put_fullscreen(VARIANT_BOOL fullscreen)
-{
-    libvlc_media_player_t *p_md;
-    HRESULT hr = getMD(&p_md);
-    if( SUCCEEDED(hr) )
-    {
-        libvlc_set_fullscreen(p_md, VARIANT_FALSE != fullscreen);
-    }
-    return hr;
-};
-
-STDMETHODIMP VLCVideo::get_width(long* width)
-{
-    if( NULL == width )
-        return E_POINTER;
-
-    libvlc_media_player_t *p_md;
-    HRESULT hr = getMD(&p_md);
-    if( SUCCEEDED(hr) )
-    {
-        *width = libvlc_video_get_width(p_md);
-    }
-    return hr;
-};
-
-STDMETHODIMP VLCVideo::get_height(long* height)
-{
-    if( NULL == height )
-        return E_POINTER;
-
-    libvlc_media_player_t *p_md;
-    HRESULT hr = getMD(&p_md);
-    if( SUCCEEDED(hr) )
-    {
-        *height = libvlc_video_get_height(p_md);
-    }
-    return hr;
-};
-
-STDMETHODIMP VLCVideo::get_aspectRatio(BSTR* aspect)
-{
-    if( NULL == aspect )
-        return E_POINTER;
-
-    libvlc_media_player_t *p_md;
-    HRESULT hr = getMD(&p_md);
-    if( SUCCEEDED(hr) )
-    {
-        char *psz_aspect = libvlc_video_get_aspect_ratio(p_md);
-
-        if( !psz_aspect )
-        {
-            *aspect = BSTRFromCStr(CP_UTF8, psz_aspect);
-            if( NULL == *aspect )
-                hr = E_OUTOFMEMORY;
-        } else if( NULL == psz_aspect)
-                hr = E_OUTOFMEMORY;
-        free( psz_aspect );
-    }
-    return hr;
-};
-
-STDMETHODIMP VLCVideo::put_aspectRatio(BSTR aspect)
-{
-    if( NULL == aspect )
-        return E_POINTER;
-
-    libvlc_media_player_t *p_md;
-    HRESULT hr = getMD(&p_md);
-    if( SUCCEEDED(hr) )
-    {
-        char *psz_aspect = CStrFromBSTR(CP_UTF8, aspect);
-        if( !psz_aspect )
-        {
-            return E_OUTOFMEMORY;
-        }
-
-        libvlc_video_set_aspect_ratio(p_md, psz_aspect);
-
-        CoTaskMemFree(psz_aspect);
-    }
-    return hr;
-};
-
-STDMETHODIMP VLCVideo::get_subtitle(long* spu)
-{
-    if( NULL == spu )
-        return E_POINTER;
-
-    libvlc_media_player_t *p_md;
-    HRESULT hr = getMD(&p_md);
-    if( SUCCEEDED(hr) )
-    {
-        *spu = libvlc_video_get_spu(p_md);
-    }
-    return hr;
-};
-
-STDMETHODIMP VLCVideo::put_subtitle(long spu)
-{
-    libvlc_media_player_t *p_md;
-    HRESULT hr = getMD(&p_md);
-    if( SUCCEEDED(hr) )
-    {
-        libvlc_video_set_spu(p_md, spu);
-    }
-    return hr;
-};
-
-STDMETHODIMP VLCVideo::get_crop(BSTR* geometry)
-{
-    if( NULL == geometry )
-        return E_POINTER;
-
-    libvlc_media_player_t *p_md;
-    HRESULT hr = getMD(&p_md);
-    if( SUCCEEDED(hr) )
-    {
-        char *psz_geometry = libvlc_video_get_crop_geometry(p_md);
-        if( !psz_geometry )
-        {
-            *geometry = BSTRFromCStr(CP_UTF8, psz_geometry);
-            if( !geometry )
-                hr = E_OUTOFMEMORY;
-        } else if( !psz_geometry )
-                hr = E_OUTOFMEMORY;
-        free( psz_geometry );
-    }
-    return hr;
-};
-
-STDMETHODIMP VLCVideo::put_crop(BSTR geometry)
-{
-    if( NULL == geometry )
-        return E_POINTER;
-
-    if( 0 == SysStringLen(geometry) )
-        return E_INVALIDARG;
-
-    libvlc_media_player_t *p_md;
-    HRESULT hr = getMD(&p_md);
-    if( SUCCEEDED(hr) )
-    {
-        char *psz_geometry = CStrFromBSTR(CP_UTF8, geometry);
-        if( !psz_geometry )
-        {
-            return E_OUTOFMEMORY;
-        }
-
-        libvlc_video_set_crop_geometry(p_md, psz_geometry);
-
-        CoTaskMemFree(psz_geometry);
-    }
-    return hr;
-};
-
-STDMETHODIMP VLCVideo::get_teletext(long* page)
-{
-    if( NULL == page )
-        return E_POINTER;
-
-    libvlc_media_player_t *p_md;
-    HRESULT hr = getMD(&p_md);
-    if( SUCCEEDED(hr) )
-    {
-        *page = libvlc_video_get_teletext(p_md);
-    }
-
-    return hr;
-};
-
-STDMETHODIMP VLCVideo::put_teletext(long page)
-{
-    libvlc_media_player_t *p_md;
-    HRESULT hr = getMD(&p_md);
-
-    if( SUCCEEDED(hr) )
-    {
-        libvlc_video_set_teletext(p_md, page);
-    }
-    return hr;
-};
-
-STDMETHODIMP VLCVideo::takeSnapshot(LPPICTUREDISP* picture)
-{
-    if( NULL == picture )
-        return E_POINTER;
-
-    libvlc_media_player_t *p_md;
-    HRESULT hr = getMD(&p_md);
-    if( SUCCEEDED(hr) )
-    {
-        static int uniqueId = 0;
-        TCHAR path[MAX_PATH+1];
-
-        int pathlen = GetTempPath(MAX_PATH-24, path);
-        if( (0 == pathlen) || (pathlen > (MAX_PATH-24)) )
-            return E_FAIL;
-
-        /* check temp directory path by openning it */
-        {
-            HANDLE dirHandle = CreateFile(path, GENERIC_READ,
-                       FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE,
-                       NULL, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, NULL);
-            if( INVALID_HANDLE_VALUE == dirHandle )
-            {
-                Instance()->setErrorInfo(IID_IVLCVideo,
-                        "Invalid temporary directory for snapshot images, check values of TMP, TEMP envars.");
-                return E_FAIL;
-            }
-            else
-            {
-                BY_HANDLE_FILE_INFORMATION bhfi;
-                BOOL res = GetFileInformationByHandle(dirHandle, &bhfi);
-                CloseHandle(dirHandle);
-                if( !res || !(bhfi.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) )
-                {
-                    Instance()->setErrorInfo(IID_IVLCVideo,
-                            "Invalid temporary directory for snapshot images, check values of TMP, TEMP envars.");
-                    return E_FAIL;
-                }
-            }
-        }
-
-        TCHAR filepath[MAX_PATH+1];
-
-        _stprintf(filepath, TEXT("%sAXVLC%lXS%lX.bmp"),
-                 path, GetCurrentProcessId(), ++uniqueId);
-
-#ifdef _UNICODE
-        /* reuse path storage for UTF8 string */
-        char *psz_filepath = (char *)path;
-        WCHAR* wpath = filepath;
-#else
-        char *psz_filepath = path;
-        /* first convert to unicode using current code page */
-        WCHAR wpath[MAX_PATH+1];
-        if( 0 == MultiByteToWideChar(CP_ACP, 0, filepath, -1,
-                                     wpath, sizeof(wpath)/sizeof(WCHAR)) )
-            return E_FAIL;
-#endif
-        /* convert to UTF8 */
-        pathlen = WideCharToMultiByte(CP_UTF8, 0, wpath, -1,
-                                      psz_filepath, sizeof(path), NULL, NULL);
-        // fail if path is 0 or too short (i.e pathlen is the same as
-        // storage size)
-
-        if( (0 == pathlen) || (sizeof(path) == pathlen) )
-            return E_FAIL;
-
-        /* take snapshot into file */
-        if( libvlc_video_take_snapshot(p_md, 0, psz_filepath, 0, 0) == 0 )
-        {
-            /* open snapshot file */
-            HANDLE snapPic = LoadImage(NULL, filepath, IMAGE_BITMAP, 0, 0,
-                                       LR_CREATEDIBSECTION|LR_LOADFROMFILE);
-            if( snapPic )
-            {
-                PICTDESC snapDesc;
-
-                snapDesc.cbSizeofstruct = sizeof(PICTDESC);
-                snapDesc.picType        = PICTYPE_BITMAP;
-                snapDesc.bmp.hbitmap    = (HBITMAP)snapPic;
-                snapDesc.bmp.hpal       = NULL;
-
-                hr = OleCreatePictureIndirect(&snapDesc, IID_IPictureDisp,
-                                              TRUE, (LPVOID*)picture);
-                if( FAILED(hr) )
-                {
-                    *picture = NULL;
-                    DeleteObject(snapPic);
-                }
-            }
-            DeleteFile(filepath);
-        }
-    }
-    return hr;
-};
-
-STDMETHODIMP VLCVideo::toggleFullscreen()
-{
-    libvlc_media_player_t *p_md;
-    HRESULT hr = getMD(&p_md);
-    if( SUCCEEDED(hr) )
-    {
-        libvlc_toggle_fullscreen(p_md);
-    }
-    return hr;
-};
-
-STDMETHODIMP VLCVideo::toggleTeletext()
-{
-    libvlc_media_player_t *p_md;
-    HRESULT hr = getMD(&p_md);
-    if( SUCCEEDED(hr) )
-    {
-        libvlc_toggle_teletext(p_md);
-    }
-    return hr;
-};
-
-STDMETHODIMP VLCVideo::get_marquee(IVLCMarquee** obj)
-{
-    return object_get(obj,_p_vlcmarquee);
-}
-
-STDMETHODIMP VLCVideo::get_logo(IVLCLogo** obj)
-{
-    return object_get(obj,_p_vlclogo);
-}
-
-STDMETHODIMP VLCVideo::get_deinterlace(IVLCDeinterlace** obj)
-{
-    return object_get(obj,_p_vlcdeint);
-}
-
-/****************************************************************************/
-
-HRESULT VLCLogo::do_put_int(unsigned idx, LONG val)
-{
-    libvlc_media_player_t *p_md;
-    HRESULT hr = getMD(&p_md);
-    if( SUCCEEDED(hr) )
-    {
-        libvlc_video_set_logo_int(p_md, idx, val);
-    }
-    return hr;
-}
-
-HRESULT VLCLogo::do_get_int(unsigned idx, LONG *val)
-{
-    if( NULL == val )
-        return E_POINTER;
-
-    libvlc_media_player_t *p_md;
-    HRESULT hr = getMD(&p_md);
-    if( SUCCEEDED(hr) )
-    {
-        *val = libvlc_video_get_logo_int(p_md, idx);
-    }
-    return hr;
-}
-
-STDMETHODIMP VLCLogo::file(BSTR fname)
-{
-    libvlc_media_player_t *p_md;
-    HRESULT hr = getMD(&p_md);
-
-    char *n = CStrFromBSTR(CP_UTF8, fname);
-    if( !n ) hr = E_OUTOFMEMORY;
-
-    if( SUCCEEDED(hr) )
-    {
-        libvlc_video_set_logo_string(p_md, libvlc_logo_file, n);
-    }
-
-    CoTaskMemFree(n);
-    return hr;
-}
-
-STDMETHODIMP VLCLogo::get_position(BSTR* val)
-{
-    if( NULL == val )
-        return E_POINTER;
-
-    LONG i;
-    HRESULT hr = do_get_int(libvlc_logo_position, &i);
-
-    if(SUCCEEDED(hr))
-        *val = BSTRFromCStr(CP_UTF8, position_bynumber(i));
-
-    return hr;
-}
-
-STDMETHODIMP VLCLogo::put_position(BSTR val)
-{
-    char *n = CStrFromBSTR(CP_UTF8, val);
-    if( !n ) return E_OUTOFMEMORY;
-
-    size_t i;
-    HRESULT hr;
-    if( position_byname( n, i ) )
-        hr = do_put_int(libvlc_logo_position,i);
-    else
-        hr = E_INVALIDARG;
-
-    CoTaskMemFree(n);
-    return hr;
-}
-
-/****************************************************************************/
-
-VLCControl2::VLCControl2(VLCPlugin *p_instance) :
-    _p_instance(p_instance),
-    _p_typeinfo(NULL),
-    _p_vlcaudio(new VLCAudio(p_instance)),
-    _p_vlcinput(new VLCInput(p_instance)),
-    _p_vlcplaylist(new VLCPlaylist(p_instance)),
-    _p_vlcsubtitle(new VLCSubtitle(p_instance)),
-    _p_vlcvideo(new VLCVideo(p_instance))
-{
-}
-
-VLCControl2::~VLCControl2()
-{
-    delete _p_vlcvideo;
-    delete _p_vlcsubtitle;
-    delete _p_vlcplaylist;
-    delete _p_vlcinput;
-    delete _p_vlcaudio;
-    if( _p_typeinfo )
-        _p_typeinfo->Release();
-};
-
-HRESULT VLCControl2::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_IVLCControl2, &_p_typeinfo);
-            if( FAILED(hr) )
-            {
-                _p_typeinfo = NULL;
-            }
-            p_typelib->Release();
-        }
-    }
-    return hr;
-};
-
-STDMETHODIMP VLCControl2::GetTypeInfoCount(UINT* pctInfo)
-{
-    if( NULL == pctInfo )
-        return E_INVALIDARG;
-
-    if( SUCCEEDED(loadTypeInfo()) )
-        *pctInfo = 1;
-    else
-        *pctInfo = 0;
-
-    return NOERROR;
-};
-
-STDMETHODIMP VLCControl2::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 VLCControl2::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 VLCControl2::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 VLCControl2::get_AutoLoop(VARIANT_BOOL *autoloop)
-{
-    if( NULL == autoloop )
-        return E_POINTER;
-
-    *autoloop = varbool( _p_instance->getAutoLoop() );
-    return S_OK;
-};
-
-STDMETHODIMP VLCControl2::put_AutoLoop(VARIANT_BOOL autoloop)
-{
-    _p_instance->setAutoLoop((VARIANT_FALSE != autoloop) ? TRUE: FALSE);
-    return S_OK;
-};
-
-STDMETHODIMP VLCControl2::get_AutoPlay(VARIANT_BOOL *autoplay)
-{
-    if( NULL == autoplay )
-        return E_POINTER;
-
-    *autoplay = varbool( _p_instance->getAutoPlay() );
-    return S_OK;
-};
-
-STDMETHODIMP VLCControl2::put_AutoPlay(VARIANT_BOOL autoplay)
-{
-    _p_instance->setAutoPlay((VARIANT_FALSE != autoplay) ? TRUE: FALSE);
-    return S_OK;
-};
-
-STDMETHODIMP VLCControl2::get_BaseURL(BSTR *url)
-{
-    if( NULL == url )
-        return E_POINTER;
-
-    *url = SysAllocStringLen(_p_instance->getBaseURL(),
-                SysStringLen(_p_instance->getBaseURL()));
-    return NOERROR;
-};
-
-STDMETHODIMP VLCControl2::put_BaseURL(BSTR mrl)
-{
-    _p_instance->setBaseURL(mrl);
-
-    return S_OK;
-};
-
-STDMETHODIMP VLCControl2::get_MRL(BSTR *mrl)
-{
-    if( NULL == mrl )
-        return E_POINTER;
-
-    *mrl = SysAllocStringLen(_p_instance->getMRL(),
-                SysStringLen(_p_instance->getMRL()));
-    return NOERROR;
-};
-
-STDMETHODIMP VLCControl2::put_MRL(BSTR mrl)
-{
-    _p_instance->setMRL(mrl);
-
-    return S_OK;
-};
-
-
-STDMETHODIMP VLCControl2::get_Toolbar(VARIANT_BOOL *visible)
-{
-    if( NULL == visible )
-        return E_POINTER;
-
-    /*
-     * Note to developers
-     *
-     * Returning the _b_toolbar is closer to the method specification.
-     * But returning True when toolbar is not implemented so not displayed
-     * could be bad for ActiveX users which rely on this value to show their
-     * own toolbar if not provided by the ActiveX.
-     *
-     * This is the reason why FALSE is returned, until toolbar get implemented.
-     */
-
-    /* DISABLED for now */
-    //  *visible = varbool( _p_instance->getShowToolbar() );
-
-    *visible = VARIANT_FALSE;
-
-    return S_OK;
-};
-
-STDMETHODIMP VLCControl2::put_Toolbar(VARIANT_BOOL visible)
-{
-    _p_instance->setShowToolbar((VARIANT_FALSE != visible) ? TRUE: FALSE);
-    return S_OK;
-};
-
-
-STDMETHODIMP VLCControl2::get_StartTime(long *seconds)
-{
-    if( NULL == seconds )
-        return E_POINTER;
-
-    *seconds = _p_instance->getStartTime();
-    return S_OK;
-};
-
-STDMETHODIMP VLCControl2::put_StartTime(long seconds)
-{
-    _p_instance->setStartTime(seconds);
-    return S_OK;
-};
-
-STDMETHODIMP VLCControl2::get_VersionInfo(BSTR *version)
-{
-    if( NULL == version )
-        return E_POINTER;
-
-    const char *versionStr = libvlc_get_version();
-    if( NULL != versionStr )
-    {
-        *version = BSTRFromCStr(CP_UTF8, versionStr);
-
-        return (NULL == *version) ? E_OUTOFMEMORY : NOERROR;
-    }
-    *version = NULL;
-    return E_FAIL;
-};
-
-STDMETHODIMP VLCControl2::get_Visible(VARIANT_BOOL *isVisible)
-{
-    if( NULL == isVisible )
-        return E_POINTER;
-
-    *isVisible = varbool( _p_instance->getVisible() );
-
-    return S_OK;
-};
-
-STDMETHODIMP VLCControl2::put_Visible(VARIANT_BOOL isVisible)
-{
-    _p_instance->setVisible(isVisible != VARIANT_FALSE);
-    return S_OK;
-};
-
-STDMETHODIMP VLCControl2::get_Volume(long *volume)
-{
-    if( NULL == volume )
-        return E_POINTER;
-
-    *volume  = _p_instance->getVolume();
-    return S_OK;
-};
-
-STDMETHODIMP VLCControl2::put_Volume(long volume)
-{
-    _p_instance->setVolume(volume);
-    return S_OK;
-};
-
-STDMETHODIMP VLCControl2::get_BackColor(OLE_COLOR *backcolor)
-{
-    if( NULL == backcolor )
-        return E_POINTER;
-
-    *backcolor  = _p_instance->getBackColor();
-    return S_OK;
-};
-
-STDMETHODIMP VLCControl2::put_BackColor(OLE_COLOR backcolor)
-{
-    _p_instance->setBackColor(backcolor);
-    return S_OK;
-};
-
-STDMETHODIMP VLCControl2::get_audio(IVLCAudio** obj)
-{
-    return object_get(obj,_p_vlcaudio);
-}
-
-STDMETHODIMP VLCControl2::get_input(IVLCInput** obj)
-{
-    return object_get(obj,_p_vlcinput);
-}
-
-STDMETHODIMP VLCControl2::get_playlist(IVLCPlaylist** obj)
-{
-    return object_get(obj,_p_vlcplaylist);
-}
-
-STDMETHODIMP VLCControl2::get_subtitle(IVLCSubtitle** obj)
-{
-    return object_get(obj,_p_vlcsubtitle);
-}
-
-STDMETHODIMP VLCControl2::get_video(IVLCVideo** obj)
-{
-    return object_get(obj,_p_vlcvideo);
-}
diff --git a/projects/activex/vlccontrol2.h b/projects/activex/vlccontrol2.h
deleted file mode 100644 (file)
index 698331e..0000000
+++ /dev/null
@@ -1,405 +0,0 @@
-/*****************************************************************************
- * vlccontrol.h: ActiveX control for VLC
- *****************************************************************************
- * Copyright (C) 2006 the VideoLAN team
- * Copyright (C) 2010 M2X BV
- *
- * Authors: Damien Fouilleul <Damien.Fouilleul@laposte.net>
- *          Jean-Paul Saman <jpsaman _at_ m2x _dot_ nl>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#ifndef _VLCCONTROL2_H_
-#define _VLCCONTROL2_H_
-
-#include "axvlc_idl.h"
-
-#include <vlc/libvlc.h>
-#include <ole2.h>
-
-class VLCInterfaceBase {
-public:
-    VLCInterfaceBase(VLCPlugin *p): _plug(p), _ti(NULL) { }
-    virtual ~VLCInterfaceBase() { if( _ti ) _ti->Release(); }
-
-    VLCPlugin *Instance() const { return _plug; }
-    HRESULT getVLC(libvlc_instance_t **pp) const { return _plug->getVLC(pp); }
-    HRESULT getMD(libvlc_media_player_t **pp) const { return _plug->getMD(pp); }
-
-protected:
-    HRESULT loadTypeInfo(REFIID riid);
-    ITypeInfo *TypeInfo() const { return _ti; }
-
-    STDMETHODIMP_(ULONG) AddRef(void) { return _plug->pUnkOuter->AddRef(); };
-    STDMETHODIMP_(ULONG) Release(void) { return _plug->pUnkOuter->Release(); };
-private:
-    VLCPlugin *_plug;
-    ITypeInfo *_ti;
-};
-
-template<class T,class I>
-class VLCInterface: public I, private VLCInterfaceBase
-{
-private:
-    typedef VLCInterfaceBase Base;
-          T *This()       { return static_cast<      T *>(this); }
-    const T *This() const { return static_cast<const T *>(this); }
-
-    HRESULT loadTypeInfo()
-    {
-        return TypeInfo() ? NOERROR : Base::loadTypeInfo(_riid);
-    }
-
-public:
-    VLCInterface(VLCPlugin *p): Base(p) { }
-    VLCPlugin *Instance() const { return Base::Instance(); }
-
-    HRESULT getVLC(libvlc_instance_t **pp) const { return Base::getVLC(pp); }
-    HRESULT getMD(libvlc_media_player_t **pp) const { return Base::getMD(pp); }
-
-    STDMETHODIMP QueryInterface(REFIID riid, void **ppv)
-    {
-        if( NULL == ppv ) return E_POINTER;
-
-        if( (IID_IUnknown == riid)
-         || (IID_IDispatch == riid)
-         || (_riid == riid) )
-        {
-            This()->AddRef();
-            *ppv = reinterpret_cast<LPVOID>(This());
-            return NOERROR;
-        }
-        // behaves as a standalone object
-        return E_NOINTERFACE;
-    }
-
-    STDMETHODIMP GetTypeInfoCount(UINT* pctInfo)
-    {
-        if( NULL == pctInfo )
-            return E_INVALIDARG;
-        *pctInfo = SUCCEEDED(loadTypeInfo()) ? 1 : 0;
-        return NOERROR;
-    }
-    STDMETHODIMP GetTypeInfo(UINT iTInfo, LCID lcid, LPTYPEINFO* ppTInfo)
-    {
-        if( NULL == ppTInfo )
-            return E_INVALIDARG;
-
-        if( SUCCEEDED(loadTypeInfo()) )
-        {
-            (*ppTInfo = TypeInfo())->AddRef();
-            return NOERROR;
-        }
-        *ppTInfo = NULL;
-        return E_NOTIMPL;
-    }
-
-    STDMETHODIMP GetIDsOfNames(REFIID riid, LPOLESTR* rgszNames,
-            UINT cNames, LCID lcid, DISPID* rgDispID)
-    {
-        return FAILED(loadTypeInfo()) ? E_NOTIMPL :
-            DispGetIDsOfNames(TypeInfo(), rgszNames, cNames, rgDispID);
-    }
-
-    STDMETHODIMP Invoke(DISPID dispIdMember, REFIID riid,
-        LCID lcid, WORD wFlags, DISPPARAMS* pDispParams,
-        VARIANT* pVarResult, EXCEPINFO* pExcepInfo, UINT* puArgErr)
-    {
-        return FAILED(loadTypeInfo()) ? E_NOTIMPL :
-            DispInvoke(This(), TypeInfo(), dispIdMember, wFlags,
-                       pDispParams, pVarResult, pExcepInfo, puArgErr);
-    }
-
-    STDMETHODIMP_(ULONG) AddRef(void)  { return Base::AddRef(); };
-    STDMETHODIMP_(ULONG) Release(void) { return Base::Release(); };
-private:
-    static REFIID _riid;
-};
-
-class VLCAudio : public VLCInterface<VLCAudio,IVLCAudio>
-{
-public:
-    VLCAudio(VLCPlugin *p): VLCInterface<VLCAudio,IVLCAudio>(p) { }
-
-    // IVLCAudio methods
-    STDMETHODIMP get_mute(VARIANT_BOOL*);
-    STDMETHODIMP put_mute(VARIANT_BOOL);
-    STDMETHODIMP get_volume(long*);
-    STDMETHODIMP put_volume(long);
-    STDMETHODIMP get_track(long*);
-    STDMETHODIMP put_track(long);
-    STDMETHODIMP get_count(long*);
-    STDMETHODIMP get_channel(long*);
-    STDMETHODIMP put_channel(long);
-    STDMETHODIMP toggleMute();
-    STDMETHODIMP description(long, BSTR*);
-};
-
-class VLCInput: public VLCInterface<VLCInput,IVLCInput>
-{
-public:
-    VLCInput(VLCPlugin *p): VLCInterface<VLCInput,IVLCInput>(p) { }
-
-    // IVLCInput methods
-    STDMETHODIMP get_length(double*);
-    STDMETHODIMP get_position(double*);
-    STDMETHODIMP put_position(double);
-    STDMETHODIMP get_time(double*);
-    STDMETHODIMP put_time(double);
-    STDMETHODIMP get_state(long*);
-    STDMETHODIMP get_rate(double*);
-    STDMETHODIMP put_rate(double);
-    STDMETHODIMP get_fps(double*);
-    STDMETHODIMP get_hasVout(VARIANT_BOOL*);
-};
-
-class VLCMarquee: public VLCInterface<VLCMarquee,IVLCMarquee>
-{
-public:
-    VLCMarquee(VLCPlugin *p): VLCInterface<VLCMarquee,IVLCMarquee>(p) { }
-
-    // IVLCMarquee methods
-    STDMETHODIMP enable()  { return do_put_int(libvlc_marquee_Enable, true); }
-    STDMETHODIMP disable() { return do_put_int(libvlc_marquee_Enable, false); }
-
-    STDMETHODIMP get_text(BSTR *);
-    STDMETHODIMP put_text(BSTR);
-    STDMETHODIMP get_position(BSTR *);
-    STDMETHODIMP put_position(BSTR);
-
-#define PROP_INT( a, b ) \
-        STDMETHODIMP get_##a(LONG *val) { return do_get_int(b,val); } \
-        STDMETHODIMP put_##a(LONG val)  { return do_put_int(b,val); }
-
-    PROP_INT( color,    libvlc_marquee_Color )
-    PROP_INT( opacity,  libvlc_marquee_Opacity )
-    PROP_INT( refresh,  libvlc_marquee_Refresh )
-    PROP_INT( size,     libvlc_marquee_Size )
-    PROP_INT( timeout,  libvlc_marquee_Timeout )
-    PROP_INT( x,        libvlc_marquee_X )
-    PROP_INT( y,        libvlc_marquee_Y )
-
-#undef  PROP_INT
-
-private:
-    HRESULT do_put_int(unsigned idx, LONG val);
-    HRESULT do_get_int(unsigned idx, LONG *val);
-};
-
-class VLCLogo: public VLCInterface<VLCLogo,IVLCLogo>
-{
-public:
-    VLCLogo(VLCPlugin *p): VLCInterface<VLCLogo,IVLCLogo>(p) { }
-
-    STDMETHODIMP enable()  { return do_put_int(libvlc_logo_enable, true); }
-    STDMETHODIMP disable() { return do_put_int(libvlc_logo_enable, false); }
-
-    STDMETHODIMP file(BSTR fname);
-
-#define PROP_INT( a ) \
-        STDMETHODIMP get_##a(LONG *val) \
-            { return do_get_int(libvlc_logo_##a,val); } \
-        STDMETHODIMP put_##a(LONG val) \
-            { return do_put_int(libvlc_logo_##a,val); }
-
-    PROP_INT( delay )
-    PROP_INT( repeat )
-    PROP_INT( opacity )
-    PROP_INT( x )
-    PROP_INT( y )
-
-#undef  PROP_INT
-
-    STDMETHODIMP get_position(BSTR* val);
-    STDMETHODIMP put_position(BSTR val);
-
-private:
-    HRESULT do_put_int(unsigned idx, LONG val);
-    HRESULT do_get_int(unsigned idx, LONG *val);
-};
-
-class VLCDeinterlace: public VLCInterface<VLCDeinterlace,IVLCDeinterlace>
-{
-public:
-    VLCDeinterlace(VLCPlugin *p):
-        VLCInterface<VLCDeinterlace,IVLCDeinterlace>(p) { }
-
-    STDMETHODIMP enable(BSTR val);
-    STDMETHODIMP disable();
-};
-
-class VLCPlaylistItems: public VLCInterface<VLCPlaylistItems,IVLCPlaylistItems>
-{
-public:
-    VLCPlaylistItems(VLCPlugin *p):
-        VLCInterface<VLCPlaylistItems,IVLCPlaylistItems>(p) { }
-
-    // IVLCPlaylistItems methods
-    STDMETHODIMP get_count(long*);
-    STDMETHODIMP clear();
-    STDMETHODIMP remove(long);
-};
-
-class VLCPlaylist: public VLCInterface<VLCPlaylist,IVLCPlaylist>
-{
-public:
-    VLCPlaylist(VLCPlugin *p):
-        VLCInterface<VLCPlaylist,IVLCPlaylist>(p),
-        _p_vlcplaylistitems(new VLCPlaylistItems(p)) { }
-    virtual ~VLCPlaylist() { delete _p_vlcplaylistitems; }
-
-    // IVLCPlaylist methods
-    STDMETHODIMP get_itemCount(long*);
-    STDMETHODIMP get_isPlaying(VARIANT_BOOL*);
-    STDMETHODIMP add(BSTR, VARIANT, VARIANT, long*);
-    STDMETHODIMP play();
-    STDMETHODIMP playItem(long);
-    STDMETHODIMP togglePause();
-    STDMETHODIMP stop();
-    STDMETHODIMP next();
-    STDMETHODIMP prev();
-    STDMETHODIMP clear();
-    STDMETHODIMP removeItem(long);
-    STDMETHODIMP get_items(IVLCPlaylistItems**);
-
-private:
-    VLCPlaylistItems*    _p_vlcplaylistitems;
-};
-
-class VLCSubtitle: public VLCInterface<VLCSubtitle,IVLCSubtitle>
-{
-public:
-    VLCSubtitle(VLCPlugin *p): VLCInterface<VLCSubtitle,IVLCSubtitle>(p) { }
-
-    // IVLCSubtitle methods
-    STDMETHODIMP get_track(long*);
-    STDMETHODIMP put_track(long);
-    STDMETHODIMP get_count(long*);
-    STDMETHODIMP description(long, BSTR*);
-};
-
-class VLCVideo: public VLCInterface<VLCVideo,IVLCVideo>
-{
-public:
-    VLCVideo(VLCPlugin *p): VLCInterface<VLCVideo,IVLCVideo>(p),
-        _p_vlcmarquee(new VLCMarquee(p)), _p_vlclogo(new VLCLogo(p)),
-        _p_vlcdeint(new VLCDeinterlace(p)) { }
-    virtual ~VLCVideo() {
-        delete _p_vlcmarquee;
-        delete _p_vlclogo;
-        delete _p_vlcdeint;
-    }
-
-    // IVLCVideo methods
-    STDMETHODIMP get_fullscreen(VARIANT_BOOL*);
-    STDMETHODIMP put_fullscreen(VARIANT_BOOL);
-    STDMETHODIMP get_width(long*);
-    STDMETHODIMP get_height(long*);
-    STDMETHODIMP get_aspectRatio(BSTR*);
-    STDMETHODIMP put_aspectRatio(BSTR);
-    STDMETHODIMP get_subtitle(long*);
-    STDMETHODIMP put_subtitle(long);
-    STDMETHODIMP get_crop(BSTR*);
-    STDMETHODIMP put_crop(BSTR);
-    STDMETHODIMP get_teletext(long*);
-    STDMETHODIMP put_teletext(long);
-    STDMETHODIMP get_marquee(IVLCMarquee**);
-    STDMETHODIMP get_logo(IVLCLogo**);
-    STDMETHODIMP get_deinterlace(IVLCDeinterlace**);
-    STDMETHODIMP takeSnapshot(LPPICTUREDISP*);
-    STDMETHODIMP toggleFullscreen();
-    STDMETHODIMP toggleTeletext();
-
-private:
-    IVLCMarquee     *_p_vlcmarquee;
-    IVLCLogo        *_p_vlclogo;
-    IVLCDeinterlace *_p_vlcdeint;
-};
-
-class VLCControl2 : public IVLCControl2
-{
-public:
-
-    VLCControl2(VLCPlugin *p_instance);
-    virtual ~VLCControl2();
-
-    // IUnknown methods
-    STDMETHODIMP QueryInterface(REFIID riid, void **ppv)
-    {
-        if( NULL == ppv )
-          return E_POINTER;
-        if( (IID_IUnknown == riid)
-         || (IID_IDispatch == riid)
-         || (IID_IVLCControl2 == riid) )
-        {
-            AddRef();
-            *ppv = reinterpret_cast<LPVOID>(this);
-            return NOERROR;
-        }
-        return _p_instance->pUnkOuter->QueryInterface(riid, ppv);
-    };
-
-    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*);
-
-    // IVLCControl2 methods
-    STDMETHODIMP get_AutoLoop(VARIANT_BOOL *autoloop);
-    STDMETHODIMP put_AutoLoop(VARIANT_BOOL autoloop);
-    STDMETHODIMP get_AutoPlay(VARIANT_BOOL *autoplay);
-    STDMETHODIMP put_AutoPlay(VARIANT_BOOL autoplay);
-    STDMETHODIMP get_BaseURL(BSTR *url);
-    STDMETHODIMP put_BaseURL(BSTR url);
-    STDMETHODIMP get_MRL(BSTR *mrl);
-    STDMETHODIMP put_MRL(BSTR mrl);
-    STDMETHODIMP get_Toolbar(VARIANT_BOOL *visible);
-    STDMETHODIMP put_Toolbar(VARIANT_BOOL visible);
-    STDMETHODIMP get_StartTime(long *seconds);
-    STDMETHODIMP put_StartTime(long seconds);
-    STDMETHODIMP get_VersionInfo(BSTR *version);
-    STDMETHODIMP get_Visible(VARIANT_BOOL *visible);
-    STDMETHODIMP put_Visible(VARIANT_BOOL visible);
-    STDMETHODIMP get_Volume(long *volume);
-    STDMETHODIMP put_Volume(long volume);
-    STDMETHODIMP get_BackColor(OLE_COLOR *backcolor);
-    STDMETHODIMP put_BackColor(OLE_COLOR backcolor);
-
-    STDMETHODIMP get_audio(IVLCAudio**);
-    STDMETHODIMP get_input(IVLCInput**);
-    STDMETHODIMP get_playlist(IVLCPlaylist**);
-    STDMETHODIMP get_subtitle(IVLCSubtitle**);
-    STDMETHODIMP get_video(IVLCVideo**);
-
-protected:
-    HRESULT loadTypeInfo();
-
-private:
-    VLCPlugin    *_p_instance;
-    ITypeInfo    *_p_typeinfo;
-
-    IVLCAudio    *_p_vlcaudio;
-    IVLCInput    *_p_vlcinput;
-    IVLCPlaylist *_p_vlcplaylist;
-    IVLCSubtitle *_p_vlcsubtitle;
-    IVLCVideo    *_p_vlcvideo;
-};
-
-#endif