/// <summary> /// Registers and unregisters the component with GDS /// </summary> /// <param name="install">set to true to register, false otherwise</param> /// <returns>true on success</returns> private bool DoRegistration(bool install) { try { // register/unregister the component GoogleDesktopIndexingComponentRegisterClass gdsReg = new GoogleDesktopIndexingComponentRegisterClass(); if (install) { bool result = SimpleMessageBox(kMessengerSetupMessage, kLogginEnableMessage, true); if (!result) { return(false); } try { // register with GDS object [] componentDesc = new object[6] { "Title", "MSN Chats", "Description", "Captures and indexes MSN Messenger conversations", "Icon", "no icon" }; gdsReg.RegisterIndexingComponent(kComponentGuid, componentDesc); // add the program to Run RegistryKey key = Registry.CurrentUser.OpenSubKey(kWindowsRunRegKey, true); key.SetValue(kMessengerSetupMessage, Directory.GetCurrentDirectory() + "\\" + Process.GetCurrentProcess().ProcessName + ".exe"); SimpleMessageBox(kMessengerSetupMessage, "Registration completed successfully!", false); } catch (COMException e) { // check if not already registered if ((UInt32)e.ErrorCode != 0x80040006) // E_COMPONENT_ALREADY_REGISTERED { SimpleMessageBox("COM Exception", e.ToString(), false); return(false); } else { SimpleMessageBox(kMessengerSetupMessage, "Component already registered!", false); } } } else { try { gdsReg.UnregisterIndexingComponent(kComponentGuid); } catch (COMException e) { // check if not already unregistered if ((UInt32)e.ErrorCode != 0x80040002) // E_COMPONENT_NOT_REGISTERED { SimpleMessageBox("COM Exception", e.ToString(), false); } } // remove the program from Run RegistryKey key = Registry.CurrentUser.OpenSubKey(kWindowsRunRegKey, true); key.DeleteValue(kMessengerSetupMessage, false); SimpleMessageBox(kMessengerSetupMessage, "Component unregistered successfully!", false); } } catch (Exception e) { SimpleMessageBox("Exception", e.ToString(), false); return(false); } return(true); }
/// <summary> /// Registers and unregisters the component with GDS /// </summary> /// <param name="install">set to true to register, false otherwise</param> /// <returns>true on success</returns> private bool DoRegistration(bool install) { try { // register/unregister the component GoogleDesktopIndexingComponentRegisterClass gdsReg = new GoogleDesktopIndexingComponentRegisterClass(); if (install) { bool result = SimpleMessageBox(kMessengerSetupMessage, kLogginEnableMessage, true); if (!result) return false; try { // register with GDS object [] componentDesc = new object[6] {"Title", "MSN Chats", "Description", "Captures and indexes MSN Messenger conversations", "Icon", "no icon"}; gdsReg.RegisterIndexingComponent(kComponentGuid, componentDesc); // add the program to Run RegistryKey key = Registry.CurrentUser.OpenSubKey(kWindowsRunRegKey, true); key.SetValue(kMessengerSetupMessage, Directory.GetCurrentDirectory()+ "\\" + Process.GetCurrentProcess().ProcessName + ".exe"); SimpleMessageBox(kMessengerSetupMessage, "Registration completed successfully!", false); } catch(COMException e) { // check if not already registered if ((UInt32)e.ErrorCode != 0x80040006) // E_COMPONENT_ALREADY_REGISTERED { SimpleMessageBox("COM Exception", e.ToString(), false); return false; } else SimpleMessageBox(kMessengerSetupMessage, "Component already registered!", false); } } else { try { gdsReg.UnregisterIndexingComponent(kComponentGuid); } catch(COMException e) { // check if not already unregistered if ((UInt32)e.ErrorCode != 0x80040002) // E_COMPONENT_NOT_REGISTERED SimpleMessageBox("COM Exception", e.ToString(), false); } // remove the program from Run RegistryKey key = Registry.CurrentUser.OpenSubKey(kWindowsRunRegKey, true); key.DeleteValue(kMessengerSetupMessage, false); SimpleMessageBox(kMessengerSetupMessage, "Component unregistered successfully!", false); } } catch (Exception e) { SimpleMessageBox("Exception", e.ToString(), false); return false; } return true; }