]> git.sesse.net Git - vlc/blob - extras/package/win32/msi/product.wxs
msi: group web plugins under a common feature
[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
47         <Icon Id="vlc.ico" SourceFile="$(var.SourceDir)/vlc.ico"/>
48
49         <!-- The about link that appears in Add & Remove Programs. -->
50         <Property Id="ARPURLINFOABOUT" Value="$(var.AboutURL)" />
51         <!-- The help link that appears in Add & Remove Programs. -->
52         <Property Id="ARPHELPLINK" Value="$(var.SupportURL)" />
53         <!-- The update link that appears in Add & Remove Programs. -->
54         <Property Id="ARPURLUPDATEINFO" Value="$(var.UpdatesURL)" />
55         <!-- The icon that appears in Add & Remove Programs. -->
56         <Property Id="ARPPRODUCTICON" Value="vlc.ico" />
57
58
59         <Property Id="ApplicationFolderName" Value="$(var.Manufacturer)\$(var.AppFolder)" />
60         <Property Id="WixAppFolder" Value="WixPerMachineFolder" />
61         <Property Id="APPLICATIONFOLDER">
62             <RegistrySearch Id="FindInstallRegDir" Type="raw" Root="HKLM" Win64="$(var.Win64)" Key="Software\VideoLAN\VLC" Name="InstallDir" />
63         </Property>
64
65         <WixVariable Id="WixUISupportPerUser" Value="1" />
66         <WixVariable Id="WixUILicenseRtf" Value="LICENSE.rtf" />
67         <WixVariable Id="WixUIBannerBmp" Value="bannrbmp.bmp" />
68
69         <Media Id='1' Cabinet='product.cab' EmbedCab='yes' CompressionLevel="high" />
70
71         <Directory Id='TARGETDIR' Name='SourceDir'>
72             <Directory Id='$(var.PlatformProgramFilesFolder)' Name='PFiles'>
73                 <Directory Id='VideoLANFolder' Name='$(var.Manufacturer)'>
74                     <Directory Id='APPLICATIONFOLDER' Name='$(var.AppFolder)' FileSource="$(var.SourceDir)">
75
76                         <Component Id="InstallRegDir" Guid="$(var.CompInstallRegDir)" DiskId="1" Win64="$(var.Win64)">
77                             <RegistryKey Id='RegInstallDir' Root='HKLM' Key='Software\VideoLAN\VLC' Action='createAndRemoveOnUninstall' >
78                                 <RegistryValue Name='InstallDir' Type='string' Value='[APPLICATIONFOLDER]' />
79                             </RegistryKey>
80                         </Component>
81
82                         <Component Id='CompVLC' Guid='$(var.CompVLCexe)' Win64="$(var.Win64)">
83                             <File Id='vlc.exe' Name='vlc.exe' KeyPath='yes' Vital='yes' DiskId='1' />
84                             <File Id='vlc.exe.manifest' Name='vlc.exe.manifest' DiskId='1' />
85
86                             <Shortcut Id="DesktopShortcut"
87                                 Directory="DesktopFolder"
88                                 Name="$(var.ProductName)"
89                                 WorkingDirectory="APPLICATIONFOLDER"
90                                 Description="$(var.ProductName)"
91                                 Icon='vlc.ico'
92                                 Advertise='yes' />
93
94                             <!-- Capabilities keys for Vista/7 "Set Program Access and Defaults" -->
95                             <RegistryValue Root="HKLM" Key="Software\Clients\Media\VLC\Capabilities" Name="ApplicationDescription" Value="$(var.ProductName)" Type="string" />
96                             <RegistryValue Root="HKLM" Key="Software\Clients\Media\VLC\Capabilities" Name="ApplicationIcon" Value="[#vlc.exe],0" Type="string" />
97                             <RegistryValue Root="HKLM" Key="Software\Clients\Media\VLC\Capabilities" Name="ApplicationName" Value="$(var.ProductName)" Type="string" />
98                             <RegistryValue Root="HKLM" Key="Software\Clients\Media\VLC\DefaultIcon" Value="[#vlc.exe],0" Type="string" />
99                             <RegistryValue Root="HKLM" Key="Software\Clients\Media\VLC\shell\Open\command" Value="&quot;[#vlc.exe]&quot; --started-from-file &quot;%1&quot;" Type="string" />
100                             <RegistryValue Root="HKLM" Key="Software\RegisteredApplications" Name="$(var.ShortProductName)" Value="Software\Clients\Media\VLC\Capabilities" Type="string" />
101
102                             <!-- Open With... contextual menu -->
103                             <RegistryValue Root="HKCR" Key="Applications\vlc.exe\shell\open" Name="$(var.ShortProductName)" Value="$(var.ProductName)" Type="string" />
104
105                             <!-- App Paths to support Start, Run -->
106                             <RegistryValue Root="HKLM" Key="SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\vlc.exe" Value="[#vlc.exe]" Type="string" />
107                             <RegistryValue Root="HKLM" Key="SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\vlc.exe" Name="Path" Value="[APPLICATIONFOLDER]" Type="string" />
108                         </Component>
109
110                         <Component Id='CompTXT' Guid='7fbd228c-87d8-4e91-85b3-aa65e03c9f1e' Win64="$(var.Win64)">
111                             <File Id='AUTHORS.txt' Name='AUTHORS.txt'  DiskId='1' />
112                             <File Id='COPYING.txt' Name='COPYING.txt' DiskId='1' />
113                             <File Id='NEWS.txt' Name='NEWS.txt' DiskId='1' />
114                             <File Id='README.txt' Name='README.txt' DiskId='1' />
115                             <File Id='THANKS.txt' Name='THANKS.txt' DiskId='1' />
116                         </Component>
117
118                         <Component Id='CompLibvlccore' Guid='efa826fd-0037-4ccd-9573-604fde3b9efa' Win64="$(var.Win64)">
119                             <File Id='libvlccore.dll' Name='libvlccore.dll' KeyPath='yes' Vital='yes' DiskId='1' />
120                         </Component>
121
122                         <Component Id='CompLibvlc' Guid='50d7e1e1-4512-4020-9f7b-5dc8484574f3' Win64="$(var.Win64)">
123                             <File Id='libvlc.dll' Name='libvlc.dll' KeyPath='yes' Vital='yes' DiskId='1' />
124                             <File Id='libvlc.dll.manifest' Name='libvlc.dll.manifest' DiskId='1' />
125                         </Component>
126
127                         <Component Id='CompNpvlc' Guid='e7d6b54c-c4ea-4280-90f5-c6ae80073d25' Win64="$(var.Win64)">
128                             <File Id='npvlc.dll' Name='npvlc.dll' KeyPath='yes' DiskId='1' />
129                             <File Id='npvlc.dll.manifest' Name='npvlc.dll.manifest' DiskId='1' />
130                         </Component>
131
132                         <Component Id='CompAxvlc' Guid='cabe28b1-5586-4ac3-815b-4f3a834c0d54' Win64="$(var.Win64)">
133                             <File Id='axvlc.dll' Name='axvlc.dll' KeyPath='yes' DiskId='1' />
134                             <File Id='axvlc.dll.manifest' Name='axvlc.dll.manifest' DiskId='1' />
135                         </Component>
136
137                         <Component Id='CompCacheGen' Guid='e1b4a499-e223-4c18-9de0-258f12b8dcfa' Win64="$(var.Win64)">
138                             <File Id='vlc_cache_gen.exe' Name='vlc-cache-gen.exe' KeyPath='yes' DiskId='1' />
139                         </Component>
140
141                         <Component Id='CompIcon' Guid='8707410c-55fe-4c38-924e-438762b8b82e' Win64="$(var.Win64)">
142                             <File Id='vlc.ico' Name='vlc.ico' KeyPath='yes' DiskId='1' />
143                         </Component>
144
145                         <Directory Id='PLUGINSDIR' Name='plugins'>
146                             <Component Id='CompPluginsCache' Guid='0b72e987-8e3c-4201-aa3e-5b57ca9c040e' Win64="$(var.Win64)">
147                                 <RemoveFile Id="RemovePluginsCache" Name="plugins.dat" On="uninstall" />
148                             </Component>
149                         </Directory>
150
151                         <Component Id='CompPlayDiscs' Guid='b0d90296-b20c-4c74-a3b3-a7694e011f25' Win64="$(var.Win64)">
152                             <!-- Audio CD -->
153                             <RegistryValue Root="HKCR" Key="AudioCD\shell\PlayWithVLC" Value="Play with VLC media player" Type="string" />
154                             <RegistryValue Root="HKCR" Key="AudioCD\shell\PlayWithVLC\command" Value="&quot;[#vlc.exe]&quot; --started-from-file cdda:///%1" Type="string" />
155                             <!-- DVD -->
156                             <RegistryValue Root="HKCR" Key="DVD\shell\PlayWithVLC" Value="Play with VLC media player" Type="string" />
157                             <RegistryValue Root="HKCR" Key="DVD\shell\PlayWithVLC\command" Value="&quot;[#vlc.exe]&quot; --started-from-file dvd:///%1" Type="string" />
158
159                             <!-- DVD video Handler -->
160                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayDVDMovieOnArrival" Name="VLCPlayDVDMovieOnArrival" Value="" Type="string" />
161                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" Name="Action" Value="Play DVD movie" Type="string" />
162                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" Name="DefaultIcon" Value="[#vlc.exe],0" Type="string" />
163                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" Name="InvokeProgID" Value="VLC.DVDMovie" Type="string" />
164                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" Name="InvokeVerb" Value="Open" Type="string" />
165                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" Name="Provider" Value="$(var.ProductName)" Type="string" />
166
167                             <!-- Audio CD Handler -->
168                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayCDAudioOnArrival" Name="VLCPlayCDAudioOnArrival" Value="" Type="string" />
169                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" Name="Action" Value="Play audio CD" Type="string" />
170                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" Name="DefaultIcon" Value="[#vlc.exe],0" Type="string" />
171                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" Name="InvokeProgID" Value="VLC.CDAudio" Type="string" />
172                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" Name="InvokeVerb" Value="Open" Type="string" />
173                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" Name="Provider" Value="$(var.ProductName)" Type="string" />
174
175                             <!-- VCD Handler -->
176                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayVideoCDMovieOnArrival" Name="VLCPlayVCDMovieOnArrival" Value="" Type="string" />
177                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayVCDMovieOnArrival" Name="Action" Value="Play VCD movie" Type="string" />
178                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayVCDMovieOnArrival" Name="DefaultIcon" Value="[#vlc.exe],0" Type="string" />
179                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayVCDMovieOnArrival" Name="InvokeProgID" Value="VLC.VCDMovie" Type="string" />
180                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayVCDMovieOnArrival" Name="InvokeVerb" Value="Open" Type="string" />
181                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayVCDMovieOnArrival" Name="Provider" Value="$(var.ProductName)" Type="string" />
182
183                             <!-- SVCD Handler -->
184                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlaySuperVideoCDMovieOnArrival" Name="VLCPlaySVCDMovieOnArrival" Value="" Type="string" />
185                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlaySVCDMovieOnArrival" Name="Action" Value="Play SVCD movie" Type="string" />
186                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlaySVCDMovieOnArrival" Name="DefaultIcon" Value="[#vlc.exe],0" Type="string" />
187                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlaySVCDMovieOnArrival" Name="InvokeProgID" Value="VLC.SVCDMovie" Type="string" />
188                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlaySVCDMovieOnArrival" Name="InvokeVerb" Value="Open" Type="string" />
189                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlaySVCDMovieOnArrival" Name="Provider" Value="$(var.ProductName)" Type="string" />
190
191                             <!-- DVD Audio Handler -->
192                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayDVDAudioOnArrival" Name="VLCPlayDVDAudioOnArrival" Value="" Type="string" />
193                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDAudioOnArrival" Name="Action" Value="Play audio DVD" Type="string" />
194                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDAudioOnArrival" Name="DefaultIcon" Value="[#vlc.exe],0" Type="string" />
195                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDAudioOnArrival" Name="InvokeProgID" Value="VLC.OPENFolder" Type="string" />
196                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDAudioOnArrival" Name="InvokeVerb" Value="Open" Type="string" />
197                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDAudioOnArrival" Name="Provider" Value="$(var.ProductName)" Type="string" />
198
199                             <!-- Generic video files Handler -->
200                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayVideoFilesOnArrival" Name="VLCPlayVideoFilesOnArrival" Value="" Type="string" />
201                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayVideoFilesOnArrival" Name="Action" Value="Play video files" Type="string" />
202                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayVideoFilesOnArrival" Name="DefaultIcon" Value="[#vlc.exe],0" Type="string" />
203                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayVideoFilesOnArrival" Name="InvokeProgID" Value="VLC.OPENFolder" Type="string" />
204                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayVideoFilesOnArrival" Name="InvokeVerb" Value="Open" Type="string" />
205                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayVideoFilesOnArrival" Name="Provider" Value="$(var.ProductName)" Type="string" />
206
207                             <!-- Generic audio files Handler -->
208                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayMusicFilesOnArrival" Name="VLCPlayMusicFilesOnArrival" Value="" Type="string" />
209                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayMusicFilesOnArrival" Name="Action" Value="Play audio files" Type="string" />
210                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayMusicFilesOnArrival" Name="DefaultIcon" Value="[#vlc.exe],0" Type="string" />
211                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayMusicFilesOnArrival" Name="InvokeProgID" Value="VLC.OPENFolder" Type="string" />
212                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayMusicFilesOnArrival" Name="InvokeVerb" Value="Open" Type="string" />
213                             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayMusicFilesOnArrival" Name="Provider" Value="$(var.ProductName)" Type="string" />
214
215
216                             <RegistryValue Root="HKCR" Key="VLC.DVDMovie" Value="VLC DVD Movie" Type="string" />
217                             <RegistryValue Root="HKCR" Key="VLC.DVDMovie\shell" Value="Open" Type="string" />
218                             <RegistryValue Root="HKCR" Key="VLC.DVDMovie\shell\open\command" Value="&quot;[#vlc.exe]&quot; --started-from-file dvd:///%1" Type="string" />
219                             <RegistryValue Root="HKCR" Key="VLC.DVDMovie\DefaultIcon" Value="[#vlc.exe],0" Type="string" />
220
221                             <RegistryValue Root="HKCR" Key="VLC.CDAudio" Value="VLC CD Audio" Type="string" />
222                             <RegistryValue Root="HKCR" Key="VLC.CDAudio\shell" Value="Open" Type="string" />
223                             <RegistryValue Root="HKCR" Key="VLC.CDAudio\shell\open\command" Value="&quot;[#vlc.exe]&quot; --started-from-file cdda:///%1" Type="string" />
224                             <RegistryValue Root="HKCR" Key="VLC.CDAudio\DefaultIcon" Value="[#vlc.exe],0" Type="string" />
225
226                             <RegistryValue Root="HKCR" Key="VLC.VCDMovie" Value="VLC VCD Movie" Type="string" />
227                             <RegistryValue Root="HKCR" Key="VLC.VCDMovie\shell" Value="Open" Type="string" />
228                             <RegistryValue Root="HKCR" Key="VLC.VCDMovie\shell\open\command" Value="&quot;[#vlc.exe]&quot; --started-from-file vcd:///%1" Type="string" />
229                             <RegistryValue Root="HKCR" Key="VLC.VCDMovie\DefaultIcon" Value="[#vlc.exe],0" Type="string" />
230
231                             <RegistryValue Root="HKCR" Key="VLC.SVCDMovie" Value="VLC SVCD Movie" Type="string" />
232                             <RegistryValue Root="HKCR" Key="VLC.SVCDMovie\shell" Value="Open" Type="string" />
233                             <RegistryValue Root="HKCR" Key="VLC.SVCDMovie\shell\open\command" Value="&quot;[#vlc.exe]&quot; --started-from-file vcd:///%1" Type="string" />
234                             <RegistryValue Root="HKCR" Key="VLC.SVCDMovie\DefaultIcon" Value="[#vlc.exe],0" Type="string" />
235
236                             <RegistryValue Root="HKCR" Key="VLC.OPENFolder" Value="VLC Play Content" Type="string" />
237                             <RegistryValue Root="HKCR" Key="VLC.OPENFolder\shell" Value="Open" Type="string" />
238                             <RegistryValue Root="HKCR" Key="VLC.OPENFolder\shell\open\command" Value="&quot;[#vlc.exe]&quot; %1" Type="string" />
239                             <RegistryValue Root="HKCR" Key="VLC.OPENFolder\DefaultIcon" Value="[#vlc.exe],0" Type="string" />
240                         </Component>
241                     </Directory>
242                 </Directory>
243             </Directory>
244
245             <!-- shortcuts -->
246             <Directory Id="ProgramMenuFolder">
247                 <Directory Id="ProgramMenuManufacturerFolder" Name="$(var.Manufacturer)">
248                     <Directory Id="ProgramMenuProductFolder" Name="$(var.ShortProductName)" />
249                 </Directory>
250             </Directory>
251             <Directory Id="DesktopFolder" Name="Desktop"/>
252         </Directory>
253
254         <DirectoryRef Id="ProgramMenuProductFolder">
255             <Component Id="CompProgramMenuShortcuts" Guid="*" Win64="$(var.Win64)">
256                 <!-- create folders -->
257                 <CreateFolder Directory="ProgramMenuManufacturerFolder" />
258                 <CreateFolder Directory="ProgramMenuProductFolder" />
259                 <!-- remove folder -->
260                 <RemoveFolder Id="RemoveProgramMenuManufacturerFolder"
261                               Directory="ProgramMenuManufacturerFolder"
262                               On="uninstall" />
263                 <RemoveFolder Id="RemoveProgramMenuProductFolder"
264                               Directory="ProgramMenuProductFolder"
265                               On="uninstall" />
266                 <!-- Application shortcuts -->
267                 <Shortcut Id="VLCShortcut" Name="$(var.ProductName)" Target="[APPLICATIONFOLDER]vlc.exe" />
268                 <Shortcut Id="SkinShortcut" Name="$(var.ProductName) skinned" Target="[APPLICATIONFOLDER]vlc.exe" Arguments="-Iskins" />
269                 <Shortcut Id="VLCCleanShortcut" Name="Reset $(var.ProductName) preferences and cache files" Target="[APPLICATIONFOLDER]vlc.exe" Arguments="--reset-config --reset-plugins-cache vlc://quit" />
270                 <Shortcut Id="NEWSShortcut" Name="Release Notes" Target="[APPLICATIONFOLDER]NEWS.txt" />
271                 <util:InternetShortcut Id="WebsiteShortcut" Name="VideoLAN website" Target="http://www.videolan.org/"/>
272                 <util:InternetShortcut Id="DocumentationShortcut" Name="Documentation" Target="http://www.videolan.org/doc/"/>
273                 <!-- RegistryValue which serves as KeyPath -->
274                 <RegistryValue Root="HKCU"
275                                Key="Software\VideoLAN\VLC"
276                                Name="StartMenuShortcuts"
277                                Type="integer"
278                                Value="1"
279                                KeyPath="yes" />
280              </Component>
281         </DirectoryRef>
282
283         <Feature Id='VLC' Title='$(var.ProductName)' Level='1' Absent="disallow" AllowAdvertise="no" Display="expand" Description="The $(var.ProductName) application">
284             <ComponentRef Id='InstallRegDir' />
285             <ComponentRef Id='CompVLC' />
286             <ComponentRef Id='CompLibvlccore' />
287             <ComponentRef Id='CompLibvlc' />
288             <ComponentRef Id='CompNpvlc' />
289             <ComponentRef Id='CompCacheGen' />
290             <ComponentRef Id='CompIcon' />
291             <ComponentRef Id='CompTXT' />
292             <ComponentRef Id='CompPluginsCache' />
293             <ComponentRef Id='CompProgramMenuShortcuts' />
294
295             <ComponentGroupRef Id='CompPluginsGroup' />
296             <ComponentGroupRef Id='CompLocaleGroup' />
297             <ComponentGroupRef Id='CompLuaGroup' />
298             <ComponentGroupRef Id='CompSkinsGroup' />
299
300             <Feature Id='WEBPLUGINS' Title='Web plugins' Level='1' AllowAdvertise="no">
301                 <Feature Id='ACTIVEX' Title='ActiveX plugin' Level='1' AllowAdvertise="no">
302                     <ComponentRef Id='CompAxvlc' />
303                     <ComponentGroupRef Id='CompAxvlcGroup' />
304                 </Feature>
305                 <Feature Id='MOZILLA' Title='Mozilla plugin' Level='1000' AllowAdvertise="no">
306                     <ComponentRef Id='CompNpvlc' />
307                 </Feature>
308             </Feature>
309             <Feature Id='DISCSPLAYBACK' Title='Discs Playback' Level='1' AllowAdvertise="no">
310                 <ComponentRef Id='CompPlayDiscs' />
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>
324
325         <UIRef Id="WixUI_Advanced" />
326
327         <InstallExecuteSequence>
328             <!-- <RemoveExistingProducts After="InstallValidate" /> -->
329             <Custom Action="ExecVLCCacheGen" Before="InstallFinalize">REINSTALL OR NOT Installed</Custom>
330             <Custom Action="SetExecVLCCacheGen" Before="ExecVLCCacheGen">REINSTALL OR NOT Installed</Custom>
331         </InstallExecuteSequence>
332
333         <!-- Launch silently vlc-cache-gen.exe during install -->
334         <CustomAction Id            = "SetExecVLCCacheGen"
335                       Property      = "ExecVLCCacheGen"
336                       Value         = "&quot;[#vlc_cache_gen.exe]&quot; &quot;[APPLICATIONFOLDER]plugins&quot;" />
337         <CustomAction Id            = "ExecVLCCacheGen"
338                       BinaryKey     = "WixCA"
339                       DllEntry      = "CAQuietExec"
340                       Execute       = "deferred"
341                       Impersonate   = "no"
342                       Return        = "ignore" />
343
344         <!-- Launch VLC after setup exits -->
345         <CustomAction Id            = "StartAppOnExit"
346                       FileKey       = "vlc.exe"
347                       ExeCommand    = ""
348                       Execute       = "immediate"
349                       Impersonate   = "yes"
350                       Return        = "asyncNoWait" />
351         <Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT"
352           Value="Launch VLC media player when setup exits." />
353         <Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOX" Value="1" />
354
355         <UI>
356             <Publish Dialog  = "ExitDialog"
357                      Control = "Finish"
358                      Order   = "1"
359                      Event   = "DoAction"
360                      Value   = "StartAppOnExit">
361                 WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT Installed
362             </Publish>
363             <ProgressText Action="ExecVLCCacheGen">Generating modules cache...</ProgressText>
364        </UI>
365    </Product>
366 </Wix>
367
368 <!--
369     BACKUP: MANUAL REGISTRATION OF AXVLC.DLL
370      **** THIS METHOD IS DEPRECATED ****
371
372     Within the <InstallExecuteSequence> node:
373     <Custom Action="RegisterAxvlc" After="InstallFinalize">NOT Installed</Custom>
374     <Custom Action="UnregisterAxvlc" Before="InstallInitialize">Installed</Custom>
375
376     Within the package add these custom actions:
377
378     <CustomAction Id            = "RegisterAxvlc"
379                   Directory     = "APPLICATIONFOLDER"
380                   ExeCommand    = 'regsvr32.exe /s "[APPLICATIONFOLDER]axvlc.dll"'
381                   Return        = "check" />
382
383     <CustomAction Id            = "UnregisterAxvlc"
384                   Directory     = "APPLICATIONFOLDER"
385                   ExeCommand    = 'regsvr32.exe /s /u "[APPLICATIONFOLDER]axvlc.dll"' />
386
387     Finally within the <UI> node:
388
389     <ProgressText Action="RegisterAxvlc">Registering DirectX plugin...</ProgressText>
390     <ProgressText Action="UnregisterAxvlc">Removing DirectX plugin...</ProgressText>
391 -->
392
393