initial oogynize check in _ this actually used to work!
This commit is contained in:
153
Hooks/ButtonHook/Stdafx.cpp
Normal file
153
Hooks/ButtonHook/Stdafx.cpp
Normal file
@@ -0,0 +1,153 @@
|
||||
// stdafx.cpp : source file that includes just the standard includes
|
||||
// Ooganizer-Hook.pch will be the pre-compiled header
|
||||
// stdafx.obj will contain the pre-compiled type information
|
||||
#include "stdafx.h"
|
||||
#include "stdio.h"
|
||||
#include "stdlib.h"
|
||||
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
// Func: SetLoggingDetail()
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
void SetLoggingDetail(LoggingDetail detail, wchar_t* logPath)
|
||||
{
|
||||
#ifdef _DEBUG
|
||||
g_LoggingDetail = LOGGING_DEBUG;
|
||||
#else
|
||||
g_LoggingDetail = detail;
|
||||
#endif
|
||||
|
||||
// If the log path is set externally set it here internally
|
||||
// else set the log path to %USERPROFILE%\AppData\Local\Temp
|
||||
if(logPath && logPath[0] != 0)
|
||||
{
|
||||
lstrcpyn(g_LogPath, logPath, (MAX_PATH - lstrlen(g_LOG_FILE_NAME)));
|
||||
}
|
||||
else
|
||||
{
|
||||
size_t len = 0;
|
||||
errno_t err = 0;
|
||||
wchar_t* pValue = NULL;
|
||||
|
||||
if(err = _wdupenv_s( &pValue, &len, L"TMP"))
|
||||
if(err = _wdupenv_s( &pValue, &len, L"TEMP"))
|
||||
return;
|
||||
|
||||
if(pValue != NULL)
|
||||
lstrcpyn(g_LogPath, pValue, (MAX_PATH - lstrlen(g_LOG_FILE_NAME)));
|
||||
}
|
||||
|
||||
// Make sure Path ends with '\'
|
||||
if(g_LogPath[lstrlen(g_LogPath) - 1] != L'\\')
|
||||
lstrcat(g_LogPath, L"\\");
|
||||
|
||||
// Add the Log File name to the path variable (now we have everything)
|
||||
// ~we are ready to do some serious logging
|
||||
lstrcat(g_LogPath,g_LOG_FILE_NAME);
|
||||
}
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
// Func: GetLoggingDetail()
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
_LoggingDetail GetLoggingDetail()
|
||||
{
|
||||
return g_LoggingDetail;
|
||||
}
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
// Func: log()
|
||||
// Desc: Logs to Ooganizer.log in defined LogPath or temporary folder
|
||||
// Prms: Variable # of params
|
||||
//
|
||||
// Usge: Log("%s %d %d %d", "test", 1, 2, 3)
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
//void log( LoggingDetail detail, char * pFmt, ... )
|
||||
//{
|
||||
// if(g_LoggingDetail >= detail)
|
||||
// {
|
||||
// FILE* pFile = NULL;
|
||||
// errno_t err = 0;
|
||||
//
|
||||
// if ( !( err = fopen_s( &pFile, g_LogPath, "at" ) ) )
|
||||
// {
|
||||
// fprintf( pFile, "ThreadId %i -", GetCurrentThreadId());
|
||||
// va_list arg;
|
||||
// va_start( arg, pFmt );
|
||||
// vfprintf( pFile, pFmt, arg );
|
||||
// va_end( arg );
|
||||
//
|
||||
// if ( pFmt[strlen( pFmt ) - 1] != '\n' )
|
||||
// fprintf( pFile, "\n" );
|
||||
// fclose( pFile );
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
// Func: log()
|
||||
// Desc: Logs to Ooganizer.log in defined LogPath or temporary folder using Wide Char
|
||||
// Prms: Variable # of params
|
||||
//
|
||||
// Usge: Log("%s %d %d %d", "test", 1, 2, 3)
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
void log( LoggingDetail detail, wchar_t * pFmt, ... )
|
||||
{
|
||||
if(g_LoggingDetail >= detail)
|
||||
{
|
||||
FILE* pFile = NULL;
|
||||
errno_t err = 0;
|
||||
|
||||
if ( !( err = _wfopen_s( &pFile, g_LogPath, L"at" ) ) )
|
||||
{
|
||||
|
||||
if(detail == LOGGING_LOW)
|
||||
fwprintf( pFile, L"ThreadId %i - [Imp] - ", GetCurrentThreadId()); // low == very important messages
|
||||
else if(detail == LOGGING_MEDIUM)
|
||||
fwprintf( pFile, L"ThreadId %i - {P/D} - ", GetCurrentThreadId()); // medium == program details
|
||||
else if(detail == LOGGING_HIGH)
|
||||
fwprintf( pFile, L"ThreadId %i - {X/D} - ", GetCurrentThreadId()); // high == more program details (extra}
|
||||
else if(detail == LOGGING_DEBUG)
|
||||
fwprintf( pFile, L"ThreadId %i - Debug - ", GetCurrentThreadId()); // debug == only show up in debug builds (Debug Only)
|
||||
else
|
||||
fwprintf( pFile, L"ThreadId %i - <N/A> - ", GetCurrentThreadId()); // should never happen
|
||||
|
||||
va_list arg;
|
||||
va_start( arg, pFmt );
|
||||
vfwprintf( pFile, pFmt, arg );
|
||||
va_end( arg );
|
||||
|
||||
if ( pFmt[lstrlen( pFmt ) - 1] != '\n' )
|
||||
fwprintf( pFile, L"\n" );
|
||||
fclose( pFile );
|
||||
}
|
||||
}
|
||||
}
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
// Func: log()
|
||||
// Desc: Logs the window title text to the Log File
|
||||
// Prms: HWND, handle to a window
|
||||
// str, custom string to log
|
||||
//
|
||||
// Note: GetWindowText doesn't always return TRUE, if this function
|
||||
// gets called during the WndProc it will return False
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
void log(LoggingDetail detail, HWND hWnd, wchar_t* str)
|
||||
{
|
||||
if(g_LoggingDetail >= detail)
|
||||
{
|
||||
wchar_t Title[MAX_PATH + 1] = {0};
|
||||
if (GetWindowText(hWnd,Title,MAX_PATH))
|
||||
log(detail, L"Window - %s - %s", Title, str);
|
||||
}
|
||||
}
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
// Func: clearLog()
|
||||
// Desc: clears the log file (used at startup) - Only Clears if Logging is enabled
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
void clearLog()
|
||||
{
|
||||
if(g_LoggingDetail != LOGGING_NONE)
|
||||
{
|
||||
FILE* pFile = NULL;
|
||||
errno_t err = 0;
|
||||
|
||||
if( !( err = _wfopen_s( &pFile, g_LogPath, L"w" ) ) )
|
||||
fclose( pFile );
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user