mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
231 lines
4.8 KiB
231 lines
4.8 KiB
/*++
|
|
|
|
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;
|
|
}
|