BOOL InitInstance() { // Create the global atoms VNC_POPUPSELN_ATOM = GlobalAddAtom(VNC_POPUPSELN_ATOMNAME); if (VNC_POPUPSELN_ATOM == NULL) return FALSE; // Get the module name char proc_name[_MAX_PATH]; DWORD size; // Attempt to get the program/module name if ((size = GetModuleFileName( GetModuleHandle(NULL), (char *) &proc_name, _MAX_PATH )) == 0) return FALSE; // Get the default system key for the module hModuleKey = GetModuleKey(HKEY_LOCAL_MACHINE, proc_name, false, false); if (hModuleKey != NULL) { #ifdef _MSC_VER _RPT0(_CRT_WARN, "vncHooks : loading machine prefs\n"); #endif ReadSettings(); RegCloseKey(hModuleKey); hModuleKey = NULL; } // Get the key for the module hModuleKey = GetModuleKey(HKEY_CURRENT_USER, proc_name, false, false); if (hModuleKey != NULL) { #ifdef _MSC_VER _RPT0(_CRT_WARN, "vncHooks : loading user prefs\n"); #endif ReadSettings(); RegCloseKey(hModuleKey); hModuleKey = NULL; } return TRUE; }
BOOL InitInstance() { // Create the global atoms VNC_WINDOWPOS_ATOM = GlobalAddAtom(VNC_WINDOWPOS_ATOMNAME); if (VNC_WINDOWPOS_ATOM == NULL) return FALSE; VNC_POPUPSELN_ATOM = GlobalAddAtom(VNC_POPUPSELN_ATOMNAME); if (VNC_POPUPSELN_ATOM == NULL) return FALSE; // Get the module name char proc_name[_MAX_PATH]; DWORD size; // Attempt to get the program/module name if ((size = GetModuleFileName( GetModuleHandle(NULL), (char *) &proc_name, _MAX_PATH )) == 0) return FALSE; // Get the key for the module hModuleKey = GetModuleKey(proc_name); if (hModuleKey == NULL) return FALSE; // Read in the prefs prf_use_GetUpdateRect = GetProfileInt( "use_GetUpdateRect", TRUE ); prf_use_Timer = GetProfileInt( "use_Timer", FALSE ); prf_use_KeyPress = GetProfileInt( "use_KeyPress", TRUE ); prf_use_LButtonUp = GetProfileInt( "use_LButtonUp", TRUE ); prf_use_MButtonUp = GetProfileInt( "use_MButtonUp", TRUE ); prf_use_RButtonUp = GetProfileInt( "use_RButtonUp", TRUE ); prf_use_Deferral = GetProfileInt( "use_Deferral", #ifdef HORIZONLIVE FALSE // we use full screen polling anyway #else TRUE #endif ); return TRUE; }
BOOL ExitInstance() { // Free the created atoms if (VNC_POPUPSELN_ATOM != NULL) { // GlobalDeleteAtom(VNC_POPUPSELN_ATOM); VNC_POPUPSELN_ATOM = NULL; } // Write the module settings to disk if (sModulePrefs != NULL) { // Get the module name char proc_name[_MAX_PATH]; DWORD size; // Attempt to get the program/module name if ((size = GetModuleFileName( GetModuleHandle(NULL), (char *) &proc_name, _MAX_PATH )) == 0) return FALSE; // Get the key for the module #ifdef _MSC_VER _RPT0(_CRT_WARN, "vncHooks : locating user prefs\n"); #endif hModuleKey = GetModuleKey(HKEY_CURRENT_USER, proc_name, true, true); if (hModuleKey == NULL) return FALSE; #ifdef _MSC_VER _RPT0(_CRT_WARN, "vncHooks : writing user prefs\n"); #endif WriteProfileInt( "use_GetUpdateRect", prf_use_GetUpdateRect ); WriteProfileInt( "use_Timer", prf_use_Timer ); WriteProfileInt( "use_KeyPress", prf_use_KeyPress ); WriteProfileInt( "use_LButtonUp", prf_use_LButtonUp ); WriteProfileInt( "use_MButtonUp", prf_use_MButtonUp ); WriteProfileInt( "use_RButtonUp", prf_use_RButtonUp ); WriteProfileInt( "use_Deferral", prf_use_Deferral ); free(sModulePrefs); sModulePrefs = NULL; } // Close the registry key for this module if (hModuleKey != NULL) { RegCloseKey(hModuleKey); hModuleKey = NULL; } return TRUE; }