All files
[pithos-ms-client] / trunk / Pithos.ShellExtensions / ProjectInstaller.cs
1 /********************************** Module Header **********************************\
2 Module Name:  ProjectInstaller.cs
3 Project:      CSShellExtContextMenuHandler
4 Copyright (c) Microsoft Corporation.
5
6 The installer class defines the custom actions in the setup. We use the custom 
7 actions to register and unregister the COM-visible classes in the current managed 
8 assembly.
9
10 This source is subject to the Microsoft Public License.
11 See http://www.microsoft.com/opensource/licenses.mspx#Ms-PL.
12 All other rights reserved.
13
14 THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER 
15 EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF 
16 MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
17 \***********************************************************************************/
18
19 #region Using directives
20
21 using System.Collections;
22 using System.ComponentModel;
23 using System.Runtime.InteropServices;
24
25 #endregion
26
27
28 namespace Pithos.ShellExtensions
29 {
30     [RunInstaller(true), ComVisible(false)]
31     public partial class ProjectInstaller : System.Configuration.Install.Installer
32     {
33         public ProjectInstaller()
34         {
35             InitializeComponent();
36         }
37
38         public override void Install(IDictionary stateSaver)
39         {
40             base.Install(stateSaver);
41
42             // Call RegistrationServices.RegisterAssembly to register the classes in 
43             // the current managed assembly to enable creation from COM.
44             RegistrationServices regService = new RegistrationServices();
45             regService.RegisterAssembly(
46                 this.GetType().Assembly, 
47                 AssemblyRegistrationFlags.SetCodeBase);
48         }
49
50         public override void Uninstall(IDictionary savedState)
51         {
52             base.Uninstall(savedState);
53
54             // Call RegistrationServices.UnregisterAssembly to unregister the classes 
55             // in the current managed assembly.
56             RegistrationServices regService = new RegistrationServices();
57             regService.UnregisterAssembly(this.GetType().Assembly);
58         }
59     }
60 }