]> git.sesse.net Git - vlc/blob - extras/package/win32/msi/product.wxs
msi: remove older (nsis) version before install
[vlc] / extras / package / win32 / msi / product.wxs
1 <?xml version='1.0' encoding="utf-8"?>
2 <!--
3
4  * Copyright (C) 2011 VideoLAN and its authors
5  *
6  * Author: Ludovic Fauvet <etix@videolan.org>
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation; either version 2 of the License, or
11  * (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, write to the Free Software
20  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
21
22 -->
23 <?include $(sys.CURRENTDIR)\config.wxi?>
24 <Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'
25      xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
26     <Product
27         Id='*'
28         Name='$(var.ProductName) $(var.Version) ($(var.PlatformString))'
29         Language='1033'
30         Version='$(var.VersionLong)'
31         Manufacturer='$(var.Manufacturer)'
32         UpgradeCode='d2e0205b-0d3a-46e2-adf7-0504ff48cf04'>
33         <Package
34             Description='$(var.ShortProductName) - The video swiss knife'
35             Manufacturer='$(var.Manufacturer)'
36             InstallPrivileges='elevated'
37             InstallScope='perMachine'
38             InstallerVersion='200'
39             Compressed='yes' />
40
41         <Condition Message="This application is only supported on Windows XP or higher.">
42             <![CDATA[Installed OR (VersionNT >= 501)]]>
43         </Condition>
44
45         <MajorUpgrade Schedule="afterInstallInitialize" DowngradeErrorMessage="A later version of [ProductName] is already installed. Setup will now exit."/>
46         <Property Id="NSISLOCATION">
47             <RegistrySearch Id="NSISLOCATION" Type="raw" Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\VLC media player" Name="UninstallString" />
48         </Property>
49
50         <Icon Id="vlc.ico" SourceFile="$(var.SourceDir)/vlc.ico"/>
51
52         <!-- The about link that appears in Add & Remove Programs. -->
53         <Property Id="ARPURLINFOABOUT" Value="$(var.AboutURL)" />
54         <!-- The help link that appears in Add & Remove Programs. -->
55         <Property Id="ARPHELPLINK" Value="$(var.SupportURL)" />
56         <!-- The update link that appears in Add & Remove Programs. -->
57         <Property Id="ARPURLUPDATEINFO" Value="$(var.UpdatesURL)" />
58         <!-- The icon that appears in Add & Remove Programs. -->
59         <Property Id="ARPPRODUCTICON" Value="vlc.ico" />
60
61
62         <Property Id="ApplicationFolderName" Value="$(var.Manufacturer)\$(var.AppFolder)" />
63         <Property Id="WixAppFolder" Value="WixPerMachineFolder" />
64         <Property Id="APPLICATIONFOLDER">
65             <RegistrySearch Id="FindInstallRegDir" Type="raw" Root="HKLM" Win64="$(var.Win64)" Key="Software\VideoLAN\VLC" Name="InstallDir" />
66         </Property>
67
68         <WixVariable Id="WixUISupportPerUser" Value="1" />
69         <WixVariable Id="WixUILicenseRtf" Value="LICENSE.rtf" />
70         <WixVariable Id="WixUIBannerBmp" Value="bannrbmp.bmp" />
71
72         <Media Id='1' Cabinet='product.cab' EmbedCab='yes' CompressionLevel="high" />
73
74         <Directory Id='TARGETDIR' Name='SourceDir'>
75             <Directory Id='$(var.PlatformProgramFilesFolder)' Name='PFiles'>
76                 <Directory Id='VideoLANFolder' Name='$(var.Manufacturer)'>
77                     <Directory Id='APPLICATIONFOLDER' Name='$(var.AppFolder)' FileSource="$(var.SourceDir)">
78
79                         <Component Id="InstallRegDir" Guid="$(var.CompInstallRegDir)" DiskId="1" Win64="$(var.Win64)">
80                             <RegistryKey Id='RegInstallDir' Root='HKLM' Key='Software\VideoLAN\VLC' Action='createAndRemoveOnUninstall' >
81                                 <RegistryValue Name='InstallDir' Type='string' Value='[APPLICATIONFOLDER]' />
82                             </RegistryKey>
83                         </Component>
84
85                         <Component Id='CompVLC' Guid='$(var.CompVLCexe)' Win64="$(var.Win64)">
86                             <File Id='vlc.exe' Name='vlc.exe' KeyPath='yes' Vital='yes' DiskId='1' />
87                             <File Id='vlc.exe.manifest' Name='vlc.exe.manifest' DiskId='1' />
88
89                             <Shortcut Id="DesktopShortcut"
90                                 Directory="DesktopFolder"
91                                 Name="$(var.ProductName)"
92                                 WorkingDirectory="APPLICATIONFOLDER"
93                                 Description="$(var.ProductName)"
94                                 Icon='vlc.ico'
95                                 Advertise='yes' />
96
97                             <!-- Capabilities keys for Vista/7 "Set Program Access and Defaults" -->
98                             <RegistryValue Root="HKLM" Key="Software\Clients\Media\VLC\Capabilities" Name="ApplicationDescription" Value="$(var.ProductName)" Type="string" />
99                             <RegistryValue Root="HKLM" Key="Software\Clients\Media\VLC\Capabilities" Name="ApplicationIcon" Value="[#vlc.exe],0" Type="string" />
100                             <RegistryValue Root="HKLM" Key="Software\Clients\Media\VLC\Capabilities" Name="ApplicationName" Value="$(var.ProductName)" Type="string" />
101                             <RegistryValue Root="HKLM" Key="Software\Clients\Media\VLC\DefaultIcon" Value="[#vlc.exe],0" Type="string" />
102                             <RegistryValue Root="HKLM" Key="Software\Clients\Media\VLC\shell\Open\command" Value="&quot;[#vlc.exe]&quot; --started-from-file &quot;%1&quot;" Type="string" />
103                             <RegistryValue Root="HKLM" Key="Software\RegisteredApplications" Name="$(var.ShortProductName)" Value="Software\Clients\Media\VLC\Capabilities" Type="string" />
104
105                             <!-- Open With... contextual menu -->
106                             <RegistryValue Root="HKCR" Key="Applications\vlc.exe\shell\open" Name="$(var.ShortProductName)" Value="$(var.ProductName)" Type="string" />
107
108                             <!-- App Paths to support Start, Run -->
109                             <RegistryValue Root="HKLM" Key="SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\vlc.exe" Value="[#vlc.exe]" Type="string" />
110                             <RegistryValue Root="HKLM" Key="SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\vlc.exe" Name="Path" Value="[APPLICATIONFOLDER]" Type="string" />
111                         </Component>
112
113                         <Component Id='CompTXT' Guid='7fbd228c-87d8-4e91-85b3-aa65e03c9f1e' Win64="$(var.Win64)">
114                             <File Id='AUTHORS.txt' Name='AUTHORS.txt'  DiskId='1' />
115                             <File Id='COPYING.txt' Name='COPYING.txt' DiskId='1' />
116                             <File Id='NEWS.txt' Name='NEWS.txt' DiskId='1' />
117                             <File Id='README.txt' Name='README.txt' DiskId='1' />
118                             <File Id='THANKS.txt' Name='THANKS.txt' DiskId='1' />
119                         </Component>
120
121                         <Component Id='CompLibvlccore' Guid='efa826fd-0037-4ccd-9573-604fde3b9efa' Win64="$(var.Win64)">
122                             <File Id='libvlccore.dll' Name='libvlccore.dll' KeyPath='yes' Vital='yes' DiskId='1' />
123                         </Component>
124
125                         <Component Id='CompLibvlc' Guid='50d7e1e1-4512-4020-9f7b-5dc8484574f3' Win64="$(var.Win64)">
126                             <File Id='libvlc.dll' Name='libvlc.dll' KeyPath='yes' Vital='yes' DiskId='1' />
127                             <File Id='libvlc.dll.manifest' Name='libvlc.dll.manifest' DiskId='1' />
128                         </Component>
129
130                         <Component Id='CompNpvlc' Guid='e7d6b54c-c4ea-4280-90f5-c6ae80073d25' Win64="$(var.Win64)">
131                             <File Id='npvlc.dll' Name='npvlc.dll' KeyPath='yes' DiskId='1' />
132                             <File Id='npvlc.dll.manifest' Name='npvlc.dll.manifest' DiskId='1' />
133                         </Component>
134
135                         <Component Id='CompAxvlc' Guid='cabe28b1-5586-4ac3-815b-4f3a834c0d54' Win64="$(var.Win64)">
136                             <File Id='axvlc.dll' Name='axvlc.dll' KeyPath='yes' DiskId='1' />
137                             <File Id='axvlc.dll.manifest' Name='axvlc.dll.manifest' DiskId='1' />
138                         </Component>
139
140                         <Component Id='CompCacheGen' Guid='e1b4a499-e223-4c18-9de0-258f12b8dcfa' Win64="$(var.Win64)">
141                             <File Id='vlc_cache_gen.exe' Name='vlc-cache-gen.exe' KeyPath='yes' DiskId='1' />
142                         </Component>
143
144                         <Component Id='CompIcon' Guid='8707410c-55fe-4c38-924e-438762b8b82e' Win64="$(var.Win64)">
145                             <File Id='vlc.ico' Name='vlc.ico' KeyPath='yes' DiskId='1' />
146                         </Component>
147
148                         <Directory Id='PLUGINSDIR' Name='plugins'>
149                             <Component Id='CompPluginsCache' Guid='0b72e987-8e3c-4201-aa3e-5b57ca9c040e' Win64="$(var.Win64)">
150                                 <RemoveFile Id="RemovePluginsCache" Name="plugins.dat" On="uninstall" />
151                             </Component>
152                         </Directory>
153
154                         <Component Id='CompPlayDiscs' Guid='b0d90296-b20c-4c74-a3b3-a7694e011f25' Win64="$(var.Win64)">
155                             <!-- Audio CD -->
156                             <RegistryValue Root="HKCR" Key="AudioCD\shell\PlayWithVLC" Value="Play with VLC media player" Type="string" />
157                             <RegistryValue Root="HKCR" Key="AudioCD\shell\PlayWithVLC\command" Value="&quot;[#vlc.exe]&quot; --started-from-file cdda:///%1" Type="string" />
158                             <!-- DVD -->
159                             <RegistryValue Root="HKCR" Key="DVD\shell\PlayWithVLC" Value="Play with VLC media player" Type="string" />
160                             <RegistryValue Root="HKCR" Key="DVD\shell\PlayWithVLC\command" Value="&quot;[#vlc.exe]&quot; --started-from-file dvd:///%1" Type="string" />
161
162                             <!-- DVD video Handler -->
163                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayDVDMovieOnArrival" Name="VLCPlayDVDMovieOnArrival" Value="" Type="string" />
164                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" Name="Action" Value="Play DVD movie" Type="string" />
165                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" Name="DefaultIcon" Value="[#vlc.exe],0" Type="string" />
166                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" Name="InvokeProgID" Value="VLC.DVDMovie" Type="string" />
167                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" Name="InvokeVerb" Value="Open" Type="string" />
168                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" Name="Provider" Value="$(var.ProductName)" Type="string" />
169
170                             <!-- Audio CD Handler -->
171                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayCDAudioOnArrival" Name="VLCPlayCDAudioOnArrival" Value="" Type="string" />
172                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" Name="Action" Value="Play audio CD" Type="string" />
173                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" Name="DefaultIcon" Value="[#vlc.exe],0" Type="string" />
174                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" Name="InvokeProgID" Value="VLC.CDAudio" Type="string" />
175                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" Name="InvokeVerb" Value="Open" Type="string" />
176                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" Name="Provider" Value="$(var.ProductName)" Type="string" />
177
178                             <!-- VCD Handler -->
179                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayVideoCDMovieOnArrival" Name="VLCPlayVCDMovieOnArrival" Value="" Type="string" />
180                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayVCDMovieOnArrival" Name="Action" Value="Play VCD movie" Type="string" />
181                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayVCDMovieOnArrival" Name="DefaultIcon" Value="[#vlc.exe],0" Type="string" />
182                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayVCDMovieOnArrival" Name="InvokeProgID" Value="VLC.VCDMovie" Type="string" />
183                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayVCDMovieOnArrival" Name="InvokeVerb" Value="Open" Type="string" />
184                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayVCDMovieOnArrival" Name="Provider" Value="$(var.ProductName)" Type="string" />
185
186                             <!-- SVCD Handler -->
187                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlaySuperVideoCDMovieOnArrival" Name="VLCPlaySVCDMovieOnArrival" Value="" Type="string" />
188                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlaySVCDMovieOnArrival" Name="Action" Value="Play SVCD movie" Type="string" />
189                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlaySVCDMovieOnArrival" Name="DefaultIcon" Value="[#vlc.exe],0" Type="string" />
190                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlaySVCDMovieOnArrival" Name="InvokeProgID" Value="VLC.SVCDMovie" Type="string" />
191                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlaySVCDMovieOnArrival" Name="InvokeVerb" Value="Open" Type="string" />
192                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlaySVCDMovieOnArrival" Name="Provider" Value="$(var.ProductName)" Type="string" />
193
194                             <!-- DVD Audio Handler -->
195                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayDVDAudioOnArrival" Name="VLCPlayDVDAudioOnArrival" Value="" Type="string" />
196                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDAudioOnArrival" Name="Action" Value="Play audio DVD" Type="string" />
197                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDAudioOnArrival" Name="DefaultIcon" Value="[#vlc.exe],0" Type="string" />
198                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDAudioOnArrival" Name="InvokeProgID" Value="VLC.OPENFolder" Type="string" />
199                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDAudioOnArrival" Name="InvokeVerb" Value="Open" Type="string" />
200                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDAudioOnArrival" Name="Provider" Value="$(var.ProductName)" Type="string" />
201
202                             <!-- Generic video files Handler -->
203                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayVideoFilesOnArrival" Name="VLCPlayVideoFilesOnArrival" Value="" Type="string" />
204                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayVideoFilesOnArrival" Name="Action" Value="Play video files" Type="string" />
205                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayVideoFilesOnArrival" Name="DefaultIcon" Value="[#vlc.exe],0" Type="string" />
206                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayVideoFilesOnArrival" Name="InvokeProgID" Value="VLC.OPENFolder" Type="string" />
207                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayVideoFilesOnArrival" Name="InvokeVerb" Value="Open" Type="string" />
208                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayVideoFilesOnArrival" Name="Provider" Value="$(var.ProductName)" Type="string" />
209
210                             <!-- Generic audio files Handler -->
211                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayMusicFilesOnArrival" Name="VLCPlayMusicFilesOnArrival" Value="" Type="string" />
212                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayMusicFilesOnArrival" Name="Action" Value="Play audio files" Type="string" />
213                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayMusicFilesOnArrival" Name="DefaultIcon" Value="[#vlc.exe],0" Type="string" />
214                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayMusicFilesOnArrival" Name="InvokeProgID" Value="VLC.OPENFolder" Type="string" />
215                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayMusicFilesOnArrival" Name="InvokeVerb" Value="Open" Type="string" />
216                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayMusicFilesOnArrival" Name="Provider" Value="$(var.ProductName)" Type="string" />
217
218
219                             <RegistryValue Root="HKCR" Key="VLC.DVDMovie" Value="VLC DVD Movie" Type="string" />
220                             <RegistryValue Root="HKCR" Key="VLC.DVDMovie\shell" Value="Open" Type="string" />
221                             <RegistryValue Root="HKCR" Key="VLC.DVDMovie\shell\open\command" Value="&quot;[#vlc.exe]&quot; --started-from-file dvd:///%1" Type="string" />
222                             <RegistryValue Root="HKCR" Key="VLC.DVDMovie\DefaultIcon" Value="[#vlc.exe],0" Type="string" />
223
224                             <RegistryValue Root="HKCR" Key="VLC.CDAudio" Value="VLC CD Audio" Type="string" />
225                             <RegistryValue Root="HKCR" Key="VLC.CDAudio\shell" Value="Open" Type="string" />
226                             <RegistryValue Root="HKCR" Key="VLC.CDAudio\shell\open\command" Value="&quot;[#vlc.exe]&quot; --started-from-file cdda:///%1" Type="string" />
227                             <RegistryValue Root="HKCR" Key="VLC.CDAudio\DefaultIcon" Value="[#vlc.exe],0" Type="string" />
228
229                             <RegistryValue Root="HKCR" Key="VLC.VCDMovie" Value="VLC VCD Movie" Type="string" />
230                             <RegistryValue Root="HKCR" Key="VLC.VCDMovie\shell" Value="Open" Type="string" />
231                             <RegistryValue Root="HKCR" Key="VLC.VCDMovie\shell\open\command" Value="&quot;[#vlc.exe]&quot; --started-from-file vcd:///%1" Type="string" />
232                             <RegistryValue Root="HKCR" Key="VLC.VCDMovie\DefaultIcon" Value="[#vlc.exe],0" Type="string" />
233
234                             <RegistryValue Root="HKCR" Key="VLC.SVCDMovie" Value="VLC SVCD Movie" Type="string" />
235                             <RegistryValue Root="HKCR" Key="VLC.SVCDMovie\shell" Value="Open" Type="string" />
236                             <RegistryValue Root="HKCR" Key="VLC.SVCDMovie\shell\open\command" Value="&quot;[#vlc.exe]&quot; --started-from-file vcd:///%1" Type="string" />
237                             <RegistryValue Root="HKCR" Key="VLC.SVCDMovie\DefaultIcon" Value="[#vlc.exe],0" Type="string" />
238
239                             <RegistryValue Root="HKCR" Key="VLC.OPENFolder" Value="VLC Play Content" Type="string" />
240                             <RegistryValue Root="HKCR" Key="VLC.OPENFolder\shell" Value="Open" Type="string" />
241                             <RegistryValue Root="HKCR" Key="VLC.OPENFolder\shell\open\command" Value="&quot;[#vlc.exe]&quot; %1" Type="string" />
242                             <RegistryValue Root="HKCR" Key="VLC.OPENFolder\DefaultIcon" Value="[#vlc.exe],0" Type="string" />
243                         </Component>
244                     </Directory>
245                 </Directory>
246             </Directory>
247
248             <!-- shortcuts -->
249             <Directory Id="ProgramMenuFolder">
250                 <Directory Id="ProgramMenuManufacturerFolder" Name="$(var.Manufacturer)">
251                     <Directory Id="ProgramMenuProductFolder" Name="$(var.ShortProductName)" />
252                 </Directory>
253             </Directory>
254             <Directory Id="DesktopFolder" Name="Desktop"/>
255         </Directory>
256
257         <DirectoryRef Id="ProgramMenuProductFolder">
258             <Component Id="CompProgramMenuShortcuts" Guid="*" Win64="$(var.Win64)">
259                 <!-- create folders -->
260                 <CreateFolder Directory="ProgramMenuManufacturerFolder" />
261                 <CreateFolder Directory="ProgramMenuProductFolder" />
262                 <!-- remove folder -->
263                 <RemoveFolder Id="RemoveProgramMenuManufacturerFolder"
264                               Directory="ProgramMenuManufacturerFolder"
265                               On="uninstall" />
266                 <RemoveFolder Id="RemoveProgramMenuProductFolder"
267                               Directory="ProgramMenuProductFolder"
268                               On="uninstall" />
269                 <!-- Application shortcuts -->
270                 <Shortcut Id="VLCShortcut" Name="$(var.ProductName)" Target="[APPLICATIONFOLDER]vlc.exe" />
271                 <Shortcut Id="SkinShortcut" Name="$(var.ProductName) skinned" Target="[APPLICATIONFOLDER]vlc.exe" Arguments="-Iskins" />
272                 <Shortcut Id="VLCCleanShortcut" Name="Reset $(var.ProductName) preferences and cache files" Target="[APPLICATIONFOLDER]vlc.exe" Arguments="--reset-config --reset-plugins-cache vlc://quit" />
273                 <Shortcut Id="NEWSShortcut" Name="Release Notes" Target="[APPLICATIONFOLDER]NEWS.txt" />
274                 <util:InternetShortcut Id="WebsiteShortcut" Name="VideoLAN website" Target="http://www.videolan.org/"/>
275                 <util:InternetShortcut Id="DocumentationShortcut" Name="Documentation" Target="http://www.videolan.org/doc/"/>
276                 <!-- RegistryValue which serves as KeyPath -->
277                 <RegistryValue Root="HKCU"
278                                Key="Software\VideoLAN\VLC"
279                                Name="StartMenuShortcuts"
280                                Type="integer"
281                                Value="1"
282                                KeyPath="yes" />
283              </Component>
284         </DirectoryRef>
285
286         <Feature Id='VLC' Title='$(var.ProductName)' Level='1' Absent="disallow" AllowAdvertise="no" Display="expand" Description="The $(var.ProductName) application">
287             <ComponentRef Id='InstallRegDir' />
288             <ComponentRef Id='CompVLC' />
289             <ComponentRef Id='CompLibvlccore' />
290             <ComponentRef Id='CompLibvlc' />
291             <ComponentRef Id='CompNpvlc' />
292             <ComponentRef Id='CompCacheGen' />
293             <ComponentRef Id='CompIcon' />
294             <ComponentRef Id='CompTXT' />
295             <ComponentRef Id='CompPluginsCache' />
296             <ComponentRef Id='CompProgramMenuShortcuts' />
297
298             <ComponentGroupRef Id='CompPluginsGroup' />
299             <ComponentGroupRef Id='CompLocaleGroup' />
300             <ComponentGroupRef Id='CompLuaGroup' />
301             <ComponentGroupRef Id='CompSkinsGroup' />
302
303             <Feature Id='WEBPLUGINS' Title='Web plugins' Level='1' AllowAdvertise="no">
304                 <Feature Id='ACTIVEX' Title='ActiveX plugin' Level='1' AllowAdvertise="no">
305                     <ComponentRef Id='CompAxvlc' />
306                     <ComponentGroupRef Id='CompAxvlcGroup' />
307                 </Feature>
308                 <Feature Id='MOZILLA' Title='Mozilla plugin' Level='1' AllowAdvertise="no">
309                     <ComponentRef Id='CompNpvlc' />
310                 </Feature>
311             </Feature>
312             <Feature Id='FILEASSOCIATION' Title='File associations' Level='1' AllowAdvertise="no">
313                 <Feature Id='VIDEOFILEASSOCIATION' Title='Video' Level='1' AllowAdvertise="no">
314                     <ComponentRef Id='CompVideoFileAssociation' />
315                 </Feature>
316                 <Feature Id='AUDIOFILEASSOCIATION' Title='Audio' Level='1' AllowAdvertise="no">
317                     <ComponentRef Id='CompAudioFileAssociation' />
318                 </Feature>
319                 <Feature Id='OTHERFILEASSOCIATION' Title='Others' Level='1' AllowAdvertise="no">
320                     <ComponentRef Id='CompOtherFileAssociation' />
321                 </Feature>
322             </Feature>
323             <Feature Id='DISCSPLAYBACK' Title='Disc associations' Level='1' AllowAdvertise="no">
324                 <ComponentRef Id='CompPlayDiscs' />
325             </Feature>
326         </Feature>
327
328         <UIRef Id="WixUI_Advanced" />
329
330         <InstallExecuteSequence>
331             <!-- <RemoveExistingProducts After="InstallValidate" /> -->
332             <Custom Action="ExecVLCNSISUninstall" Before="InstallValidate">NSISLOCATION AND NOT Installed</Custom>
333             <Custom Action="ExecVLCCacheGen" Before="InstallFinalize">REINSTALL OR NOT Installed</Custom>
334             <Custom Action="SetExecVLCCacheGen" Before="ExecVLCCacheGen">REINSTALL OR NOT Installed</Custom>
335         </InstallExecuteSequence>
336
337         <!-- Uninstall an older version of VLC (using NSIS) -->
338         <CustomAction Id            = "ExecVLCNSISUninstall"
339                       Directory     = "APPLICATIONFOLDER"
340                       ExeCommand    = "[NSISLOCATION] /S"
341                       Execute       = "immediate"
342                       Impersonate   = "no"
343                       Return        = "check" />
344         <!-- Launch silently vlc-cache-gen.exe during install -->
345         <CustomAction Id            = "SetExecVLCCacheGen"
346                       Property      = "ExecVLCCacheGen"
347                       Value         = "&quot;[#vlc_cache_gen.exe]&quot; &quot;[APPLICATIONFOLDER]plugins&quot;" />
348         <CustomAction Id            = "ExecVLCCacheGen"
349                       BinaryKey     = "WixCA"
350                       DllEntry      = "CAQuietExec"
351                       Execute       = "deferred"
352                       Impersonate   = "no"
353                       Return        = "ignore" />
354
355         <!-- Launch VLC after setup exits -->
356         <CustomAction Id            = "StartAppOnExit"
357                       FileKey       = "vlc.exe"
358                       ExeCommand    = ""
359                       Execute       = "immediate"
360                       Impersonate   = "yes"
361                       Return        = "asyncNoWait" />
362         <Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT"
363           Value="Launch VLC media player when setup exits." />
364         <Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOX" Value="1" />
365
366         <UI>
367             <Publish Dialog  = "ExitDialog"
368                      Control = "Finish"
369                      Order   = "1"
370                      Event   = "DoAction"
371                      Value   = "StartAppOnExit">
372                 WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT Installed
373             </Publish>
374             <ProgressText Action="ExecVLCCacheGen">Generating modules cache...</ProgressText>
375        </UI>
376    </Product>
377 </Wix>
378
379 <!--
380     BACKUP: MANUAL REGISTRATION OF AXVLC.DLL
381      **** THIS METHOD IS DEPRECATED ****
382
383     Within the <InstallExecuteSequence> node:
384     <Custom Action="RegisterAxvlc" After="InstallFinalize">NOT Installed</Custom>
385     <Custom Action="UnregisterAxvlc" Before="InstallInitialize">Installed</Custom>
386
387     Within the package add these custom actions:
388
389     <CustomAction Id            = "RegisterAxvlc"
390                   Directory     = "APPLICATIONFOLDER"
391                   ExeCommand    = 'regsvr32.exe /s "[APPLICATIONFOLDER]axvlc.dll"'
392                   Return        = "check" />
393
394     <CustomAction Id            = "UnregisterAxvlc"
395                   Directory     = "APPLICATIONFOLDER"
396                   ExeCommand    = 'regsvr32.exe /s /u "[APPLICATIONFOLDER]axvlc.dll"' />
397
398     Finally within the <UI> node:
399
400     <ProgressText Action="RegisterAxvlc">Registering DirectX plugin...</ProgressText>
401     <ProgressText Action="UnregisterAxvlc">Removing DirectX plugin...</ProgressText>
402 -->
403
404