|
|
/*++
Copyright (c) 2001 Microsoft Corporation
Module Name:
Misc.cpp
Abstract:
Implements misc. functionality
Notes:
Unicode only
History:
05/04/2001 rparsons Created
--*/
#include "precomp.h"
extern APPINFO g_ai;
/*++
Routine Description:
Retrieves or sets position info in the registry
Arguments:
fSave - If true, indicates we're saving data *lppt - A POINT structure that contains/receives our data
Return Value:
TRUE on success, FALSE otherwise
--*/ void GetSavePositionInfo( IN BOOL fSave, IN OUT POINT *lppt ) { HKEY hKey; DWORD cbSize = 0, dwDisposition = 0; LONG lRetVal = 0; char szKeyName[] = "DlgCoordinates"; //
// Initialize our coordinates in case there's no data there
//
if (!fSave) { lppt->x = lppt->y = 0; }
//
// Open the registry key (or create it if the first time being used)
//
lRetVal = RegCreateKeyEx(HKEY_CURRENT_USER, L"Software\\Microsoft\\ShimViewer", 0, 0, REG_OPTION_NON_VOLATILE, KEY_QUERY_VALUE | KEY_SET_VALUE, 0, &hKey, &dwDisposition); if (ERROR_SUCCESS != lRetVal) { return; }
//
// Save or retrieve our coordinates
//
if (fSave) {
RegSetValueEx(hKey, L"DlgCoordinates", 0, REG_BINARY, (PBYTE)lppt, sizeof(*lppt)); } else {
cbSize = sizeof(*lppt); RegQueryValueEx(hKey, L"DlgCoordinates", 0, 0, (PBYTE)lppt, &cbSize); }
RegCloseKey(hKey);
return; }
/*++
Routine Description:
Retrieves or sets setting info. in the registry
Arguments:
fSave - If true, indicates we're saving data
Return Value:
TRUE on success, FALSE otherwise
--*/ void GetSaveSettings( IN BOOL fSave ) { HKEY hKey; LONG lRetVal = 0; DWORD dwOnTop = 0, dwMinimize = 0, dwMonitor = 1; DWORD dwDisposition = 0, cbSize = 0;
//
// Open the registry key (or create it if the first time being used)
//
lRetVal = RegCreateKeyEx(HKEY_CURRENT_USER, L"Software\\Microsoft\\ShimViewer", 0, 0, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, 0, &hKey, &dwDisposition); if (ERROR_SUCCESS != lRetVal) { return; }
if (fSave) {
if (g_ai.fOnTop) { dwOnTop |= 1; }
if (g_ai.fMinimize) { dwMinimize |= 1; }
if (g_ai.fMonitor) { dwMonitor |= 1; }
lRetVal = RegSetValueEx(hKey, L"AlwaysOnTop", 0, REG_DWORD, (LPBYTE)&dwOnTop, sizeof(DWORD));
RegSetValueEx(hKey, L"StartMinimize", 0, REG_DWORD, (LPBYTE)&dwMinimize, sizeof(DWORD));
RegSetValueEx(hKey, L"MonitorMessages", 0, REG_DWORD, (LPBYTE)&dwMonitor, sizeof(DWORD));
} else {
cbSize = sizeof(DWORD); RegQueryValueEx(hKey, L"AlwaysOnTop", 0, 0, (PBYTE)&dwOnTop, &cbSize);
cbSize = sizeof(DWORD); RegQueryValueEx(hKey, L"StartMinimize", 0, 0, (PBYTE)&dwMinimize, &cbSize);
cbSize = sizeof(DWORD); lRetVal = RegQueryValueEx(hKey, L"MonitorMessages", 0, 0, (PBYTE)&dwMonitor, &cbSize);
if (dwOnTop) { g_ai.fOnTop = TRUE; }
if (dwMinimize) { g_ai.fMinimize = TRUE; }
if ((dwMonitor) || (ERROR_SUCCESS != lRetVal)) { g_ai.fMonitor = TRUE; }
}
RegCloseKey(hKey); return; }
|