void vncPropertiesPoll::LoadFromIniFile() { // if (m_dlgvisible) // { // vnclog.Print(LL_INTWARN, VNCLOG("service helper invoked while Properties panel displayed\n")); // return; // } m_pref_TurboMode = TRUE;//((vncService::VersionMajor() >= 6) ? TRUE : FALSE); m_pref_PollUnderCursor=FALSE; m_pref_PollForeground= FALSE; m_pref_PollFullScreen= TRUE;//((vncService::VersionMajor() >= 6) ? TRUE : FALSE); m_pref_PollConsoleOnly=FALSE; m_pref_PollOnEventOnly=FALSE; m_pref_MaxCpu=40; m_pref_Driver=CheckVideoDriver(0); m_pref_Hook=TRUE; m_pref_Virtual=FALSE; m_pref_SingleWindow = 0; *m_pref_szSingleWindowName = '\0'; LoadUserPrefsPollFromIniFile(); ApplyUserPrefs(); }
void vncPropertiesPoll::Load(BOOL usersettings) { if (m_dlgvisible) { vnclog.Print(LL_INTWARN, VNCLOG("service helper invoked while Properties panel displayed\n")); return; } // Set the default user prefs vnclog.Print(LL_INTINFO, VNCLOG("clearing user settings\n")); m_pref_TurboMode = FALSE; m_pref_PollUnderCursor=FALSE; m_pref_PollForeground=TRUE; m_pref_PollFullScreen=TRUE; m_pref_PollConsoleOnly=FALSE; m_pref_PollOnEventOnly=TRUE; #ifdef DRIVER m_pref_Driver=CheckVideoDriver(0); #else m_pref_Driver=false; #endif m_pref_Hook=TRUE; m_pref_Virtual=FALSE; // Make the loaded settings active.. ApplyUserPrefs(); // Note whether we loaded the user settings or just the default system settings m_usersettings = usersettings; }
void vncPropertiesPoll::LoadUserPrefsPollFromIniFile() { m_pref_TurboMode = myIniFile.ReadInt("poll", "TurboMode", m_pref_TurboMode); // Polling prefs m_pref_PollUnderCursor=myIniFile.ReadInt("poll", "PollUnderCursor", m_pref_PollUnderCursor); m_pref_PollForeground=myIniFile.ReadInt("poll", "PollForeground", m_pref_PollForeground); m_pref_PollFullScreen=myIniFile.ReadInt("poll", "PollFullScreen", m_pref_PollFullScreen); m_pref_PollConsoleOnly=myIniFile.ReadInt("poll", "OnlyPollConsole", m_pref_PollConsoleOnly); m_pref_PollOnEventOnly=myIniFile.ReadInt("poll", "OnlyPollOnEvent", m_pref_PollOnEventOnly); m_pref_MaxCpu=myIniFile.ReadInt("poll", "MaxCpu", m_pref_MaxCpu); if (m_pref_MaxCpu==0) m_pref_MaxCpu=100; m_pref_Driver=myIniFile.ReadInt("poll", "EnableDriver", m_pref_Driver); if (m_pref_Driver)m_pref_Driver=CheckVideoDriver(0); m_pref_Hook=myIniFile.ReadInt("poll", "EnableHook", m_pref_Hook); m_pref_Virtual=myIniFile.ReadInt("poll", "EnableVirtual", m_pref_Virtual); m_pref_SingleWindow=myIniFile.ReadInt("poll","SingleWindow",m_pref_SingleWindow); myIniFile.ReadString("poll", "SingleWindowName", m_pref_szSingleWindowName,32); }
void vncPropertiesPoll::LoadUserPrefsPoll(HKEY appkey) { m_pref_TurboMode = LoadInt(appkey, "TurboMode", m_pref_TurboMode); // Polling prefs m_pref_PollUnderCursor=LoadInt(appkey, "PollUnderCursor", m_pref_PollUnderCursor); m_pref_PollForeground=LoadInt(appkey, "PollForeground", m_pref_PollForeground); m_pref_PollFullScreen=LoadInt(appkey, "PollFullScreen", m_pref_PollFullScreen); m_pref_PollConsoleOnly=LoadInt(appkey, "OnlyPollConsole", m_pref_PollConsoleOnly); m_pref_PollOnEventOnly=LoadInt(appkey, "OnlyPollOnEvent", m_pref_PollOnEventOnly); m_pref_MaxCpu=LoadInt(appkey, "MaxCpu", m_pref_MaxCpu); if (m_pref_MaxCpu==0) m_pref_MaxCpu=100; m_pref_Driver=LoadInt(appkey, "EnableDriver", m_pref_Driver); if (m_pref_Driver)m_pref_Driver=CheckVideoDriver(0); m_pref_Hook=LoadInt(appkey, "EnableHook", m_pref_Hook); m_pref_Virtual=LoadInt(appkey, "EnableVirtual", m_pref_Virtual); // [v1.0.2-jp2 fix] m_pref_SingleWindow=LoadInt(appkey, "SingleWindow", m_pref_SingleWindow); LoadSingleWindowName(appkey, m_pref_szSingleWindowName); }
void vncPropertiesPoll::ApplyUserPrefs() { // APPLY THE CACHED PREFERENCES TO THE SERVER m_server->TurboMode(m_pref_TurboMode); // Polling prefs m_server->PollUnderCursor(m_pref_PollUnderCursor); m_server->PollForeground(m_pref_PollForeground); m_server->PollFullScreen(m_pref_PollFullScreen); m_server->PollConsoleOnly(m_pref_PollConsoleOnly); m_server->PollOnEventOnly(m_pref_PollOnEventOnly); #ifdef DRIVER if (CheckVideoDriver(0) && m_pref_Driver) m_server->Driver(m_pref_Driver); else m_server->Driver(false); #else m_server->Driver(false); #endif m_server->Hook(m_pref_Hook); m_server->Virtual(m_pref_Virtual); }
void vncPropertiesPoll::ApplyUserPrefs() { // APPLY THE CACHED PREFERENCES TO THE SERVER m_server->TurboMode(m_pref_TurboMode); // Polling prefs m_server->PollUnderCursor(m_pref_PollUnderCursor); m_server->PollForeground(m_pref_PollForeground); m_server->PollFullScreen(m_pref_PollFullScreen); m_server->PollConsoleOnly(m_pref_PollConsoleOnly); m_server->PollOnEventOnly(m_pref_PollOnEventOnly); m_server->MaxCpu(m_pref_MaxCpu); if (CheckVideoDriver(0) && m_pref_Driver) m_server->Driver(m_pref_Driver); else m_server->Driver(false); m_server->Hook(m_pref_Hook); m_server->Virtual(m_pref_Virtual); // [v1.0.2-jp2 fix] m_server->SingleWindow(m_pref_SingleWindow); m_server->SetSingleWindowName(m_pref_szSingleWindowName); }
BOOL CALLBACK DlgProcCAP(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch (uMsg) { case WM_INITDIALOG: { initdone5=false; SendMessage(GetDlgItem(hwnd, IDC_TURBOMODE), BM_SETCHECK, TurboMode, 0); SendMessage(GetDlgItem(hwnd, IDC_DRIVER),BM_SETCHECK,Driver,0); SendMessage(GetDlgItem(hwnd, IDC_HOOK),BM_SETCHECK,Hook,0); SendMessage(GetDlgItem(hwnd, IDC_POLL_FULLSCREEN),BM_SETCHECK,PollFullScreen,0); SendMessage(GetDlgItem(hwnd, IDC_POLL_FOREGROUND),BM_SETCHECK,PollForeground,0); SendMessage(GetDlgItem(hwnd, IDC_POLL_UNDER_CURSOR),BM_SETCHECK,PollUnderCursor,0); SendMessage(GetDlgItem(hwnd, IDC_CONSOLE_ONLY),BM_SETCHECK,PollConsoleOnly,0); SendMessage(GetDlgItem(hwnd, IDC_REMOVE_WALLPAPER),BM_SETCHECK,RemoveWallpaper,0); SendMessage(GetDlgItem(hwnd, IDC_REMOVE_Aero),BM_SETCHECK,RemoveAero,0); SendMessage(GetDlgItem(hwnd, IDC_ONEVENT_ONLY),BM_SETCHECK,PollOnEventOnly,0); EnableWindow(GetDlgItem(hwnd, IDC_CONSOLE_ONLY),PollUnderCursor ||PollForeground); EnableWindow(GetDlgItem(hwnd, IDC_ONEVENT_ONLY),PollUnderCursor ||PollForeground); SendMessage(GetDlgItem(hwnd, IDC_PRIM),BM_SETCHECK,Primary,0); SendMessage(GetDlgItem(hwnd, IDC_SEC),BM_SETCHECK,Secondary,0); SetDlgItemInt(hwnd, IDC_MAXCPU, MaxCpu, false); initdone5=true; return TRUE; } case WM_COMMAND: switch (LOWORD(wParam)) { case IDC_HELP2: if (lParam==4) { char link[256]; strcpy(link,"http://www.uvnc.com/webhelp/"); strcat(link,"screencapture"); strcat(link,".html"); ShellExecute(GetDesktopWindow(), "open", link, "", 0, SW_SHOWNORMAL); } break; case IDOK: { TurboMode=SendDlgItemMessage(hwnd, IDC_TURBOMODE, BM_GETCHECK, 0, 0); PollUnderCursor=SendDlgItemMessage(hwnd, IDC_POLL_UNDER_CURSOR, BM_GETCHECK, 0, 0); PollForeground=SendDlgItemMessage(hwnd, IDC_POLL_FOREGROUND, BM_GETCHECK, 0, 0); PollFullScreen=SendDlgItemMessage(hwnd, IDC_POLL_FULLSCREEN, BM_GETCHECK, 0, 0); PollConsoleOnly=SendDlgItemMessage(hwnd, IDC_CONSOLE_ONLY, BM_GETCHECK, 0, 0); PollOnEventOnly=SendDlgItemMessage(hwnd, IDC_ONEVENT_ONLY, BM_GETCHECK, 0, 0); Driver=SendDlgItemMessage(hwnd, IDC_DRIVER, BM_GETCHECK, 0, 0); Primary=SendDlgItemMessage(hwnd, IDC_PRIM, BM_GETCHECK, 0, 0); Secondary=SendDlgItemMessage(hwnd, IDC_SEC, BM_GETCHECK, 0, 0); Hook=SendDlgItemMessage(hwnd, IDC_HOOK, BM_GETCHECK, 0, 0); RemoveWallpaper=SendDlgItemMessage(hwnd, IDC_REMOVE_WALLPAPER, BM_GETCHECK, 0, 0); RemoveAero=SendDlgItemMessage(hwnd, IDC_REMOVE_Aero, BM_GETCHECK, 0, 0); MaxCpu = GetDlgItemInt(hwnd, IDC_MAXCPU, NULL, FALSE); } break; case IDCANCEL: EndDialog(hwnd, IDCANCEL); return TRUE; case IDC_POLL_FOREGROUND: case IDC_POLL_UNDER_CURSOR: // User has clicked on one of the polling mode buttons // affected by the pollconsole and pollonevent options { // Get the poll-mode buttons HWND hPollForeground = GetDlgItem(hwnd, IDC_POLL_FOREGROUND); HWND hPollUnderCursor = GetDlgItem(hwnd, IDC_POLL_UNDER_CURSOR); // Determine whether to enable the modifier options BOOL enabled = (SendMessage(hPollForeground, BM_GETCHECK, 0, 0) == BST_CHECKED) || (SendMessage(hPollUnderCursor, BM_GETCHECK, 0, 0) == BST_CHECKED); HWND hPollConsoleOnly = GetDlgItem(hwnd, IDC_CONSOLE_ONLY); EnableWindow(hPollConsoleOnly, enabled); HWND hPollOnEventOnly = GetDlgItem(hwnd, IDC_ONEVENT_ONLY); EnableWindow(hPollOnEventOnly, enabled); } return TRUE; case IDC_CHECKDRIVER: { CheckVideoDriver(1); } return TRUE; } return 0; } return 0; }
BOOL CALLBACK vncPropertiesPoll::DialogProcPoll(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam ) { // We use the dialog-box's USERDATA to store a _this pointer // This is set only once WM_INITDIALOG has been recieved, though! vncPropertiesPoll *_this = (vncPropertiesPoll *) GetWindowLong(hwnd, GWL_USERDATA); switch (uMsg) { case WM_INITDIALOG: { // Retrieve the Dialog box parameter and use it as a pointer // to the calling vncPropertiesPoll object SetWindowLong(hwnd, GWL_USERDATA, lParam); _this = (vncPropertiesPoll *) lParam; _this->m_dlgvisible = TRUE; // Set the dialog box's title to indicate which Properties we're editting if (_this->m_usersettings) { SetWindowText(hwnd, sz_ID_CURRENT_USER_PROP); } else { SetWindowText(hwnd, sz_ID_DEFAULT_SYST_PROP); } // Modif sf@2002 HWND hTurboMode = GetDlgItem(hwnd, IDC_TURBOMODE); SendMessage(hTurboMode, BM_SETCHECK, _this->m_server->TurboMode(), 0); // Set the polling options HWND hDriver = GetDlgItem(hwnd, IDC_DRIVER); SendMessage(hDriver, BM_SETCHECK, _this->m_server->Driver(),0); if (OSVersion()==3) // If NT4 or below, no driver { SendMessage(hDriver,BM_SETCHECK,false,0); _this->m_server->Driver(false); EnableWindow(hDriver, false); } HWND hHook = GetDlgItem(hwnd, IDC_HOOK); SendMessage(hHook, BM_SETCHECK, _this->m_server->Hook(), 0); HWND hPollFullScreen = GetDlgItem(hwnd, IDC_POLL_FULLSCREEN); SendMessage(hPollFullScreen, BM_SETCHECK, _this->m_server->PollFullScreen(), 0); HWND hPollForeground = GetDlgItem(hwnd, IDC_POLL_FOREGROUND); SendMessage(hPollForeground, BM_SETCHECK, _this->m_server->PollForeground(), 0); HWND hPollUnderCursor = GetDlgItem(hwnd, IDC_POLL_UNDER_CURSOR); SendMessage(hPollUnderCursor, BM_SETCHECK, _this->m_server->PollUnderCursor(), 0); HWND hPollConsoleOnly = GetDlgItem(hwnd, IDC_CONSOLE_ONLY); SendMessage(hPollConsoleOnly, BM_SETCHECK, _this->m_server->PollConsoleOnly(), 0); EnableWindow(hPollConsoleOnly, _this->m_server->PollUnderCursor() || _this->m_server->PollForeground() ); HWND hPollOnEventOnly = GetDlgItem(hwnd, IDC_ONEVENT_ONLY); SendMessage(hPollOnEventOnly, BM_SETCHECK, _this->m_server->PollOnEventOnly(), 0); EnableWindow(hPollOnEventOnly, _this->m_server->PollUnderCursor() || _this->m_server->PollForeground() ); SetForegroundWindow(hwnd); return FALSE; // Because we've set the focus } case WM_COMMAND: switch (LOWORD(wParam)) { case IDOK: case IDC_APPLY: { // Modif sf@2002 HWND hTurboMode = GetDlgItem(hwnd, IDC_TURBOMODE); _this->m_server->TurboMode(SendMessage(hTurboMode, BM_GETCHECK, 0, 0) == BST_CHECKED); // Handle the polling stuff HWND hDriver = GetDlgItem(hwnd, IDC_DRIVER); bool result=(SendMessage(hDriver, BM_GETCHECK, 0, 0) == BST_CHECKED); if (result) { #ifdef DRIVER _this->m_server->Driver(CheckVideoDriver(0)); #endif } else _this->m_server->Driver(false); HWND hHook = GetDlgItem(hwnd, IDC_HOOK); _this->m_server->Hook( SendMessage(hHook, BM_GETCHECK, 0, 0) == BST_CHECKED ); HWND hPollFullScreen = GetDlgItem(hwnd, IDC_POLL_FULLSCREEN); _this->m_server->PollFullScreen( SendMessage(hPollFullScreen, BM_GETCHECK, 0, 0) == BST_CHECKED ); HWND hPollForeground = GetDlgItem(hwnd, IDC_POLL_FOREGROUND); _this->m_server->PollForeground( SendMessage(hPollForeground, BM_GETCHECK, 0, 0) == BST_CHECKED ); HWND hPollUnderCursor = GetDlgItem(hwnd, IDC_POLL_UNDER_CURSOR); _this->m_server->PollUnderCursor( SendMessage(hPollUnderCursor, BM_GETCHECK, 0, 0) == BST_CHECKED ); HWND hPollConsoleOnly = GetDlgItem(hwnd, IDC_CONSOLE_ONLY); _this->m_server->PollConsoleOnly( SendMessage(hPollConsoleOnly, BM_GETCHECK, 0, 0) == BST_CHECKED ); HWND hPollOnEventOnly = GetDlgItem(hwnd, IDC_ONEVENT_ONLY); _this->m_server->PollOnEventOnly( SendMessage(hPollOnEventOnly, BM_GETCHECK, 0, 0) == BST_CHECKED ); // Was ok pressed? if (LOWORD(wParam) == IDOK) { // Yes, so close the dialog vnclog.Print(LL_INTINFO, VNCLOG("enddialog (OK)\n")); _this->m_returncode_valid = TRUE; EndDialog(hwnd, IDOK); _this->m_dlgvisible = FALSE; } _this->m_server->SetHookings(); return TRUE; } case IDCANCEL: vnclog.Print(LL_INTINFO, VNCLOG("enddialog (CANCEL)\n")); _this->m_returncode_valid = TRUE; EndDialog(hwnd, IDCANCEL); _this->m_dlgvisible = FALSE; return TRUE; case IDC_POLL_FOREGROUND: case IDC_POLL_UNDER_CURSOR: // User has clicked on one of the polling mode buttons // affected by the pollconsole and pollonevent options { // Get the poll-mode buttons HWND hPollForeground = GetDlgItem(hwnd, IDC_POLL_FOREGROUND); HWND hPollUnderCursor = GetDlgItem(hwnd, IDC_POLL_UNDER_CURSOR); // Determine whether to enable the modifier options BOOL enabled = (SendMessage(hPollForeground, BM_GETCHECK, 0, 0) == BST_CHECKED) || (SendMessage(hPollUnderCursor, BM_GETCHECK, 0, 0) == BST_CHECKED); HWND hPollConsoleOnly = GetDlgItem(hwnd, IDC_CONSOLE_ONLY); EnableWindow(hPollConsoleOnly, enabled); HWND hPollOnEventOnly = GetDlgItem(hwnd, IDC_ONEVENT_ONLY); EnableWindow(hPollOnEventOnly, enabled); } return TRUE; case IDC_CHECKDRIVER: { #ifdef DRIVER CheckVideoDriver(1); #endif } return TRUE; } break; } return 0; }
BOOL CALLBACK DlgProcCAP(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch (uMsg) { case WM_INITDIALOG: { initdone5=false; SendMessage(GetDlgItem(hwnd, IDC_TURBOMODE), BM_SETCHECK, TurboMode, 0); SendMessage(GetDlgItem(hwnd, IDC_DRIVER),BM_SETCHECK,Driver,0); SendMessage(GetDlgItem(hwnd, IDC_HOOK),BM_SETCHECK,Hook,0); SendMessage(GetDlgItem(hwnd, IDC_POLL_FULLSCREEN),BM_SETCHECK,PollFullScreen,0); SendMessage(GetDlgItem(hwnd, IDC_POLL_FOREGROUND),BM_SETCHECK,PollForeground,0); SendMessage(GetDlgItem(hwnd, IDC_POLL_UNDER_CURSOR),BM_SETCHECK,PollUnderCursor,0); SendMessage(GetDlgItem(hwnd, IDC_CONSOLE_ONLY),BM_SETCHECK,PollConsoleOnly,0); SendMessage(GetDlgItem(hwnd, IDC_ALPHA), BM_SETCHECK,CaptureAlphaBlending, 0); SendMessage(GetDlgItem(hwnd, IDC_REMOVE_WALLPAPER),BM_SETCHECK,RemoveWallpaper,0); SendMessage(GetDlgItem(hwnd, IDC_REMOVE_Aero),BM_SETCHECK,RemoveAero,0); SendMessage(GetDlgItem(hwnd, IDC_ONEVENT_ONLY),BM_SETCHECK,PollOnEventOnly,0); EnableWindow(GetDlgItem(hwnd, IDC_CONSOLE_ONLY),PollUnderCursor ||PollForeground); EnableWindow(GetDlgItem(hwnd, IDC_ONEVENT_ONLY),PollUnderCursor ||PollForeground); SendMessage(GetDlgItem(hwnd, IDC_PRIM),BM_SETCHECK,Primary,0); SendMessage(GetDlgItem(hwnd, IDC_SEC),BM_SETCHECK,Secondary,0); initdone5=true; return TRUE; } case WM_COMMAND: switch (LOWORD(wParam)) { case IDOK: { TurboMode=SendDlgItemMessage(hwnd, IDC_TURBOMODE, BM_GETCHECK, 0, 0); PollUnderCursor=SendDlgItemMessage(hwnd, IDC_POLL_UNDER_CURSOR, BM_GETCHECK, 0, 0); PollForeground=SendDlgItemMessage(hwnd, IDC_POLL_FOREGROUND, BM_GETCHECK, 0, 0); PollFullScreen=SendDlgItemMessage(hwnd, IDC_POLL_FULLSCREEN, BM_GETCHECK, 0, 0); PollConsoleOnly=SendDlgItemMessage(hwnd, IDC_CONSOLE_ONLY, BM_GETCHECK, 0, 0); PollOnEventOnly=SendDlgItemMessage(hwnd, IDC_ONEVENT_ONLY, BM_GETCHECK, 0, 0); Driver=SendDlgItemMessage(hwnd, IDC_DRIVER, BM_GETCHECK, 0, 0); Primary=SendDlgItemMessage(hwnd, IDC_PRIM, BM_GETCHECK, 0, 0); Secondary=SendDlgItemMessage(hwnd, IDC_SEC, BM_GETCHECK, 0, 0); Hook=SendDlgItemMessage(hwnd, IDC_HOOK, BM_GETCHECK, 0, 0); CaptureAlphaBlending=SendDlgItemMessage(hwnd, IDC_ALPHA, BM_GETCHECK, 0, 0); RemoveWallpaper=SendDlgItemMessage(hwnd, IDC_REMOVE_WALLPAPER, BM_GETCHECK, 0, 0); RemoveAero=SendDlgItemMessage(hwnd, IDC_REMOVE_Aero, BM_GETCHECK, 0, 0); } break; case IDCANCEL: EndDialog(hwnd, IDCANCEL); return TRUE; case IDC_POLL_FOREGROUND: case IDC_POLL_UNDER_CURSOR: // User has clicked on one of the polling mode buttons // affected by the pollconsole and pollonevent options { // Get the poll-mode buttons HWND hPollForeground = GetDlgItem(hwnd, IDC_POLL_FOREGROUND); HWND hPollUnderCursor = GetDlgItem(hwnd, IDC_POLL_UNDER_CURSOR); // Determine whether to enable the modifier options BOOL enabled = (SendMessage(hPollForeground, BM_GETCHECK, 0, 0) == BST_CHECKED) || (SendMessage(hPollUnderCursor, BM_GETCHECK, 0, 0) == BST_CHECKED); HWND hPollConsoleOnly = GetDlgItem(hwnd, IDC_CONSOLE_ONLY); EnableWindow(hPollConsoleOnly, enabled); HWND hPollOnEventOnly = GetDlgItem(hwnd, IDC_ONEVENT_ONLY); EnableWindow(hPollOnEventOnly, enabled); } return TRUE; case IDC_CHECKDRIVER: { CheckVideoDriver(1); } return TRUE; } return 0; } return 0; }
void vncPropertiesPoll::Load(BOOL usersettings) { // if (m_dlgvisible) { // vnclog.Print(LL_INTWARN, VNCLOG("service helper invoked while Properties panel displayed\n")); // return; // } ResetRegistry(); char username[UNLEN+1]; HKEY hkLocal, hkLocalUser, hkDefault; DWORD dw; // NEW (R3) PREFERENCES ALGORITHM // 1. Look in HKEY_LOCAL_MACHINE/Software/ORL/WinVNC3/%username% // for sysadmin-defined, user-specific settings. // 2. If not found, fall back to %username%=Default // 3. If AllowOverrides is set then load settings from // HKEY_CURRENT_USER/Software/ORL/WinVNC3 // GET THE CORRECT KEY TO READ FROM // Get the user name / service name if (!vncService::CurrentUser((char *)&username, sizeof(username))) return; // If there is no user logged on them default to SYSTEM if (strcmp(username, "") == 0) strcpy((char *)&username, "SYSTEM"); // Try to get the machine registry key for WinVNC if (RegCreateKeyEx(HKEY_LOCAL_MACHINE, WINVNC_REGISTRY_KEY, 0, REG_NONE, REG_OPTION_NON_VOLATILE, KEY_READ, NULL, &hkLocal, &dw) != ERROR_SUCCESS) { hkLocalUser=NULL; hkDefault=NULL; goto LABELUSERSETTINGS; } // Now try to get the per-user local key if (RegOpenKeyEx(hkLocal, username, 0, KEY_READ, &hkLocalUser) != ERROR_SUCCESS) hkLocalUser = NULL; // Get the default key if (RegCreateKeyEx(hkLocal, "Default", 0, REG_NONE, REG_OPTION_NON_VOLATILE, KEY_READ, NULL, &hkDefault, &dw) != ERROR_SUCCESS) hkDefault = NULL; LABELUSERSETTINGS: // LOAD THE USER PREFERENCES // Set the default user prefs vnclog.Print(LL_INTINFO, VNCLOG("clearing user settings\n")); m_pref_TurboMode = TRUE;//((vncService::VersionMajor() >= 6) ? TRUE : FALSE); m_pref_PollUnderCursor=FALSE; m_pref_PollForeground= FALSE; m_pref_PollFullScreen= TRUE;//((vncService::VersionMajor() >= 6) ? TRUE : FALSE); m_pref_PollConsoleOnly=FALSE; m_pref_PollOnEventOnly=FALSE; m_pref_MaxCpu=40; m_pref_Driver=CheckVideoDriver(0); m_pref_Hook=TRUE; m_pref_Virtual=FALSE; // [v1.0.2-jp2 fix] m_pref_SingleWindow = 0; *m_pref_szSingleWindowName = '\0'; // Load the local prefs for this user if (hkDefault != NULL) { vnclog.Print(LL_INTINFO, VNCLOG("loading DEFAULT local settings\n")); LoadUserPrefsPoll(hkDefault); } if (m_usersettings) { // We want the user settings, so load them! if (hkLocalUser != NULL) { vnclog.Print(LL_INTINFO, VNCLOG("loading \"%s\" local settings\n"), username); LoadUserPrefsPoll(hkLocalUser); } // Now override the system settings with the user's settings // If the username is SYSTEM then don't try to load them, because there aren't any... if ((strcmp(username, "SYSTEM") != 0)) { HKEY hkGlobalUser; if (RegCreateKeyEx(HKEY_CURRENT_USER, WINVNC_REGISTRY_KEY, 0, REG_NONE, REG_OPTION_NON_VOLATILE, KEY_READ, NULL, &hkGlobalUser, &dw) == ERROR_SUCCESS) { vnclog.Print(LL_INTINFO, VNCLOG("loading \"%s\" global settings\n"), username); LoadUserPrefsPoll(hkGlobalUser); RegCloseKey(hkGlobalUser); // Close the user registry hive so it can unload if required RegCloseKey(HKEY_CURRENT_USER); } } } if (hkLocalUser != NULL) RegCloseKey(hkLocalUser); if (hkDefault != NULL) RegCloseKey(hkDefault); if (hkLocal != NULL) RegCloseKey(hkLocal); // Make the loaded settings active.. ApplyUserPrefs(); // Note whether we loaded the user settings or just the default system settings m_usersettings = usersettings; }
BOOL CALLBACK vncPropertiesPoll::DialogProcPoll(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam ) { // We use the dialog-box's USERDATA to store a _this pointer // This is set only once WM_INITDIALOG has been recieved, though! vncPropertiesPoll *_this = helper::SafeGetWindowUserData<vncPropertiesPoll>(hwnd); switch (uMsg) { case WM_INITDIALOG: { // Retrieve the Dialog box parameter and use it as a pointer // to the calling vncPropertiesPoll object helper::SafeSetWindowUserData(hwnd, lParam); _this = (vncPropertiesPoll *) lParam; _this->m_dlgvisible = TRUE; if (_this->m_fUseRegistry) { _this->Load(_this->m_usersettings); // Set the dialog box's title to indicate which Properties we're editting if (_this->m_usersettings) { SetWindowText(hwnd, sz_ID_CURRENT_USER_PROP); } else { SetWindowText(hwnd, sz_ID_DEFAULT_SYST_PROP); } } else { //LoadFromIniFile(); } // Modif sf@2002 SetDlgItemInt(hwnd, IDC_MAXCPU, _this->m_server->MaxCpu(), false); HWND hTurboMode = GetDlgItem(hwnd, IDC_TURBOMODE); SendMessage(hTurboMode, BM_SETCHECK, _this->m_server->TurboMode(), 0); // Set the polling options HWND hDriver = GetDlgItem(hwnd, IDC_DRIVER); SendMessage(hDriver, BM_SETCHECK, _this->m_server->Driver(),0); HWND hHook = GetDlgItem(hwnd, IDC_HOOK); SendMessage(hHook, BM_SETCHECK, _this->m_server->Hook(), 0); HWND hPollFullScreen = GetDlgItem(hwnd, IDC_POLL_FULLSCREEN); SendMessage(hPollFullScreen, BM_SETCHECK, _this->m_server->PollFullScreen(), 0); HWND hPollForeground = GetDlgItem(hwnd, IDC_POLL_FOREGROUND); SendMessage(hPollForeground, BM_SETCHECK, _this->m_server->PollForeground(), 0); HWND hPollUnderCursor = GetDlgItem(hwnd, IDC_POLL_UNDER_CURSOR); SendMessage(hPollUnderCursor, BM_SETCHECK, _this->m_server->PollUnderCursor(), 0); HWND hPollConsoleOnly = GetDlgItem(hwnd, IDC_CONSOLE_ONLY); SendMessage(hPollConsoleOnly, BM_SETCHECK, _this->m_server->PollConsoleOnly(), 0); EnableWindow(hPollConsoleOnly, _this->m_server->PollUnderCursor() || _this->m_server->PollForeground() ); HWND hPollOnEventOnly = GetDlgItem(hwnd, IDC_ONEVENT_ONLY); SendMessage(hPollOnEventOnly, BM_SETCHECK, _this->m_server->PollOnEventOnly(), 0); EnableWindow(hPollOnEventOnly, _this->m_server->PollUnderCursor() || _this->m_server->PollForeground() ); // [v1.0.2-jp2 fix-->] HWND hSingleWindow = GetDlgItem(hwnd, IDC_SINGLE_WINDOW); SendMessage(hSingleWindow, BM_SETCHECK, _this->m_server->SingleWindow(), 0); HWND hWindowName = GetDlgItem(hwnd, IDC_NAME_APPLI); if ( _this->m_server->GetWindowName() != NULL){ SetDlgItemText(hwnd, IDC_NAME_APPLI,_this->m_server->GetWindowName()); } EnableWindow(hWindowName, _this->m_server->SingleWindow()); // [<--v1.0.2-jp2 fix] SetForegroundWindow(hwnd); return FALSE; // Because we've set the focus } case WM_COMMAND: switch (LOWORD(wParam)) { case IDOK: case IDC_APPLY: { int maxcpu = GetDlgItemInt(hwnd, IDC_MAXCPU, NULL, FALSE); _this->m_server->MaxCpu(maxcpu); // Modif sf@2002 HWND hTurboMode = GetDlgItem(hwnd, IDC_TURBOMODE); _this->m_server->TurboMode(SendMessage(hTurboMode, BM_GETCHECK, 0, 0) == BST_CHECKED); // Handle the polling stuff HWND hDriver = GetDlgItem(hwnd, IDC_DRIVER); bool result=(SendMessage(hDriver, BM_GETCHECK, 0, 0) == BST_CHECKED); if (result) { _this->m_server->Driver(CheckVideoDriver(0)); } else _this->m_server->Driver(false); HWND hHook = GetDlgItem(hwnd, IDC_HOOK); _this->m_server->Hook( SendMessage(hHook, BM_GETCHECK, 0, 0) == BST_CHECKED ); HWND hPollFullScreen = GetDlgItem(hwnd, IDC_POLL_FULLSCREEN); _this->m_server->PollFullScreen( SendMessage(hPollFullScreen, BM_GETCHECK, 0, 0) == BST_CHECKED ); HWND hPollForeground = GetDlgItem(hwnd, IDC_POLL_FOREGROUND); _this->m_server->PollForeground( SendMessage(hPollForeground, BM_GETCHECK, 0, 0) == BST_CHECKED ); HWND hPollUnderCursor = GetDlgItem(hwnd, IDC_POLL_UNDER_CURSOR); _this->m_server->PollUnderCursor( SendMessage(hPollUnderCursor, BM_GETCHECK, 0, 0) == BST_CHECKED ); HWND hPollConsoleOnly = GetDlgItem(hwnd, IDC_CONSOLE_ONLY); _this->m_server->PollConsoleOnly( SendMessage(hPollConsoleOnly, BM_GETCHECK, 0, 0) == BST_CHECKED ); HWND hPollOnEventOnly = GetDlgItem(hwnd, IDC_ONEVENT_ONLY); _this->m_server->PollOnEventOnly( SendMessage(hPollOnEventOnly, BM_GETCHECK, 0, 0) == BST_CHECKED ); // [v1.0.2-jp2 fix-->] Move to vncpropertiesPoll.cpp HWND hSingleWindow = GetDlgItem(hwnd, IDC_SINGLE_WINDOW); _this->m_server->SingleWindow(SendMessage(hSingleWindow, BM_GETCHECK, 0, 0) == BST_CHECKED); char szName[32]; if (GetDlgItemText(hwnd, IDC_NAME_APPLI, (LPSTR) szName, 32) == 0){ vnclog.Print(LL_INTINFO,VNCLOG("Error while reading Window Name %d \n"), GetLastError()); } else{ _this->m_server->SetSingleWindowName(szName); } // [<--v1.0.2-jp2 fix] Move to vncpropertiesPoll.cpp // Save the settings if (_this->m_fUseRegistry) _this->Save(); else _this->SaveToIniFile(); // Was ok pressed? if (LOWORD(wParam) == IDOK) { // Yes, so close the dialog vnclog.Print(LL_INTINFO, VNCLOG("enddialog (OK)\n")); _this->m_returncode_valid = TRUE; EndDialog(hwnd, IDOK); _this->m_dlgvisible = FALSE; } _this->m_server->SetHookings(); return TRUE; } // [v1.0.2-jp2 fix-->] Move to vncpropertiesPoll.cpp case IDC_SINGLE_WINDOW: { HWND hSingleWindow = GetDlgItem(hwnd, IDC_SINGLE_WINDOW); BOOL fSingleWindow = (SendMessage(hSingleWindow, BM_GETCHECK,0, 0) == BST_CHECKED); HWND hWindowName = GetDlgItem(hwnd, IDC_NAME_APPLI); EnableWindow(hWindowName, fSingleWindow); } return TRUE; // [<--v1.0.2-jp2 fix] Move to vncpropertiesPoll.cpp case IDCANCEL: vnclog.Print(LL_INTINFO, VNCLOG("enddialog (CANCEL)\n")); _this->m_returncode_valid = TRUE; EndDialog(hwnd, IDCANCEL); _this->m_dlgvisible = FALSE; return TRUE; case IDC_POLL_FOREGROUND: case IDC_POLL_UNDER_CURSOR: // User has clicked on one of the polling mode buttons // affected by the pollconsole and pollonevent options { // Get the poll-mode buttons HWND hPollForeground = GetDlgItem(hwnd, IDC_POLL_FOREGROUND); HWND hPollUnderCursor = GetDlgItem(hwnd, IDC_POLL_UNDER_CURSOR); // Determine whether to enable the modifier options BOOL enabled = (SendMessage(hPollForeground, BM_GETCHECK, 0, 0) == BST_CHECKED) || (SendMessage(hPollUnderCursor, BM_GETCHECK, 0, 0) == BST_CHECKED); HWND hPollConsoleOnly = GetDlgItem(hwnd, IDC_CONSOLE_ONLY); EnableWindow(hPollConsoleOnly, enabled); HWND hPollOnEventOnly = GetDlgItem(hwnd, IDC_ONEVENT_ONLY); EnableWindow(hPollOnEventOnly, enabled); } return TRUE; case IDC_CHECKDRIVER: { CheckVideoDriver(1); } return TRUE; } break; } return 0; }