Files
HLStock/HookMsg/MISC.Cpp
2013-07-20 23:23:05 +00:00

175 lines
4.1 KiB
C++

/*****************************************************************************\
*
* Module: misc.c
*
* Contains miscellaneous routines for the Windows debugging Spy SDK applet.
*
* Functions:
*
* ReadRegistry()
* WriteRegistry()
*
* Comments:
*
\*****************************************************************************/
#include "stdafx.h"
#include "spy.h"
#include <string.h>
HKEY ghkeySpy = NULL;
CHAR gszSpyAppKey[] = "Software\\Yourisoft\\HookMsg";
CHAR gszKeyPosition[] = "Position";
//LPSTR StripExtension(LPSTR pszFileName);
/*****************************************************************************\
* ReadRegistry
*
* Opens (creates if necessary) the registry key for spy preferences and then
* reads the last saved values.
*
* Arguments:
* none
*
* Returns:
* VOID
\*****************************************************************************/
VOID
ReadRegistry(
VOID
)
{
DWORD dwType;
DWORD cbData;
RegCreateKey(HKEY_CURRENT_USER, gszSpyAppKey, &ghkeySpy);
cbData = gwndpl.length = sizeof(gwndpl);
if (!ghkeySpy || RegQueryValueEx(ghkeySpy, gszKeyPosition, NULL, &dwType,
(LPBYTE)&gwndpl, &cbData) != ERROR_SUCCESS)
{
gwndpl.length = 0;
}
if (gwndpl.length != sizeof(gwndpl))
{
/* gwndpl.length = sizeof(gwndpl);
gwndpl.flags = 0;
gwndpl.showCmd = SW_SHOWNORMAL;
gwndpl.ptMinPosition.x = 0;
gwndpl.ptMinPosition.y = 0;
gwndpl.ptMaxPosition.x = 0;
gwndpl.ptMaxPosition.y = 0;
gwndpl.rcNormalPosition.left = 10;
gwndpl.rcNormalPosition.top = 10;
gwndpl.rcNormalPosition.right =
10 + (GetSystemMetrics(SM_CXSCREEN) / 3);
gwndpl.rcNormalPosition.bottom =
10 + (GetSystemMetrics(SM_CYSCREEN) / 3);
*/ }
/*
for( int i=0; i< MAX_FIND; i++ )
{
cbData = sizeof(HWND);
TCHAR szKeyName[100] = {0,};
wsprintf( szKeyName, "HWND_%d", i );
if (!ghkeySpy || RegQueryValueEx(ghkeySpy, szKeyName, NULL, &dwType,
(LPBYTE)&g_theApp.m_hFindWindow[i], &cbData) != ERROR_SUCCESS)
{
g_theApp.m_hFindWindow[i] = NULL;
}
}
*/
}
/*****************************************************************************\
* WriteRegistry
*
* Writes out preference data to the registry when the app exits, then
* closes the registry key.
*
* Arguments:
* none
*
* Returns:
* VOID
\*****************************************************************************/
VOID
WriteRegistry(
VOID
)
{
if (ghkeySpy)
{
WINDOWPLACEMENT wndpl;
wndpl.length = sizeof(WINDOWPLACEMENT);
::GetWindowPlacement( AfxGetApp()->GetMainWnd()->m_hWnd, &wndpl);
RegSetValueEx(ghkeySpy, gszKeyPosition, 0, REG_BINARY,
(LPBYTE)&wndpl, sizeof(wndpl));
/*
for( int i=0; i< MAX_FIND; i++ )
{
TCHAR szKeyName[100] = {0,};
wsprintf( szKeyName, "HWND_%d", i );
RegSetValueEx(ghkeySpy, szKeyName, 0, REG_DWORD,
(LPBYTE)&g_theApp.m_hFindWindow[i], sizeof(DWORD));
}
*/
// RegSetValueEx(ghkeySpy, gszKeyHWND1, 0, REG_BINARY,
// (LPBYTE)g_theApp.m_hFindWindow[0], sizeof(HWND));
// RegSetValueEx(ghkeySpy, gszKeyFileName, 0, REG_SZ,
// (LPBYTE)gszFile, (lstrlen(gszFile) + 1) * sizeof(TCHAR));
RegCloseKey(ghkeySpy);
}
}
/*****************************************************************************\
* StripExtension
*
* Strips the extension off of a filename.
*
* Arguments:
* LPSTR pszFileName - File name to process.
*
* Returns:
* Returns a pointer to the beginning of the filename. The extension
* will have been stripped off.
*
\*****************************************************************************/
/*
PRIVATE LPSTR
StripExtension(
LPSTR pszFileName
)
{
LPSTR p = pszFileName;
while (*p)
p++;
while (p > pszFileName && *p != '\\' && *p != ':') {
p = CharPrev(pszFileName, p);
if (*p == '.') {
*p = 0;
}
}
if (*p == '\\' || *p == ':') {
p++;
}
return p;
}
*/