]> git.sesse.net Git - vlc/blob - vlc.win32.nsi
Use RTP for wizard, since it's capable of packet reordering.
[vlc] / vlc.win32.nsi
1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\r
2 ; NSIS installer script for vlc ;\r
3 ; (http://nsis.sourceforge.net) ;\r
4 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\r
5 \r
6 !define PRODUCT_NAME "VLC media player"\r
7 !define PRODUCT_VERSION '${VERSION}'\r
8 !define PRODUCT_GROUP "VideoLAN"\r
9 !define PRODUCT_PUBLISHER "VideoLAN Team"\r
10 !define PRODUCT_WEB_SITE "http://www.videolan.org"\r
11 !define PRODUCT_DIR_REGKEY "Software\VideoLAN\VLC"\r
12 !define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"\r
13 !define PRODUCT_UNINST_ROOT_KEY "HKLM"\r
14 !define PRODUCT_ID "{ea92ef52-afe4-4212-bacb-dfe9fca94cd6}"\r
15 \r
16 ;;;;;;;;;;;;;;;;;;;;;;;;;\r
17 ; General configuration ;\r
18 ;;;;;;;;;;;;;;;;;;;;;;;;;\r
19 \r
20 Name "${PRODUCT_GROUP} ${PRODUCT_NAME} ${PRODUCT_VERSION}"\r
21 OutFile ..\vlc-${VERSION}-win32.exe\r
22 InstallDir "$PROGRAMFILES\VideoLAN\VLC"\r
23 InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" "Install_Dir"\r
24 !ifdef NSIS_LZMA_COMPRESS_WHOLE\r
25 SetCompressor lzma\r
26 !else\r
27 SetCompressor /SOLID lzma\r
28 !endif\r
29 ;ShowInstDetails show\r
30 ;ShowUnInstDetails show\r
31 SetOverwrite ifnewer\r
32 CRCCheck on\r
33 \r
34 InstType "Normal"\r
35 InstType "Full"\r
36 \r
37 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\r
38 ; NSIS Modern User Interface configuration ;\r
39 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\r
40 \r
41 ; MUI 1.67 compatible ------\r
42   !include "MUI.nsh"\r
43 \r
44 ; MUI Settings\r
45   !define MUI_ABORTWARNING\r
46   !define MUI_ICON "vlc48x48new.ico"\r
47   !define MUI_UNICON "vlc48x48new.ico"\r
48   !define MUI_COMPONENTSPAGE_SMALLDESC\r
49 \r
50 ; Installer pages\r
51   ; Welcome page\r
52     !define MUI_WELCOMEPAGE_TITLE_3LINES\r
53     !insertmacro MUI_PAGE_WELCOME\r
54   ; License page\r
55     !insertmacro MUI_PAGE_LICENSE "COPYING.txt"\r
56   ; Components page\r
57     !insertmacro MUI_PAGE_COMPONENTS\r
58   ; Directory page\r
59     !insertmacro MUI_PAGE_DIRECTORY\r
60   ; Instfiles page\r
61     !insertmacro MUI_PAGE_INSTFILES\r
62   ; Finish page\r
63     !define MUI_FINISHPAGE_RUN "$INSTDIR\vlc.exe"\r
64     !define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\NEWS.txt"\r
65     !define MUI_FINISHPAGE_SHOWREADME_TEXT "View changelog"\r
66     !define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED\r
67     !define MUI_FINISHPAGE_LINK "Visit the VideoLAN VLC media player Website"\r
68     !define MUI_FINISHPAGE_LINK_LOCATION "http://www.videolan.org/vlc/"\r
69     !define MUI_FINISHPAGE_NOREBOOTSUPPORT\r
70     !insertmacro MUI_PAGE_FINISH\r
71 \r
72 ; Uninstaller pages\r
73     !insertmacro MUI_UNPAGE_CONFIRM\r
74     !insertmacro MUI_UNPAGE_COMPONENTS\r
75     !insertmacro MUI_UNPAGE_INSTFILES\r
76     !insertmacro MUI_UNPAGE_FINISH\r
77 \r
78 ; Language files\r
79   !insertmacro MUI_LANGUAGE "English" # first language is the default language\r
80   !insertmacro MUI_LANGUAGE "French"\r
81   !insertmacro MUI_LANGUAGE "German"\r
82   !insertmacro MUI_LANGUAGE "Spanish"\r
83   !insertmacro MUI_LANGUAGE "SimpChinese"\r
84   !insertmacro MUI_LANGUAGE "TradChinese"\r
85   !insertmacro MUI_LANGUAGE "Japanese"\r
86   !insertmacro MUI_LANGUAGE "Korean"\r
87   !insertmacro MUI_LANGUAGE "Italian"\r
88   !insertmacro MUI_LANGUAGE "Dutch"\r
89   !insertmacro MUI_LANGUAGE "Danish"\r
90   !insertmacro MUI_LANGUAGE "Swedish"\r
91   !insertmacro MUI_LANGUAGE "Norwegian"\r
92   !insertmacro MUI_LANGUAGE "Finnish"\r
93   !insertmacro MUI_LANGUAGE "Greek"\r
94   !insertmacro MUI_LANGUAGE "Russian"\r
95   !insertmacro MUI_LANGUAGE "Portuguese"\r
96   !insertmacro MUI_LANGUAGE "Arabic"\r
97 \r
98 !insertmacro MUI_RESERVEFILE_LANGDLL\r
99 \r
100 ; Reserve files\r
101   !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS\r
102 \r
103 ; MUI end ------\r
104 \r
105 ;;;;;;;;;;;;;;;;;;;\r
106 ; Extension lists ;\r
107 ;;;;;;;;;;;;;;;;;;;\r
108 \r
109 !macro MacroAudioExtensions _action\r
110   !insertmacro ${_action} ".a52"\r
111   !insertmacro ${_action} ".aac"\r
112   !insertmacro ${_action} ".ac3"\r
113   !insertmacro ${_action} ".dts"\r
114   !insertmacro ${_action} ".flac"\r
115   !insertmacro ${_action} ".mka"\r
116   !insertmacro ${_action} ".mp1"\r
117   !insertmacro ${_action} ".mp2"\r
118   !insertmacro ${_action} ".mp3"\r
119   !insertmacro ${_action} ".ogg"\r
120   !insertmacro ${_action} ".spx"\r
121   !insertmacro ${_action} ".wav"\r
122   !insertmacro ${_action} ".wma"\r
123 !macroend\r
124 \r
125 !macro MacroVideoExtensions _action\r
126   !insertmacro ${_action} ".asf"\r
127   !insertmacro ${_action} ".avi"\r
128   !insertmacro ${_action} ".divx"\r
129   !insertmacro ${_action} ".dv"\r
130   !insertmacro ${_action} ".m1v"\r
131   !insertmacro ${_action} ".m2v"\r
132   !insertmacro ${_action} ".mkv"\r
133   !insertmacro ${_action} ".mov"\r
134   !insertmacro ${_action} ".mp4"\r
135   !insertmacro ${_action} ".mpeg"\r
136   !insertmacro ${_action} ".mpeg1"\r
137   !insertmacro ${_action} ".mpeg2"\r
138   !insertmacro ${_action} ".mpeg4"\r
139   !insertmacro ${_action} ".mpg"\r
140   !insertmacro ${_action} ".ps"\r
141   !insertmacro ${_action} ".ts"\r
142   !insertmacro ${_action} ".ogm"\r
143   !insertmacro ${_action} ".vob"\r
144   !insertmacro ${_action} ".wmv"\r
145 !macroend\r
146 \r
147 !macro MacroOtherExtensions _action\r
148   !insertmacro ${_action} ".asx"\r
149   !insertmacro ${_action} ".bin"\r
150   !insertmacro ${_action} ".cue"\r
151   !insertmacro ${_action} ".m3u"\r
152   !insertmacro ${_action} ".pls"\r
153   !insertmacro ${_action} ".vlc"\r
154 !macroend\r
155 \r
156 !macro MacroAllExtensions _action\r
157   !insertmacro MacroAudioExtensions ${_action}\r
158   !insertmacro MacroVideoExtensions ${_action}\r
159   !insertmacro MacroOtherExtensions ${_action}\r
160 !macroend\r
161 \r
162 ;;;;;;;;;;;;;;;;;;;;;;;;;;\r
163 ; File type associations ;\r
164 ;;;;;;;;;;;;;;;;;;;;;;;;;;\r
165 \r
166 Function RegisterExtension\r
167   ; back up old value for extension $R0 (eg. ".opt")\r
168   ReadRegStr $1 HKCR "$R0" ""\r
169   StrCmp $1 "" NoBackup\r
170     StrCmp $1 "VLC$R0" "NoBackup"\r
171     WriteRegStr HKCR "$R0" "VLC.backup" $1\r
172 NoBackup:\r
173   WriteRegStr HKCR "$R0" "" "VLC$R0"\r
174   ReadRegStr $0 HKCR "VLC$R0" ""\r
175   WriteRegStr HKCR "VLC$R0" "" "VLC media file"\r
176   WriteRegStr HKCR "VLC$R0\shell" "" "Play"\r
177   WriteRegStr HKCR "VLC$R0\shell\Play\command" "" '"$INSTDIR\vlc.exe" "%1"'\r
178   WriteRegStr HKCR "VLC$R0\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'\r
179 FunctionEnd\r
180 \r
181 Function un.RegisterExtension\r
182   ;start of restore script\r
183   ReadRegStr $1 HKCR "$R0" ""\r
184   StrCmp $1 "VLC$R0" 0 NoOwn ; only do this if we own it\r
185     ReadRegStr $1 HKCR "$R0" "VLC.backup"\r
186     StrCmp $1 "" 0 Restore ; if backup="" then delete the whole key\r
187       DeleteRegKey HKCR "$R0"\r
188     Goto NoOwn\r
189 Restore:\r
190       WriteRegStr HKCR "$R0" "" $1\r
191       DeleteRegValue HKCR "$R0" "VLC.backup"\r
192 NoOwn:\r
193     DeleteRegKey HKCR "VLC$R0" ;Delete key with association settings\r
194 FunctionEnd\r
195 \r
196 !macro RegisterExtensionSection EXT\r
197   Section /o ${EXT}\r
198     SectionIn 2 3\r
199     Push $R0\r
200     StrCpy $R0 ${EXT}\r
201     Call RegisterExtension\r
202     Pop $R0\r
203   SectionEnd\r
204 !macroend\r
205 \r
206 !macro UnRegisterExtensionSection EXT\r
207   Push $R0\r
208   StrCpy $R0 ${EXT}\r
209   Call un.RegisterExtension\r
210   Pop $R0\r
211 !macroend\r
212 \r
213 !macro WriteRegStrSupportedTypes EXT\r
214   WriteRegStr HKCR Applications\vlc.exe\SupportedTypes ${EXT} ""\r
215 !macroend\r
216 \r
217 ;;;;;;;;;;;;;;;;;;;;;;;;\r
218 ; Context menu entries ;\r
219 ;;;;;;;;;;;;;;;;;;;;;;;;\r
220 \r
221 !macro AddContextMenu EXT\r
222   WriteRegStr HKCR ${EXT}\shell\PlayWithVLC "" "Play with VLC media player"\r
223   WriteRegStr HKCR ${EXT}\shell\PlayWithVLC\command "" '$INSTDIR\vlc.exe --no-playlist-enqueue "%1"'\r
224 \r
225   WriteRegStr HKCR ${EXT}\shell\AddToPlaylistVLC "" "Add to VLC media player's Playlist"\r
226   WriteRegStr HKCR ${EXT}\shell\AddToPlaylistVLC\command "" '$INSTDIR\vlc.exe --one-instance --playlist-enqueue "%1"'\r
227 !macroend\r
228 \r
229 !macro DeleteContextMenu EXT\r
230   DeleteRegKey HKCR ${EXT}\shell\PlayWithVLC\r
231   DeleteRegKey HKCR ${EXT}\shell\AddToPlaylistVLC\r
232 !macroend\r
233 \r
234 ;;;;;;;;;;;;;;;;;;;;;;;;;;\r
235 ; Delete prefs and cache ;\r
236 ;;;;;;;;;;;;;;;;;;;;;;;;;;\r
237 \r
238 !macro delprefs\r
239   SectionIn 2 3\r
240   StrCpy $0 0\r
241   !define Index 'Line${__LINE__}'\r
242   "${Index}-Loop:"\r
243   ; FIXME\r
244   ; this will loop through all the logged users and "virtual" windows users\r
245   ; (it looks like users are only present in HKEY_USERS when they are logged in)\r
246     ClearErrors\r
247     EnumRegKey $1 HKU "" $0\r
248     StrCmp $1 "" "${Index}-End"\r
249     IntOp $0 $0 + 1\r
250     ReadRegStr $2 HKU "$1\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" AppData\r
251     StrCmp $2 "" "${Index}-Loop"\r
252     RMDir /r "$2\vlc"\r
253     Goto "${Index}-Loop"\r
254   "${Index}-End:"\r
255   !undef Index\r
256 !macroend\r
257 \r
258 ;;;;;;;;;;;;;;;;;;;;;;\r
259 ; Installer sections ;\r
260 ;;;;;;;;;;;;;;;;;;;;;;\r
261 \r
262 Section "Media player (required)" SEC01\r
263   SectionIn 1 2 3 RO\r
264   SetShellVarContext all\r
265   SetOutPath "$INSTDIR"\r
266 \r
267   File  vlc.exe\r
268   File  vlc.exe.manifest\r
269   File  *.txt\r
270 \r
271   File  /r plugins\r
272   File  /r locale\r
273   File  /r osdmenu\r
274   File  /r skins\r
275   File  /r http\r
276 \r
277   ; Add VLC to "recomended programs" for the following extensions\r
278   WriteRegStr HKCR Applications\vlc.exe "" ""\r
279   WriteRegStr HKCR Applications\vlc.exe "FriendlyAppName" "VLC media player"\r
280   WriteRegStr HKCR Applications\vlc.exe\shell\Play "" "Play with VLC"\r
281   WriteRegStr HKCR Applications\vlc.exe\shell\Play\command "" \\r
282     '$INSTDIR\vlc.exe "%1"'\r
283   !insertmacro MacroAllExtensions WriteRegStrSupportedTypes\r
284 \r
285   WriteRegStr HKCR "AudioCD\shell\PlayWithVLC" "" "Play with VLC media player"\r
286   WriteRegStr HKCR "AudioCD\shell\PlayWithVLC\command" "" \\r
287     "$INSTDIR\vlc.exe cdda:%1"\r
288   WriteRegStr HKCR "DVD\shell\PlayWithVLC" "" "Play with VLC media player"\r
289   WriteRegStr HKCR "DVD\shell\PlayWithVLC\command" "" \\r
290     "$INSTDIR\vlc.exe dvd:%1"\r
291 \r
292   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayDVDMovieOnArrival" "VLCPlayDVDMovieOnArrival" ""\r
293   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "Action" "Play DVD movie"\r
294   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "DefaultIcon" '"$INSTDIR\vlc.exe",0'\r
295   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "InvokeProgID" "VLC.DVDMovie"\r
296   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "InvokeVerb" "play"\r
297   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "Provider" "VideoLAN VLC media player"\r
298 \r
299   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayCDAudioOnArrival" "VLCPlayCDAudioOnArrival" ""\r
300   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "Action" "Play CD audio"\r
301   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "DefaultIcon" '"$INSTDIR\vlc.exe",0'\r
302   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "InvokeProgID" "VLC.CDAudio"\r
303   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "InvokeVerb" "play"\r
304   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "Provider" "VideoLAN VLC media player"\r
305   WriteRegStr HKCR "VLC.DVDMovie" "" "VLC DVD Movie"\r
306   WriteRegStr HKCR "VLC.DVDMovie\shell" "" "Play"\r
307   WriteRegStr HKCR "VLC.DVDMovie\shell\Play\command" "" \\r
308     '$INSTDIR\vlc.exe dvd:%1'\r
309   WriteRegStr HKCR "VLC.DVDMovie\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'\r
310   WriteRegStr HKCR "VLC.CDAudio" "" "VLC CD Audio"\r
311   WriteRegStr HKCR "VLC.CDAudio\shell" "" "Play"\r
312   WriteRegStr HKCR "VLC.CDAudio\shell\Play\command" "" \\r
313     '$INSTDIR\vlc.exe cdda:%1'\r
314   WriteRegStr HKCR "VLC.CDAudio\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'\r
315 \r
316 SectionEnd\r
317 \r
318 Section "Start Menu Shortcut" SEC02a\r
319   SectionIn 1 2 3\r
320   CreateDirectory "$SMPROGRAMS\VideoLAN"\r
321   CreateShortCut "$SMPROGRAMS\VideoLAN\VLC media player.lnk" \\r
322     "$INSTDIR\vlc.exe" "--intf wx --wx-embed"\r
323   CreateShortCut "$SMPROGRAMS\VideoLAN\VLC media player (alt).lnk" \\r
324     "$INSTDIR\vlc.exe" "--intf wx --no-wx-embed"\r
325   CreateShortCut "$SMPROGRAMS\VideoLAN\VLC media player (skins).lnk" \\r
326     "$INSTDIR\vlc.exe" "--intf skins"\r
327   CreateShortCut "$SMPROGRAMS\VideoLAN\Reset VLC defaults and quit.lnk" \\r
328     "$INSTDIR\vlc.exe" "--reset-config --reset-plugins-cache --save-config vlc:quit "\r
329   WriteIniStr "$INSTDIR\${PRODUCT_NAME}.url" "InternetShortcut" "URL" \\r
330     "${PRODUCT_WEB_SITE}"\r
331   CreateShortCut "$SMPROGRAMS\VideoLAN\${PRODUCT_NAME} Website.lnk" \\r
332     "$INSTDIR\${PRODUCT_NAME}.url"\r
333   WriteIniStr "$INSTDIR\Documentation.url" "InternetShortcut" "URL" \\r
334     "${PRODUCT_WEB_SITE}/doc/"\r
335   CreateShortCut "$SMPROGRAMS\VideoLAN\Documentation.lnk" \\r
336     "$INSTDIR\Documentation.url"\r
337 SectionEnd\r
338 \r
339 Section "Desktop Shortcut" SEC02b\r
340   SectionIn 1 2 3\r
341   CreateShortCut "$DESKTOP\VLC media player.lnk" \\r
342     "$INSTDIR\vlc.exe" "--intf wx"\r
343 SectionEnd\r
344 \r
345 Section /o "Mozilla plugin" SEC03\r
346   SectionIn 2 3\r
347   File /r mozilla\r
348 \r
349   ; doesn't work. bug in mozilla/mozilla firefox or moz documentation (xpt file isn't loaded)\r
350   ; see mozilla bugs 184506 and 159445\r
351   ;!define Moz "SOFTWARE\MozillaPlugins\@videolan.org/vlc,version=${VERSION}"\r
352   ;WriteRegStr HKLM ${Moz} "Description" "VideoLAN VLC plugin for Mozilla"\r
353   ;WriteRegStr HKLM ${Moz} "Path" "$INSTDIR\mozilla\npvlc.dll"\r
354   ;WriteRegStr HKLM ${Moz} "Product" "VLC media player"\r
355   ;WriteRegStr HKLM ${Moz} "Vendor" "VideoLAN"\r
356   ;WriteRegStr HKLM ${Moz} "Version" "${VERSION}"\r
357   ;WriteRegStr HKLM ${Moz} "XPTPath" "$INSTDIR\mozilla\vlcintf.xpt"\r
358 \r
359   Push $R0\r
360   Push $R1\r
361   Push $R2\r
362 \r
363   !define Index 'Line${__LINE__}'\r
364   StrCpy $R1 "0"\r
365 \r
366   "${Index}-Loop:"\r
367 \r
368     ; Check for Key\r
369     EnumRegKey $R0 HKLM "SOFTWARE\Mozilla" "$R1"\r
370     StrCmp $R0 "" "${Index}-End"\r
371     IntOp $R1 $R1 + 1\r
372     ReadRegStr $R2 HKLM "SOFTWARE\Mozilla\$R0\Extensions" "Plugins"\r
373     StrCmp $R2 "" "${Index}-Loop" ""\r
374 \r
375     CopyFiles "$INSTDIR\mozilla\*" "$R2"\r
376     Goto "${Index}-Loop"\r
377 \r
378   "${Index}-End:"\r
379   !undef Index\r
380 \r
381 SectionEnd\r
382 \r
383 Section /o "ActiveX plugin" SEC04\r
384   SectionIn 2 3\r
385   SetOutPath "$INSTDIR"\r
386   File activex\axvlc.dll\r
387   RegDLL "$INSTDIR\axvlc.dll"\r
388 SectionEnd\r
389 \r
390 Section "Context Menus" SEC05\r
391   SectionIn 1 2 3\r
392   !insertmacro MacroAllExtensions AddContextMenu\r
393   !insertmacro AddContextMenu "Folder"\r
394 SectionEnd\r
395 \r
396 SectionGroup "File type associations" SEC06\r
397   SectionGroup "Audio Files"\r
398     !insertmacro MacroAudioExtensions RegisterExtensionSection\r
399   SectionGroupEnd\r
400   SectionGroup "Video Files"\r
401     !insertmacro MacroVideoExtensions RegisterExtensionSection\r
402   SectionGroupEnd\r
403   SectionGroup "Other"\r
404     !insertmacro MacroOtherExtensions RegisterExtensionSection\r
405   SectionGroupEnd\r
406 SectionGroupEnd\r
407 \r
408 Section /o "Delete preferences and cache" SEC07\r
409   !insertmacro delprefs\r
410 SectionEnd\r
411 \r
412 ; Installer section descriptions\r
413 !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN\r
414   !insertmacro MUI_DESCRIPTION_TEXT ${SEC01} \\r
415     "The media player itself"\r
416   !insertmacro MUI_DESCRIPTION_TEXT ${SEC02a} \\r
417     "Adds icons to your start menu for easy access"\r
418   !insertmacro MUI_DESCRIPTION_TEXT ${SEC02b} \\r
419     "Adds icon to your desktop for easy access"\r
420   !insertmacro MUI_DESCRIPTION_TEXT ${SEC03} \\r
421     "The VLC Mozilla and Mozilla Firefox plugin"\r
422   !insertmacro MUI_DESCRIPTION_TEXT ${SEC04} \\r
423     "The VLC ActiveX plugin"\r
424   !insertmacro MUI_DESCRIPTION_TEXT ${SEC05} \\r
425     "Add context menu items ('Play With VLC' and 'Add To VLC's Playlist')"\r
426   !insertmacro MUI_DESCRIPTION_TEXT ${SEC06} \\r
427     "Sets VLC media player as the default application for the specified file type"\r
428   !insertmacro MUI_DESCRIPTION_TEXT ${SEC07} \\r
429     "Deletes VLC media player preferences and cache files leftover from previous installations"\r
430 !insertmacro MUI_FUNCTION_DESCRIPTION_END\r
431 \r
432 Function .onInit\r
433   ReadRegStr $R0  ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \\r
434   "UninstallString"\r
435   StrCmp $R0 "" done\r
436  \r
437   MessageBox MB_YESNO|MB_ICONEXCLAMATION \\r
438   "VLC media player has already been installed. $\nDo you want to remove \\r
439   the previous version before installing $(^Name) ?" \\r
440   IDNO done\r
441   \r
442   ;Run the uninstaller\r
443   ;uninst:\r
444     ClearErrors\r
445     ExecWait '$R0 _?=$INSTDIR' ;Do not copy the uninstaller to a temp file\r
446   done:\r
447   !insertmacro MUI_LANGDLL_DISPLAY\r
448 FunctionEnd\r
449 \r
450 Section -Post\r
451   WriteUninstaller "$INSTDIR\uninstall.exe"\r
452   WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "InstallDir" $INSTDIR\r
453   WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "Version" "${VERSION}"\r
454   WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\vlc.exe"\r
455 \r
456   WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \\r
457     "DisplayName" "$(^Name)"\r
458   WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \\r
459     "UninstallString" "$INSTDIR\uninstall.exe"\r
460   WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \\r
461     "DisplayIcon" "$INSTDIR\vlc.exe"\r
462   WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \\r
463     "DisplayVersion" "${PRODUCT_VERSION}"\r
464   WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \\r
465     "URLInfoAbout" "${PRODUCT_WEB_SITE}"\r
466   WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \\r
467     "Publisher" "${PRODUCT_PUBLISHER}"\r
468 SectionEnd\r
469 \r
470 ;;;;;;;;;;;;;;;;;;;;;;;;\r
471 ; Uninstaller sections ;\r
472 ;;;;;;;;;;;;;;;;;;;;;;;;\r
473 \r
474 Section "Uninstall" SEC91\r
475   SectionIn 1 2 3 RO\r
476   SetShellVarContext all\r
477 \r
478   !insertmacro MacroAllExtensions DeleteContextMenu\r
479   !insertmacro MacroAllExtensions UnRegisterExtensionSection\r
480   !insertmacro DeleteContextMenu "Folder"\r
481 \r
482   UnRegDLL "$INSTDIR\axvlc.dll"\r
483   Delete /REBOOTOK "$INSTDIR\axvlc.dll"\r
484 \r
485   ;remove mozilla plugin\r
486   Push $R0\r
487   Push $R1\r
488   Push $R2\r
489 \r
490   !define Index 'Line${__LINE__}'\r
491   StrCpy $R1 "0"\r
492 \r
493   "${Index}-Loop:"\r
494 \r
495     ; Check for Key\r
496     EnumRegKey $R0 HKLM "SOFTWARE\Mozilla" "$R1"\r
497     StrCmp $R0 "" "${Index}-End"\r
498     IntOp $R1 $R1 + 1\r
499     ReadRegStr $R2 HKLM "SOFTWARE\Mozilla\$R0\Extensions" "Plugins"\r
500     StrCmp $R2 "" "${Index}-Loop" ""\r
501 \r
502     Delete "$R2\vlcintf.xpt"\r
503     Delete "$R2\npvlc.dll"\r
504     Goto "${Index}-Loop"\r
505 \r
506   "${Index}-End:"\r
507   !undef Index\r
508 \r
509   RMDir "$SMPROGRAMS\VideoLAN"\r
510   RMDir /r $SMPROGRAMS\VideoLAN\r
511   RMDir /r $INSTDIR\r
512   DeleteRegKey HKLM Software\VideoLAN\r
513 \r
514   DeleteRegKey HKCR Applications\vlc.exe\r
515   DeleteRegKey HKCR AudioCD\shell\PlayWithVLC\r
516   DeleteRegKey HKCR DVD\shell\PlayWithVLC\r
517   DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayDVDMovieOnArrival" "VLCPlayDVDMovieOnArrival"\r
518   DeleteRegKey HKLM Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival\r
519   DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayCDAudioOnArrival" "VLCPlayCDAudioOnArrival"\r
520   DeleteRegKey HKLM Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival\r
521   DeleteRegKey HKCR "VLC.MediaFile"\r
522 \r
523   DeleteRegKey HKLM \\r
524     "SOFTWARE\MozillaPlugins\@videolan.org/vlc,version=${VERSION}"\r
525 \r
526   DeleteRegKey HKLM \\r
527     "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"\r
528 \r
529   Delete "$DESKTOP\VLC media player.lnk"\r
530 \r
531   DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"\r
532   DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"\r
533   SetAutoClose true\r
534 SectionEnd\r
535 \r
536 Section /o "un.Delete preferences and cache" SEC92\r
537   !insertmacro delprefs\r
538 SectionEnd\r
539 \r
540 ; Uninstaller section descriptions\r
541 !insertmacro MUI_UNFUNCTION_DESCRIPTION_BEGIN\r
542   !insertmacro MUI_DESCRIPTION_TEXT ${SEC91} \\r
543     "Uninstall VLC media player and all its components"\r
544   !insertmacro MUI_DESCRIPTION_TEXT ${SEC92} \\r
545     "Deletes VLC media player preferences and cache files"\r
546 !insertmacro MUI_UNFUNCTION_DESCRIPTION_END\r
547 \r
548 ;Function un.onUninstSuccess\r
549 ;  HideWindow\r
550 ;  MessageBox MB_ICONINFORMATION|MB_OK \\r
551 ;    "$(^Name) was successfully removed from your computer."\r
552 ;FunctionEnd\r
553 \r
554 Function un.onInit\r
555   !insertmacro MUI_LANGDLL_DISPLAY\r
556 FunctionEnd\r