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