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