inline HRESULT CServiceModule::UnregisterServer() { // Remove service entries UpdateRegistryFromResource(IDR_Transport, FALSE); // Remove service // CRouter::Uninstall(); Uninstall(); // Remove object entries CComModule::UnregisterServer(TRUE); ::CoUninitialize(); return S_OK; }
inline HRESULT CServiceModule::UnregisterServer() { HRESULT hr = CoInitialize(NULL); if (FAILED(hr)) return hr; // Remove service entries UpdateRegistryFromResource(IDR_Lobby, FALSE); // Remove service Uninstall(); // Remove object entries CComModule::UnregisterServer(TRUE); CoUninitialize(); return S_OK; }
inline HRESULT CServiceModule::RegisterServer(BOOL bRegTypeLib) { HRESULT hr = CoInitialize(NULL); if (FAILED(hr)) return hr; // Remove any previous service since it may point to // the incorrect file Uninstall(); // Add service entries UpdateRegistryFromResource(IDR_DrawServ, TRUE); // Create service Install(); // Add object entries HRESULT hRes = CComModule::RegisterServer(bRegTypeLib); CoUninitialize(); return hRes; }
inline HRESULT CServiceModule::RegisterServer(BOOL bRegTypeLib, BOOL bService) { HRESULT hr; // Remove any previous service since it may point to // the incorrect file //CRouter::Uninstall(); Uninstall(); // Add service entries UpdateRegistryFromResource(IDR_Transport, TRUE); // Adjust the AppID for Local Server or Service CEgRegKey keyAppID; LONG lRes = keyAppID.Open(HKEY_CLASSES_ROOT, _T("AppID"), KEY_WRITE); if (lRes != ERROR_SUCCESS) return lRes; CEgRegKey key; lRes = key.Open(keyAppID, _T("{3E3E8035-5318-47A7-8E6E-4DB1C16E21C2}"), KEY_WRITE); if (lRes != ERROR_SUCCESS) return lRes; key.DeleteValue(_T("LocalService")); if (bService) { key.SetValue(TRANSPORT_SERVICE, _T("LocalService")); key.SetValue(_T("-Service"), _T("ServiceParameters")); // Create service Install(); // CRouter::Install(); } // Add object entries hr = CComModule::RegisterServer(bRegTypeLib); ::CoUninitialize(); return hr; }
inline HRESULT CServiceModule::RegisterServer(BOOL bRegTypeLib, BOOL bService) { HRESULT hr = CoInitialize(NULL); if (FAILED(hr)) return hr; // Remove any previous service since it may point to // the incorrect file Uninstall(); // Add service entries UpdateRegistryFromResource(IDR_Senderserver, TRUE); // Adjust the AppID for Local Server or Service CRegKey keyAppID; LONG lRes = keyAppID.Open(HKEY_CLASSES_ROOT, _T("AppID"), KEY_WRITE); if (lRes != ERROR_SUCCESS) return lRes; CRegKey key; lRes = key.Open(keyAppID, _T("{87AB90ED-EFD4-4A6B-9CC7-6C87D5704FED}"), KEY_WRITE); if (lRes != ERROR_SUCCESS) return lRes; key.DeleteValue(_T("LocalService")); if (bService) { key.SetValue(_T("senderserver"), _T("LocalService")); key.SetValue(_T("-Service"), _T("ServiceParameters")); // Create service Install(); } // Add object entries hr = CComModule::RegisterServer(bRegTypeLib); CoUninitialize(); return hr; }
HRESULT CServiceModule::UnregisterServer() { // Enter the COM MTA TCCoInit init(COINIT_MULTITHREADED); if (init.Failed()) return init; // Initialize the ATL module HRESULT hr = _Module.Init(g.hInst); // init COM and/or NT service stuff ZSucceeded(hr); // Create the component category manager CComPtr<ICatRegister> spCatReg; hr = CoCreateInstance(CLSID_StdComponentCategoriesMgr, NULL, CLSCTX_ALL, IID_ICatRegister, (void**)&spCatReg); ZSucceeded(hr); if (SUCCEEDED(hr)) { // Unregister our component category CATID catid = CATID_AllegianceAdmin; spCatReg->UnRegisterCategories(1, &catid); spCatReg = NULL; } // Remove service entries UpdateRegistryFromResource(IDR_AllSrv, FALSE); // uninstall service if (IsInServiceControlManager()) { RemoveService(); } // Remove object entries CComModule::UnregisterServer(TRUE); // Terminate the ATL module _Module.Term(); return hr; }
inline HRESULT CServiceModule::RegisterServer(BOOL bRegTypeLib, BOOL bService, char * szAccount, char * szPassword) { HRESULT hr = CoInitialize(NULL); if (FAILED(hr)) return hr; // Remove any previous service since it may point to // the incorrect file Uninstall(); // Add service entries UpdateRegistryFromResource(IDR_Lobby, TRUE); // Adjust the AppID for Local Server or Service CRegKey keyAppID; LONG lRes = keyAppID.Open(HKEY_CLASSES_ROOT, _T("AppID"), KEY_WRITE); if (lRes != ERROR_SUCCESS) return lRes; CRegKey key; lRes = key.Open(keyAppID, _T("{EFD52202-45CB-454D-B477-33BC5C29BDF1}"), KEY_WRITE); if (lRes != ERROR_SUCCESS) return lRes; key.DeleteValue(_T("LocalService")); if (bService) { // mdvalley: SetStringValue not in my ATL key.SetValue(_T("AllLobby"), _T("LocalService")); key.SetValue(_T("-Service"), _T("ServiceParameters")); // Create service //Install(); InstallService(szAccount, szPassword); } // Add object entries hr = CComModule::RegisterServer(bRegTypeLib); CoUninitialize(); return hr; }