void CConnectionManager::AsyncConnectThread() { DWORD size = 1024; TCHAR host[1024] = _T("localhost"); if (GetStringValueFromRegistry(REGISTRY_ROOT_KEY, REGISTRY_SETTINGS_KEY, REGISTRY_SETTINGS_HOST, host, &size)!=0) { m_Parent->Log(_T("Unable to read host record from registry."), ICON_WARNING); } DWORD port = 41258; if (GetDWORDValueFromRegistry(REGISTRY_ROOT_KEY, REGISTRY_SETTINGS_KEY, REGISTRY_SETTINGS_PORT, &port)!=0) { m_Parent->Log(_T("Unable to read port from registry."), ICON_WARNING); } CString sport; sport.Format(_T("%d"), port); if (!m_Connection.ConnectTo(host, sport, AF_INET, SOCK_STREAM)) { BrowserManagerLock browserManager; CBrowserMessageWindow* window = browserManager->FindBrowserMessageWindow(m_Parent->GetBrowserId()); if (!window) return; window->PostMessage(BMM_REQUEST_LOG, ICON_WARNING, (LPARAM)FS(_T("Unable to see XRefresh Monitor."))); window->PostMessage(BMM_REQUEST_LOG, ICON_BULB, (LPARAM)FS(_T("Please check if you have running XRefresh Monitor. On Windows, it is program running in system tray. Look for Programs -> XRefresh -> XRefresh.exe"))); window->PostMessage(BMM_REQUEST_LOG, ICON_BULB, (LPARAM)FS(_T("You may also want to check your firewall settings. XRefresh IE Addon expects Monitor to talk from %s on port %d"), host, port)); TRACE_I(_T("server not available")); return; } m_Connection.WatchComm(); SendHello(); }
CStdString RegUtils::GetStringValueFromRegistry(const HKEY& hKeyRoot, const CStdString& sSubKey, const CStdString& sValueName) { HKEY hKey; if (RegOpenKeyEx(hKeyRoot, sSubKey, 0, KEY_READ, &hKey) != ERROR_SUCCESS) { return _T(""); } CStdString sValue = GetStringValueFromRegistry(hKey, sValueName); CloseKey(hKey); return sValue; }