--- /cygdrive/d/vlc-rev10995/vlc-trunk/activex/plugin.cpp 2005-05-22 12:15:00.000000000 -0700 +++ /cygdrive/d/vlc-2005.05.13/vlc-trunk/activex/plugin.cpp 2005-06-23 15:35:54.000000000 -0700 @@ -522,7 +522,7 @@ HKEY h_key; DWORD i_type, i_data = MAX_PATH + 1; char p_data[MAX_PATH + 1]; - if( RegOpenKeyEx( HKEY_LOCAL_MACHINE, "Software\\VideoLAN\\VLC", + if( RegOpenKeyEx( HKEY_LOCAL_MACHINE, "Software\\GoogleVideoViewer\\VLC", 0, KEY_READ, &h_key ) == ERROR_SUCCESS ) { if( RegQueryValueEx( h_key, "InstallDir", 0, &i_type, @@ -859,6 +859,16 @@ { DISPPARAMS dispparamsNoArgs = {NULL, NULL, 0, 0}; vlcConnectionPointContainer->fireEvent(DISPID_PlayEvent, &dispparamsNoArgs); + // Google mods + // this is to fix the mouse hover problem when an activex plugin + // is dynamically instantiated + LPOLECLIENTSITE pActiveSite; + if( SUCCEEDED(vlcOleObject->GetClientSite(&pActiveSite)) && + (NULL != pActiveSite) ) { + vlcOleObject->DoVerb(OLEIVERB_INPLACEACTIVATE, NULL, pActiveSite, 0, NULL, NULL); + pActiveSite->Release(); + } + // done Google mods } }; --- /cygdrive/d/vlc-rev10995/vlc-trunk/activex/main.cpp 2005-05-22 12:15:00.000000000 -0700 +++ /cygdrive/d/vlc-2005.05.13/vlc-trunk/activex/main.cpp 2005-06-13 23:15:12.000000000 -0700 @@ -32,7 +32,7 @@ #define PROGRAM_STR "VLCPlugin" #define VERSION_MAJOR_STR "1" #define VERSION_MINOR_STR "0" -#define DESCRIPTION "VideoLAN VLC ActiveX Plugin" +#define DESCRIPTION "Google VideoLAN VLC ActiveX Plugin" #define THREADING_MODEL "Apartment" #define MISC_STATUS "131473" --- /cygdrive/d/vlc-rev10995/vlc-trunk/activex/axvlc.idl 2005-05-22 12:15:00.000000000 -0700 +++ /cygdrive/d/vlc-2005.05.13/vlc-trunk/activex/axvlc.idl 2005-06-13 23:37:36.000000000 -0700 @@ -23,7 +23,7 @@ [ uuid(DF2BBE39-40A8-433b-A279-073F48DA94B6), version(1.0), - helpstring("VideoLAN VLC ActiveX Plugin"), + helpstring("Google VideoLAN VLC ActiveX Plugin"), ] library AXVLC { @@ -147,7 +147,7 @@ }; [ - uuid(E23FE9C6-778E-49D4-B537-38FCDE4887D8), + uuid(E23FE9C6-778E-49D4-B537-38FCDE4887D9), helpstring("VLC control"), control ] --- /cygdrive/d/vlc-rev10995/vlc-trunk/activex/axvlc_idl.h 2005-05-22 12:15:00.000000000 -0700 +++ /cygdrive/d/vlc-2005.05.13/vlc-trunk/activex/axvlc_idl.h 2005-06-24 18:37:30.000000000 -0700 @@ -916,7 +916,7 @@ #ifdef __cplusplus -class DECLSPEC_UUID("E23FE9C6-778E-49D4-B537-38FCDE4887D8") +class DECLSPEC_UUID("E23FE9C6-778E-49D4-B537-38FCDE4887D9") VLCPlugin; #endif #endif /* __AXVLC_LIBRARY_DEFINED__ */ --- /cygdrive/d/vlc-rev10995/vlc-trunk/activex/axvlc_idl.c 2005-05-22 12:15:00.000000000 -0700 +++ /cygdrive/d/vlc-2005.05.13/vlc-trunk/activex/axvlc_idl.c 2005-06-24 18:37:30.000000000 -0700 @@ -44,7 +44,7 @@ const IID DIID_DVLCEvents = {0xDF48072F,0x5EF8,0x434e,{0x9B,0x40,0xE2,0xF3,0xAE,0x75,0x9B,0x5F}}; -const CLSID CLSID_VLCPlugin = {0xE23FE9C6,0x778E,0x49D4,{0xB5,0x37,0x38,0xFC,0xDE,0x48,0x87,0xD8}}; +const CLSID CLSID_VLCPlugin = {0xE23FE9C6,0x778E,0x49D4,{0xB5,0x37,0x38,0xFC,0xDE,0x48,0x87,0xD9}}; #ifdef __cplusplus --- /cygdrive/d/vlc-rev10995/vlc-trunk/activex/axvlc.inf 2005-05-22 12:15:00.000000000 -0700 +++ /cygdrive/d/vlc-2005.05.13/vlc-trunk/activex/axvlc.inf 2005-06-13 23:23:24.000000000 -0700 @@ -6,11 +6,11 @@ [Add.Code] vlc-0.8.2-svn-win32.exe - axvlc.dll=axvlc.dll + axgooglevlc.dll=axgooglevlc.dll -[axvlc.dll] +[axgooglevlc.dll] FileVersion=0,8,2,0 - clsid={E23FE9C6-778E-49d4-B537-38FCDE4887D8} + clsid={E23FE9C6-778E-49d4-B537-38FCDE4887D9} RegisterServer=no hook=nsiinstaller --- /cygdrive/d/vlc-rev10995/vlc-trunk/activex/vlccontrol.cpp 2005-05-22 12:15:00.000000000 -0700 +++ /cygdrive/d/vlc-2005.05.13/vlc-trunk/activex/vlccontrol.cpp 2005-06-20 13:17:30.000000000 -0700 @@ -763,7 +763,7 @@ if( NULL == version ) return E_POINTER; - const char *versionStr = VLC_Version(); + const char *versionStr = "Google VLC multimedia plugin 1.0"; if( NULL != versionStr ) { *version = BSTRFromCStr(_p_instance->getCodePage(), versionStr); --- /cygdrive/d/vlc-rev10995/vlc-trunk/activex/olecontrol.cpp 2005-05-22 12:15:00.000000000 -0700 +++ /cygdrive/d/vlc-2005.05.13/vlc-trunk/activex/olecontrol.cpp 2005-06-23 15:32:36.000000000 -0700 @@ -127,7 +127,12 @@ STDMETHODIMP VLCOleControl::FreezeEvents(BOOL bFreeze) { - _p_instance->setSendEvents(! bFreeze); + // Google mod + // It seems that the container will freeze all events under a dynamic + // instantiation of ActiveX control. By commenting the following line + // the events can go through even if the mouse is not hover on top of + // the window + //_p_instance->setSendEvents(! bFreeze); return S_OK; }; --- /cygdrive/d/vlc-rev10995/vlc-trunk/mozilla/vlcshell.cpp 2005-05-22 12:18:12.000000000 -0700 +++ /cygdrive/d/vlc-2005.05.13/vlc-trunk/mozilla/vlcshell.cpp 2005-06-16 12:40:50.000000000 -0700 @@ -128,7 +128,7 @@ NPError NPP_GetValue( NPP instance, NPPVariable variable, void *value ) { - static nsIID nsid = VLCINTF_IID; + static nsIID nsid = GOOGLEVLCINTF_IID; static char psz_desc[1000]; switch( variable ) @@ -304,7 +304,7 @@ HKEY h_key; DWORD i_type, i_data = MAX_PATH + 1; char p_data[MAX_PATH + 1]; - if( RegOpenKeyEx( HKEY_LOCAL_MACHINE, "Software\\VideoLAN\\VLC", + if( RegOpenKeyEx( HKEY_LOCAL_MACHINE, "Software\\GoogleVideoViewer\\VLC", 0, KEY_READ, &h_key ) == ERROR_SUCCESS ) { if( RegQueryValueEx( h_key, "InstallDir", 0, &i_type, --- /cygdrive/d/vlc-rev10995/vlc-trunk/mozilla/npvlc_rc.rc 2005-05-22 12:18:12.000000000 -0700 +++ /cygdrive/d/vlc-2005.05.13/vlc-trunk/mozilla/npvlc_rc.rc 2005-06-16 01:13:42.000000000 -0700 @@ -31,17 +31,17 @@ BEGIN BLOCK "040904e4" BEGIN - VALUE "ProductName", "VLC multimedia plugin\0" + VALUE "ProductName", "Google VLC multimedia plugin 1.0\0" VALUE "ProductVersion", STRINGIFY( VERSION ) - VALUE "OriginalFilename", "npvlc.dll\0" + VALUE "OriginalFilename", "npgooglevlc.dll\0" VALUE "FileVersion", STRINGIFY( VERSION ) - VALUE "FileDescription", "VLC multimedia plugin Version "STRINGIFY( VERSION )"

VideoLAN WWW: http://www.videolan.org/\0" - VALUE "InternalName", "npvlc\0" + VALUE "FileDescription", "Google VLC multimedia plugin Version 1.0
VideoLAN WWW: http://www.videolan.org/\0" + VALUE "InternalName", "npgooglevlc\0" VALUE "CompanyName", "VideoLAN Team\0" VALUE "LegalCopyright", "Copyright VideoLAN \251 1996-2004\0" - VALUE "MIMEType", "audio/mpeg|audio/x-mpeg|video/mpeg|video/x-mpeg|video/mpeg-system|video/x-mpeg-system|video/mpeg4|audio/mpeg4|application/mpeg4-iod|application/mpeg4-muxcodetable|video/x-msvideo|video/quicktime|application/x-ogg|application/x-vlc-plugin|video/x-ms-asf-plugin|video/x-ms-asf|application/x-mplayer2|video/x-ms-wmv\0" - VALUE "FileExtents", "mp2,mp3,mpga,mpega|mp2,mp3,mpga,mpega|mpg,mpeg,mpe|mpg,mpeg,mpe|mpg,mpeg,vob|mpg,mpeg,vob|mp4,mpg4|mp4,mpg4|mp4,mpg4|mp4,mpg4|avi|mov,qt|ogg|\0" - VALUE "FileOpenName", "MPEG audio|MPEG audio|MPEG video|MPEG video|MPEG video|MPEG video|MPEG-4 video|MPEG-4 audio|MPEG-4 video|MPEG-4 video|AVI video|QuickTime video|Ogg stream|VLC plugin\0" + VALUE "MIMEType", "application/x-google-vlc-plugin\0" + VALUE "FileExtents", "\0" + VALUE "FileOpenName", "Google VLC plugin\0" END END BLOCK "VarFileInfo" --- /cygdrive/d/vlc-rev10995/vlc-trunk/mozilla/vlcplugin.h 2005-05-22 12:18:12.000000000 -0700 +++ /cygdrive/d/vlc-2005.05.13/vlc-trunk/mozilla/vlcplugin.h 2005-06-16 12:37:44.000000000 -0700 @@ -33,7 +33,7 @@ void SetInstance( NPP ); NPP GetInstance(); - VlcIntf* GetPeer(); + GoogleVlcIntf* GetPeer(); void SetFileName( const char* ); @@ -74,37 +74,15 @@ /******************************************************************************* * Plugin properties. ******************************************************************************/ -#define PLUGIN_NAME "VLC multimedia plugin" +#define PLUGIN_NAME "Google VLC multimedia plugin 1.0" #define PLUGIN_DESCRIPTION \ - "VLC multimedia plugin
" \ + "Google VLC multimedia plugin
" \ "
" \ "version %s
" \ "VideoLAN WWW: http://www.videolan.org/" #define PLUGIN_MIMETYPES \ - /* MPEG-1 and MPEG-2 */ \ - "audio/mpeg:mp2,mp3,mpga,mpega:MPEG audio;" \ - "audio/x-mpeg:mp2,mp3,mpga,mpega:MPEG audio;" \ - "video/mpeg:mpg,mpeg,mpe:MPEG video;" \ - "video/x-mpeg:mpg,mpeg,mpe:MPEG video;" \ - "video/mpeg-system:mpg,mpeg,mpe,vob:MPEG video;" \ - "video/x-mpeg-system:mpg,mpeg,mpe,vob:MPEG video;" \ - /* MPEG-4 */ \ - "video/mpeg4:mp4,mpg4:MPEG-4 video;" \ - "audio/mpeg4:mp4,mpg4:MPEG-4 audio;" \ - "application/mpeg4-iod:mp4,mpg4:MPEG-4 video;" \ - "application/mpeg4-muxcodetable:mp4,mpg4:MPEG-4 video;" \ - /* AVI */ \ - "video/x-msvideo:avi:AVI video;" \ - /* QuickTime */ \ - "video/quicktime:mov,qt:QuickTime video;" \ - /* Ogg */ \ - "application/x-ogg:ogg:Ogg stream;" \ /* explicit plugin call */ \ - "application/x-vlc-plugin::VLC plugin;" \ - /* windows media */ \ - "video/x-ms-asf-plugin:asf,asx:Windows Media Video;" \ - "video/x-ms-asf:asf,asx:Windows Media Video;" \ - "application/x-mplayer2::Windows Media;" \ - "video/x-ms-wmv:wmv:Windows Media" \ + "application/x-google-vlc-plugin::Google VLC plugin;" + --- /cygdrive/d/vlc-rev10995/vlc-trunk/mozilla/vlcplugin.cpp 2005-05-22 12:18:12.000000000 -0700 +++ /cygdrive/d/vlc-2005.05.13/vlc-trunk/mozilla/vlcplugin.cpp 2005-06-16 12:41:04.000000000 -0700 @@ -79,7 +79,7 @@ } -VlcIntf* VlcPlugin::GetPeer() +GoogleVlcIntf* VlcPlugin::GetPeer() { if( !p_peer ) { --- /cygdrive/d/vlc-rev10995/vlc-trunk/mozilla/vlcintf.idl 2005-05-22 12:18:12.000000000 -0700 +++ /cygdrive/d/vlc-2005.05.13/vlc-trunk/mozilla/vlcintf.idl 2005-06-16 12:38:36.000000000 -0700 @@ -1,9 +1,9 @@ #include "nsISupports.idl" -[scriptable, uuid(ea92ef52-afe4-4212-bacb-dfe9fca94cd6)] +[scriptable, uuid(ea92ef52-afe4-4212-bacb-dfe9fca94cd7)] -interface VlcIntf : nsISupports +interface GoogleVlcIntf : nsISupports { /* Basic playback control */ void play(); --- /cygdrive/d/vlc-rev10995/vlc-trunk/mozilla/vlcpeer.h 2005-05-22 12:18:12.000000000 -0700 +++ /cygdrive/d/vlc-2005.05.13/vlc-trunk/mozilla/vlcpeer.h 2005-06-16 12:40:10.000000000 -0700 @@ -21,16 +21,16 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. *****************************************************************************/ -#include "vlcintf.h" +#include "googlevlcintf.h" #include "support/classinfo.h" class VlcPlugin; -class VlcPeer : public VlcIntf, public ClassInfo +class VlcPeer : public GoogleVlcIntf, public ClassInfo { public: NS_DECL_ISUPPORTS - NS_DECL_VLCINTF + NS_DECL_GOOGLEVLCINTF // These flags are used by the DOM and security systems to signal that // JavaScript callers are allowed to call this object's scriptable methods. --- /cygdrive/d/vlc-rev10995/vlc-trunk/mozilla/vlcpeer.cpp 2005-05-22 12:18:12.000000000 -0700 +++ /cygdrive/d/vlc-2005.05.13/vlc-trunk/mozilla/vlcpeer.cpp 2005-06-16 12:37:36.000000000 -0700 @@ -49,7 +49,7 @@ #include "vlcpeer.h" #include "vlcplugin.h" -NS_IMPL_ISUPPORTS2( VlcPeer, VlcIntf, nsIClassInfo ) +NS_IMPL_ISUPPORTS2( VlcPeer, GoogleVlcIntf, nsIClassInfo ) /***************************************************************************** * Scriptable peer constructor and destructor --- /cygdrive/d/vlc-rev10995/vlc-trunk/modules/codec/ffmpeg/ffmpeg.c 2005-05-22 12:17:28.000000000 -0700 +++ /cygdrive/d/vlc-2005.05.13/vlc-trunk/modules/codec/ffmpeg/ffmpeg.c 2005-06-11 09:24:38.000000000 -0700 @@ -120,12 +120,14 @@ set_description( _("ffmpeg chroma conversion") ); /* encoder submodule */ +/* Google mods: disable ffmpeg encoding capability */ +/* add_submodule(); set_section( N_("Encoding") , NULL ); set_description( _("ffmpeg audio/video encoder") ); set_capability( "encoder", 100 ); set_callbacks( E_(OpenEncoder), E_(CloseEncoder) ); - +*/ add_string( ENC_CFG_PREFIX "hq", "simple", NULL, ENC_HQ_TEXT, ENC_HQ_LONGTEXT, VLC_FALSE ); change_string_list( enc_hq_list, enc_hq_list_text, 0 ); --- /cygdrive/d/vlc-rev10995/vlc-trunk/src/misc/modules.c 2005-05-22 12:14:54.000000000 -0700 +++ /cygdrive/d/vlc-2005.05.13/vlc-trunk/src/misc/modules.c 2005-06-11 09:31:40.000000000 -0700 @@ -569,10 +569,21 @@ } /* Store this new module */ +#ifndef HAVE_MAD_H + /* Google mods: */ + if (!strcmp(p_module->psz_object_name, "mpeg_audio")) { + /* MAD is not enabled in the configure option and so mpeg_audio won't + be able to decode mp3 audio frames. We will use ffmpeg instead */ + continue; + } +#endif p_list[ i_index ].p_module = p_module; p_list[ i_index ].i_score = p_module->i_score + i_shortcut_bonus; p_list[ i_index ].b_force = !!i_shortcut_bonus; - + msg_Dbg( p_this, "module name %s, score: %d, bonus: %d", + p_list[i_index].p_module->psz_object_name, + p_list[i_index].i_score, p_list[i_index].b_force ); + /* Add it to the modules-to-probe list */ if( i_index == 0 ) { @@ -708,6 +719,9 @@ free( psz_var ); } + if (p_module) + msg_Dbg( p_this, "returning module %s", p_module->psz_object_name ); + /* Don't forget that the module is still locked */ return p_module; } --- /cygdrive/d/vlc-rev10995/vlc-trunk/src/libvlc.c 2005-05-22 12:14:54.000000000 -0700 +++ /cygdrive/d/vlc-2005.05.13/vlc-trunk/src/libvlc.c 2005-06-24 18:31:52.000000000 -0700 @@ -1024,6 +1024,34 @@ return VLC_ENOOBJ; } + if( !strncmp(psz_var, "conf::", 6) ) + { + module_config_t *p_item; + char const *psz_newvar = psz_var + 6; + msg_Dbg(p_vlc, "VLC_VariableGet|hack for Mozilla ... var=%s", + psz_newvar); + p_item = config_FindConfig( VLC_OBJECT(p_vlc), psz_newvar ); + switch( p_item->i_type ) + { + case CONFIG_ITEM_BOOL: + p_value->b_bool = config_GetInt( p_vlc, psz_newvar ); + break; + case CONFIG_ITEM_INTEGER: + p_value->i_int = config_GetInt( p_vlc, psz_newvar ); + break; + case CONFIG_ITEM_FLOAT: + p_value->f_float = config_GetFloat( p_vlc, psz_newvar ); + break; + default: + p_value->psz_string = config_GetPsz( p_vlc, psz_newvar ); + msg_Dbg(p_vlc, "VLC_VariableSet|config_GetPsz %s->%s", + psz_newvar, p_value->psz_string); + break; + } + if ( i_object ) vlc_object_release( p_vlc ); + return VLC_SUCCESS; + } + i_ret = var_Get( p_vlc , psz_var, p_value ); if( i_object ) vlc_object_release( p_vlc ); --- /cygdrive/d/vlc-rev10995/vlc-trunk/modules/access/http.c 2005-05-22 12:17:02.000000000 -0700 +++ /cygdrive/d/vlc-2005.05.13/vlc-trunk/modules/access/http.c 2005-06-21 22:05:10.000000000 -0700 @@ -242,7 +242,7 @@ else ParseURL( p_sys, p_access->psz_path ); - if( p_sys->url.psz_host == NULL || *p_sys->url.psz_host == '\0' ) + if(p_sys->url.psz_host == NULL || *p_sys->url.psz_host == '\0' ) { msg_Warn( p_access, "invalid host" ); goto error; @@ -301,6 +301,16 @@ } } + // Google mods + const char* allowed_host = "video.google.com"; + char * host_found = strstr(p_sys->url.psz_host, allowed_host); + if ((host_found == NULL) || + ((host_found + strlen(allowed_host)) != + (p_sys->url.psz_host + strlen(p_sys->url.psz_host)))) { + msg_Warn( p_access, "invalid host, only video.google.com is allowed" ); + goto error; + } + msg_Dbg( p_access, "http: server='%s' port=%d file='%s", p_sys->url.psz_host, p_sys->url.i_port, p_sys->url.psz_path ); if( p_sys->b_proxy ) --- /cygdrive/d/vlc-rev10995/vlc-trunk/vlc.win32.nsi 2005-05-22 12:18:12.000000000 -0700 +++ /cygdrive/d/vlc-2005.05.13/vlc-trunk/vlc-0.8.2-test1/vlc.win32.nsi 2005-06-24 16:21:36.000000000 -0700 @@ -2,32 +2,59 @@ ; NSIS installer script for vlc ; ; (http://nsis.sourceforge.net) ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -!define PRODUCT_NAME "VLC media player" +!define VERSION "1.0" +!define PRODUCT_NAME "Google Video Viewer" !define PRODUCT_VERSION '${VERSION}' -!define PRODUCT_GROUP "VideoLAN" -!define PRODUCT_PUBLISHER "VideoLAN Team" -!define PRODUCT_WEB_SITE "http://www.videolan.org" -!define PRODUCT_DIR_REGKEY "Software\VideoLAN\VLC" -!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" +!define PRODUCT_GROUP "GoogleVideoViewer" +;!define PRODUCT_PUBLISHER "VideoLAN Team" +!define PRODUCT_PUBLISHER "Google, Inc." +;!define PRODUCT_WEB_SITE "http://www.videolan.org" +!define PRODUCT_WEB_SITE "http://video.google.com" +!define PRODUCT_PATH "${PRODUCT_GROUP}\VLC" +!define PRODUCT_DIR_REGKEY "Software\${PRODUCT_PATH}" +!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_GROUP}" !define PRODUCT_UNINST_ROOT_KEY "HKLM" +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Browser instance variables ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +Var firefox +Var iexplorer + ;;;;;;;;;;;;;;;;;;;;;;;;; ; General configuration ; ;;;;;;;;;;;;;;;;;;;;;;;;; -Name "${PRODUCT_GROUP} ${PRODUCT_NAME} ${PRODUCT_VERSION}" -OutFile ..\vlc-${VERSION}-win32.exe -InstallDir "$PROGRAMFILES\VideoLAN\VLC" +Name "${PRODUCT_NAME} ${PRODUCT_VERSION} (based on VLC 0.8.2 Player)" +Caption "${PRODUCT_NAME} ${PRODUCT_VERSION} (based on VLC 0.8.2 Player)" +OutFile .\GoogleVideoViewer1.0.exe +InstallDir "$PROGRAMFILES\${PRODUCT_PATH}" InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" "Install_Dir" SetCompressor lzma ShowInstDetails show ShowUnInstDetails show SetOverwrite ifnewer CRCCheck on +;SilentInstall "silent" + +;InstType "Normal" +;InstType "Full" + +;-------------------------------- +;Version Information + + VIProductVersion "1.0.0.0" + VIAddVersionKey /LANG=${LANG_ENGLISH} "ProductName" "Google Video Viewer" + VIAddVersionKey /LANG=${LANG_ENGLISH} "Comments" "Google Video Viewer must be installed to playback video content on http://video.google.com" + VIAddVersionKey /LANG=${LANG_ENGLISH} "CompanyName" "Google, Inc." + VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalTrademarks" "GoogleVideoViewer is a trademark of Google, Inc." + VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalCopyright" "Copyright©2005 Google, Inc." + VIAddVersionKey /LANG=${LANG_ENGLISH} "FileDescription" "Google Video Viewer" + VIAddVersionKey /LANG=${LANG_ENGLISH} "FileVersion" "1.0.0.0" + +;-------------------------------- -InstType "Normal" -InstType "Full" ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; NSIS Modern User Interface configuration ; @@ -38,24 +65,30 @@ ; MUI Settings !define MUI_ABORTWARNING -!define MUI_ICON "vlc48x48.ico" -!define MUI_UNICON "vlc48x48.ico" +;!define MUI_ICON "vlc48x48.ico" +;!define MUI_UNICON "vlc48x48.ico" +!define MUI_ICON "gvv48x48.ico" +!define MUI_UNICON "gvv48x48.ico" !define MUI_COMPONENTSPAGE_SMALLDESC ; Welcome page -!insertmacro MUI_PAGE_WELCOME +;!insertmacro MUI_PAGE_WELCOME ; License page -!insertmacro MUI_PAGE_LICENSE "COPYING.txt" +!define MUI_LICENSEPAGE_RADIOBUTTONS +!define MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_ACCEPT "I Accept" +!define MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_DECLINE "I Do Not Accept" +;!insertmacro MUI_PAGE_LICENSE "COPYING.txt" +!insertmacro MUI_PAGE_LICENSE "GoogleVideoViewerTOS_v5.rtf" ; Components page -!insertmacro MUI_PAGE_COMPONENTS +;!insertmacro MUI_PAGE_COMPONENTS ; Directory page -!insertmacro MUI_PAGE_DIRECTORY +;!insertmacro MUI_PAGE_DIRECTORY ; Instfiles page !insertmacro MUI_PAGE_INSTFILES ; Finish page -!define MUI_FINISHPAGE_RUN "$INSTDIR\vlc.exe" +;!define MUI_FINISHPAGE_RUN "$INSTDIR\googlevlc.exe" !define MUI_FINISHPAGE_NOREBOOTSUPPORT -!insertmacro MUI_PAGE_FINISH +;!insertmacro MUI_PAGE_FINISH ; Uninstaller pages !insertmacro MUI_UNPAGE_INSTFILES @@ -72,20 +105,20 @@ ; File type associations ; ;;;;;;;;;;;;;;;;;;;;;;;;;; -Function RegisterExtension - ; back up old value for extension $R0 (eg. ".opt") - ReadRegStr $1 HKCR "$R0" "" - StrCmp $1 "" NoBackup - StrCmp $1 "VLC$R0" "NoBackup" - WriteRegStr HKCR "$R0" "VLC.backup" $1 -NoBackup: - WriteRegStr HKCR "$R0" "" "VLC$R0" - ReadRegStr $0 HKCR "VLC$R0" "" - WriteRegStr HKCR "VLC$R0" "" "VLC media file" - WriteRegStr HKCR "VLC$R0\shell" "" "Play" - WriteRegStr HKCR "VLC$R0\shell\Play\command" "" '"$INSTDIR\vlc.exe" "%1"' - WriteRegStr HKCR "VLC$R0\DefaultIcon" "" '"$INSTDIR\vlc.exe",0' -FunctionEnd +;Function RegisterExtension +; ; back up old value for extension $R0 (eg. ".opt") +; ReadRegStr $1 HKCR "$R0" "" +; StrCmp $1 "" NoBackup +; StrCmp $1 "VLC$R0" "NoBackup" +; WriteRegStr HKCR "$R0" "VLC.backup" $1 +;NoBackup: +; WriteRegStr HKCR "$R0" "" "VLC$R0" +; ReadRegStr $0 HKCR "VLC$R0" "" +; WriteRegStr HKCR "VLC$R0" "" "VLC media file" +; WriteRegStr HKCR "VLC$R0\shell" "" "Play" +; WriteRegStr HKCR "VLC$R0\shell\Play\command" "" '"$INSTDIR\vlc.exe" "%1"' +; WriteRegStr HKCR "VLC$R0\DefaultIcon" "" '"$INSTDIR\vlc.exe",0' +;FunctionEnd Function un.RegisterExtension ;start of restore script @@ -123,142 +156,82 @@ ;;;;;;;;;;;;;;;;;;;;;; Section "Media player (required)" SEC01 - SectionIn 1 2 3 RO + SectionIn 1 2 RO SetShellVarContext all SetOutPath "$INSTDIR" - File vlc.exe - File vlc.exe.manifest + File googlevlc.exe + File googlevlc.exe.manifest File *.txt File /r plugins - File /r locale - File /r skins - File /r http - - WriteRegStr HKCR Applications\vlc.exe "" "" - WriteRegStr HKCR Applications\vlc.exe\shell "" "Play" - WriteRegStr HKCR Applications\vlc.exe\shell\Play\command "" \ - '$INSTDIR\vlc.exe "%1"' - - WriteRegStr HKCR "AudioCD\shell\PlayWithVLC" "" "Play with VLC media player" - WriteRegStr HKCR "AudioCD\shell\PlayWithVLC\command" "" \ - "$INSTDIR\vlc.exe cdda:%1" - WriteRegStr HKCR "DVD\shell\PlayWithVLC" "" "Play with VLC media player" - WriteRegStr HKCR "DVD\shell\PlayWithVLC\command" "" \ - "$INSTDIR\vlc.exe dvd:%1" - - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayDVDMovieOnArrival" "VLCPlayDVDMovieOnArrival" "" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "Action" "Play DVD movie" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "DefaultIcon" '"$INSTDIR\vlc.exe",0' - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "InvokeProgID" "VLC.DVDMovie" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "InvokeVerb" "play" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "Provider" "VideoLAN VLC media player" - - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayCDAudioOnArrival" "VLCPlayCDAudioOnArrival" "" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "Action" "Play CD audio" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "DefaultIcon" '"$INSTDIR\vlc.exe",0' - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "InvokeProgID" "VLC.CDAudio" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "InvokeVerb" "play" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "Provider" "VideoLAN VLC media player" - WriteRegStr HKCR "VLC.DVDMovie" "" "VLC DVD Movie" - WriteRegStr HKCR "VLC.DVDMovie\shell" "" "Play" - WriteRegStr HKCR "VLC.DVDMovie\shell\Play\command" "" \ - '$INSTDIR\vlc.exe dvd:%1@1:0' - WriteRegStr HKCR "VLC.DVDMovie\DefaultIcon" "" '"$INSTDIR\vlc.exe",0' - WriteRegStr HKCR "VLC.CDAudio" "" "VLC CD Audio" - WriteRegStr HKCR "VLC.CDAudio\shell" "" "Play" - WriteRegStr HKCR "VLC.CDAudio\shell\Play\command" "" \ - '$INSTDIR\vlc.exe cdda:%1' - WriteRegStr HKCR "VLC.CDAudio\DefaultIcon" "" '"$INSTDIR\vlc.exe",0' + ;File /r locale + File "GNU GENERAL PUBLIC LICENSE.txt" + File "GoogleVideoViewerTOS_v5.rtf" + ;File /r skins + ;File /r http + + ;WriteRegStr HKCR Applications\vlc.exe "" "" + ;WriteRegStr HKCR Applications\vlc.exe\shell "" "Play" + ;WriteRegStr HKCR Applications\vlc.exe\shell\Play\command "" \ + ; '$INSTDIR\vlc.exe "%1"' SectionEnd Section "Start Menu + Desktop Shortcut" SEC02 - SectionIn 1 2 3 - CreateDirectory "$SMPROGRAMS\VideoLAN" - CreateShortCut "$SMPROGRAMS\VideoLAN\VLC media player.lnk" \ - "$INSTDIR\vlc.exe" "--intf wxwin --wxwin-embed" - CreateShortCut "$SMPROGRAMS\VideoLAN\VLC media player (alt).lnk" \ - "$INSTDIR\vlc.exe" "--intf wxwin --no-wxwin-embed" - CreateShortCut "$SMPROGRAMS\VideoLAN\VLC media player (skins).lnk" \ - "$INSTDIR\vlc.exe" "--intf skins" - CreateShortCut "$DESKTOP\VLC media player.lnk" \ - "$INSTDIR\vlc.exe" "--intf wxwin" - WriteIniStr "$INSTDIR\${PRODUCT_NAME}.url" "InternetShortcut" "URL" \ - "${PRODUCT_WEB_SITE}" - CreateShortCut "$SMPROGRAMS\VideoLAN\Website.lnk" \ - "$INSTDIR\${PRODUCT_NAME}.url" +; SectionIn 2 + SectionIn 1 2 +; CreateDirectory "$SMPROGRAMS\${PRODUCT_PATH}" +; CreateShortCut "$SMPROGRAMS\${PRODUCT_PATH}\Uninstall VLC media player.lnk" \ +; "$INSTDIR\uninstall.exe" +; CreateShortCut "$SMPROGRAMS\${PRODUCT_PATH}\VLC media player.lnk" \ +; "$INSTDIR\vlc.exe" "--intf wxwin --wxwin-embed" +; CreateShortCut "$DESKTOP\VLC media player.lnk" \ +; "$INSTDIR\vlc.exe" "--intf wxwin" +; WriteIniStr "$INSTDIR\${PRODUCT_NAME}.url" "InternetShortcut" "URL" \ +; "${PRODUCT_WEB_SITE}" +; CreateShortCut "$SMPROGRAMS\${PRODUCT_PATH}\Website.lnk" \ +; "$INSTDIR\${PRODUCT_NAME}.url" SectionEnd -Section /o "Mozilla plugin" SEC03 - SectionIn 2 3 +Section "Mozilla plugin" SEC03 + SectionIn 1 2 File /r mozilla - - WriteRegStr HKLM \ - SOFTWARE\MozillaPlugins\@videolan.org/vlc,version=${VERSION} \ - "Path" '"$INSTDIR\mozilla\npvlc.dll"' + ReadRegStr $1 HKLM "SOFTWARE\Mozilla\Mozilla Firefox" "CurrentVersion" + ReadRegStr $2 HKLM "SOFTWARE\Mozilla\Mozilla Firefox\$1\Main" "Install Directory" + CopyFiles /SILENT "$INSTDIR\mozilla\npgooglevlc.dll" "$2\Plugins" + CopyFiles /SILENT "$INSTDIR\mozilla\googlevlcintf.xpt" "$2\Plugins" + ;WriteRegStr HKLM \ + ; SOFTWARE\MozillaPlugins\@videolan.org/vlc,version=${VERSION} \ + ; "Path" '"$INSTDIR\mozilla\npgooglevlc.dll"' SectionEnd -Section /o "ActiveX plugin" SEC04 - SectionIn 2 3 +Section "ActiveX plugin" SEC04 + SectionIn 1 2 SetOutPath "$INSTDIR" - File activex\axvlc.dll - RegDLL "$INSTDIR\axvlc.dll" + File activex\axgooglevlc.dll + RegDLL "$INSTDIR\axgooglevlc.dll" SectionEnd -SubSection "File type associations" SEC05 - ; Make sure we have the same list in uninstall - !insertmacro RegisterExtensionSection ".a52" - !insertmacro RegisterExtensionSection ".aac" - !insertmacro RegisterExtensionSection ".ac3" - !insertmacro RegisterExtensionSection ".asf" - !insertmacro RegisterExtensionSection ".asx" - !insertmacro RegisterExtensionSection ".avi" - !insertmacro RegisterExtensionSection ".bin" - !insertmacro RegisterExtensionSection ".cue" - !insertmacro RegisterExtensionSection ".divx" - !insertmacro RegisterExtensionSection ".dts" - !insertmacro RegisterExtensionSection ".dv" - !insertmacro RegisterExtensionSection ".flac" - !insertmacro RegisterExtensionSection ".m1v" - !insertmacro RegisterExtensionSection ".m2v" - !insertmacro RegisterExtensionSection ".m3u" - !insertmacro RegisterExtensionSection ".mka" - !insertmacro RegisterExtensionSection ".mkv" - !insertmacro RegisterExtensionSection ".mov" - !insertmacro RegisterExtensionSection ".mp1" - !insertmacro RegisterExtensionSection ".mp2" - !insertmacro RegisterExtensionSection ".mp3" - !insertmacro RegisterExtensionSection ".mp4" - !insertmacro RegisterExtensionSection ".mpeg" - !insertmacro RegisterExtensionSection ".mpeg1" - !insertmacro RegisterExtensionSection ".mpeg2" - !insertmacro RegisterExtensionSection ".mpeg4" - !insertmacro RegisterExtensionSection ".mpg" - !insertmacro RegisterExtensionSection ".ogg" - !insertmacro RegisterExtensionSection ".ogm" - !insertmacro RegisterExtensionSection ".pls" - !insertmacro RegisterExtensionSection ".spx" - !insertmacro RegisterExtensionSection ".vob" - !insertmacro RegisterExtensionSection ".vlc" - !insertmacro RegisterExtensionSection ".wav" - !insertmacro RegisterExtensionSection ".wma" - !insertmacro RegisterExtensionSection ".wmv" -SubSectionEnd +;SubSection "File type associations" SEC05 +; ; Make sure we have the same list in uninstall +; !insertmacro RegisterExtensionSection ".avi" +; !insertmacro RegisterExtensionSection ".mpeg" +; !insertmacro RegisterExtensionSection ".mpg" +;SubSectionEnd Section -Post WriteUninstaller "$INSTDIR\uninstall.exe" WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "InstallDir" $INSTDIR WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "Version" "${VERSION}" - WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\vlc.exe" + WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\googlevlc.exe" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \ "DisplayName" "$(^Name)" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \ "UninstallString" "$INSTDIR\uninstall.exe" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \ - "DisplayIcon" "$INSTDIR\vlc.exe" + "DisplayIcon" "$INSTDIR\googlevlc.exe" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \ "DisplayVersion" "${PRODUCT_VERSION}" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \ @@ -277,11 +250,40 @@ "The VLC mozilla plugin" !insertmacro MUI_DESCRIPTION_TEXT ${SEC04} \ "The VLC ActiveX plugin" - !insertmacro MUI_DESCRIPTION_TEXT ${SEC05} \ - "Sets VLC media player as the default application for the specified file type" +; !insertmacro MUI_DESCRIPTION_TEXT ${SEC05} \ +; "Sets VLC media player as the default application for the specified file type" !insertmacro MUI_FUNCTION_DESCRIPTION_END +Function .onInit + ReadRegStr $R0 ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \ + "UninstallString" + StrCmp $R0 "" done + + MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION \ + "Google Video Viewer has already been installed. $\nClick [OK] to remove the \ + previous version or [Cancel] to cancel this installation." \ + IDOK uninst + Abort + +;Run the uninstaller +uninst: + ClearErrors + ExecWait '$R0 _?=$INSTDIR' ;Do not copy the uninstaller to a temp file + + IfErrors no_remove_uninstaller proceed_ok + ;You can either use Delete /REBOOTOK in the uninstaller or add some code + ;here to remove the uninstaller. Use a registry key to check + ;whether the user has chosen to uninstall. If you are using an uninstaller + ;components page, make sure all sections are uninstalled. + no_remove_uninstaller: + Abort + proceed_ok: + MessageBox MB_OK "Proceed to install Google Video Viewer" +done: + +FunctionEnd + Function un.onUninstSuccess HideWindow MessageBox MB_ICONINFORMATION|MB_OK \ @@ -290,77 +292,74 @@ Function un.onInit MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 \ - "Are you sure you want to completely remove $(^Name) and all of its components?" IDYES +2 + "Please make sure you close all the browser windows. Are you sure you want to completely remove $(^Name) and all of its components?" IDYES +2 + Abort + + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ; Locate any intances of browser running + Processes::FindProcess "firefox" + Pop $R0 + StrCpy $firefox $R0 + Processes::FindProcess "iexplore" + Pop $R0 + StrCpy $iexplorer $R0 + + StrCmp $firefox "1" firefox_running no_firefox + firefox_running: + StrCmp $iexplorer "1" firefox_ie only_firefox + firefox_ie: + MessageBox MB_OK "You still have Firefox and Internet Explorer running, please close all the browser windows and try it again." + Abort + only_firefox: + MessageBox MB_OK "You still have Firefox running, please close all the browser windows and try it again." + Abort + + no_firefox: + StrCmp $iexplorer "1" ie_running no_ie + ie_running: + MessageBox MB_OK "You still have Internet Explorer running, please close all the browser windows and try it again." Abort + no_ie: + ;MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 \ + ; "Ready to proceed uninstallation" IDYES +2 + ;Abort + FunctionEnd Section Uninstall SetShellVarContext all ; Make sure we have the same list in install - !insertmacro UnRegisterExtensionSection ".a52" - !insertmacro UnRegisterExtensionSection ".aac" - !insertmacro UnRegisterExtensionSection ".ac3" - !insertmacro UnRegisterExtensionSection ".asf" - !insertmacro UnRegisterExtensionSection ".asx" !insertmacro UnRegisterExtensionSection ".avi" - !insertmacro UnRegisterExtensionSection ".bin" - !insertmacro UnRegisterExtensionSection ".cue" - !insertmacro UnRegisterExtensionSection ".divx" - !insertmacro UnRegisterExtensionSection ".dts" - !insertmacro UnRegisterExtensionSection ".dv" - !insertmacro UnRegisterExtensionSection ".flac" - !insertmacro UnRegisterExtensionSection ".m1v" - !insertmacro UnRegisterExtensionSection ".m2v" - !insertmacro UnRegisterExtensionSection ".m3u" - !insertmacro UnRegisterExtensionSection ".mka" - !insertmacro UnRegisterExtensionSection ".mkv" - !insertmacro UnRegisterExtensionSection ".mov" - !insertmacro UnRegisterExtensionSection ".mp1" - !insertmacro UnRegisterExtensionSection ".mp2" - !insertmacro UnRegisterExtensionSection ".mp3" - !insertmacro UnRegisterExtensionSection ".mp4" !insertmacro UnRegisterExtensionSection ".mpeg" - !insertmacro UnRegisterExtensionSection ".mpeg1" - !insertmacro UnRegisterExtensionSection ".mpeg2" - !insertmacro UnRegisterExtensionSection ".mpeg4" !insertmacro UnRegisterExtensionSection ".mpg" - !insertmacro UnRegisterExtensionSection ".ogg" - !insertmacro UnRegisterExtensionSection ".ogm" - !insertmacro UnRegisterExtensionSection ".pls" - !insertmacro UnRegisterExtensionSection ".spx" - !insertmacro UnRegisterExtensionSection ".vob" - !insertmacro UnRegisterExtensionSection ".vlc" - !insertmacro UnRegisterExtensionSection ".wav" - !insertmacro UnRegisterExtensionSection ".wma" - !insertmacro UnRegisterExtensionSection ".wmv" - - UnRegDLL "$INSTDIR\axvlc.dll" - Delete /REBOOTOK "$INSTDIR\axvlc.dll" - - RMDir "$SMPROGRAMS\VideoLAN" - RMDir /r $SMPROGRAMS\VideoLAN - RMDir /r $INSTDIR - DeleteRegKey HKLM Software\VideoLAN - - DeleteRegKey HKCR Applications\vlc.exe - DeleteRegKey HKCR AudioCD\shell\PlayWithVLC - DeleteRegKey HKCR DVD\shell\PlayWithVLC - DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayDVDMovieOnArrival" "VLCPlayDVDMovieOnArrival" - DeleteRegKey HKLM Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival - DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayCDAudioOnArrival" "VLCPlayCDAudioOnArrival" - DeleteRegKey HKLM Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival - DeleteRegKey HKCR "VLC.MediaFile" - DeleteRegKey HKLM \ - SOFTWARE\MozillaPlugins\@videolan.org/vlc,version=${VERSION} + UnRegDLL "$INSTDIR\axgooglevlc.dll" + Delete /REBOOTOK "$INSTDIR\axgooglevlc.dll" + + DeleteRegKey HKLM "Software\${PRODUCT_PATH}" + + ;DeleteRegKey HKCR Applications\googlevlc.exe + ;DeleteRegKey HKCR "VLC.MediaFile" + + ReadRegStr $1 HKLM "SOFTWARE\Mozilla\Mozilla Firefox" "CurrentVersion" + ReadRegStr $2 HKLM "SOFTWARE\Mozilla\Mozilla Firefox\$1\Main" "Install Directory" + Delete "$2\Plugins\npgooglevlc.dll" + Delete "$2\Plugins\googlevlcintf.xpt" + ;DeleteRegKey HKLM \ + ; SOFTWARE\MozillaPlugins\@videolan.org/vlc,version=${VERSION} DeleteRegKey HKLM \ - Software\Microsoft\Windows\CurrentVersion\Uninstall\VideoLAN + "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_PATH}" - Delete "$DESKTOP\VLC media player.lnk" + ;Delete "$DESKTOP\VLC media player.lnk" DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}" + + RMDir /r "$SMPROGRAMS\${PRODUCT_GROUP}" + RMDir /r "$INSTDIR" + RMDir "$PROGRAMFILES\${PRODUCT_GROUP}" + SetAutoClose true SectionEnd