mirror of
https://github.com/reactos/reactos.git
synced 2024-10-04 08:25:53 +00:00
[RSHELL]
* Separate the wrapper logging code to its own file, to facilitate further debugging in other classes. svn path=/branches/shell-experiments/; revision=62133
This commit is contained in:
parent
5f6b18cc4d
commit
ea6aff329b
|
@ -12,6 +12,7 @@ list(APPEND SOURCE
|
||||||
CMenuSite.cpp
|
CMenuSite.cpp
|
||||||
CStartMenu.cpp
|
CStartMenu.cpp
|
||||||
misc.cpp
|
misc.cpp
|
||||||
|
wraplog.cpp
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/rshell.def)
|
${CMAKE_CURRENT_BINARY_DIR}/rshell.def)
|
||||||
|
|
||||||
add_library(rshell SHARED ${SOURCE})
|
add_library(rshell SHARED ${SOURCE})
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
*/
|
*/
|
||||||
#include "precomp.h"
|
#include "precomp.h"
|
||||||
|
#include "wraplog.h"
|
||||||
|
|
||||||
WINE_DEFAULT_DEBUG_CHANNEL(CMenuBand);
|
WINE_DEFAULT_DEBUG_CHANNEL(CMenuBand);
|
||||||
|
|
||||||
|
@ -272,118 +273,6 @@ HRESULT CMenuBand_Constructor(REFIID riid, LPVOID *ppv)
|
||||||
|
|
||||||
|
|
||||||
#if WRAP_LOG
|
#if WRAP_LOG
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
static UINT openCount = 0;
|
|
||||||
static UINT callLevel;
|
|
||||||
static FILE*log;
|
|
||||||
|
|
||||||
static UINT nTemps;
|
|
||||||
static CHAR strTemp[10][256];
|
|
||||||
|
|
||||||
static void WrapLogOpen()
|
|
||||||
{
|
|
||||||
if (openCount == 0)
|
|
||||||
{
|
|
||||||
log = fopen("G:\\CMenuBand.log", "w");
|
|
||||||
nTemps = 0;
|
|
||||||
callLevel = 0;
|
|
||||||
}
|
|
||||||
openCount++;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void WrapLogClose()
|
|
||||||
{
|
|
||||||
openCount--;
|
|
||||||
if (openCount == 0)
|
|
||||||
{
|
|
||||||
fclose(log);
|
|
||||||
log = NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void __cdecl WrapLogMsg(_Printf_format_string_ const char* msg, ...)
|
|
||||||
{
|
|
||||||
va_list args;
|
|
||||||
for (int i = 0; i < callLevel; i++)
|
|
||||||
fputs(" ", log);
|
|
||||||
fputs("-- ", log);
|
|
||||||
va_start(args, msg);
|
|
||||||
vfprintf(log, msg, args);
|
|
||||||
va_end(args);
|
|
||||||
fflush(log);
|
|
||||||
nTemps = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void __cdecl WrapLogEnter(_Printf_format_string_ const char* msg, ...)
|
|
||||||
{
|
|
||||||
va_list args;
|
|
||||||
for (int i = 0; i < callLevel; i++)
|
|
||||||
fputs(" ", log);
|
|
||||||
fputs("ENTER >> ", log);
|
|
||||||
va_start(args, msg);
|
|
||||||
vfprintf(log, msg, args);
|
|
||||||
va_end(args);
|
|
||||||
fflush(log);
|
|
||||||
callLevel++;
|
|
||||||
nTemps = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void __cdecl WrapLogExit(_Printf_format_string_ const char* msg, ...)
|
|
||||||
{
|
|
||||||
va_list args;
|
|
||||||
callLevel--;
|
|
||||||
for (int i = 0; i < callLevel; i++)
|
|
||||||
fputs(" ", log);
|
|
||||||
fputs("EXIT <<< ", log);
|
|
||||||
va_start(args, msg);
|
|
||||||
vfprintf(log, msg, args);
|
|
||||||
va_end(args);
|
|
||||||
fflush(log);
|
|
||||||
nTemps = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
template <class T>
|
|
||||||
static LPSTR Wrap(const T& value);
|
|
||||||
|
|
||||||
template <>
|
|
||||||
static LPSTR Wrap<GUID>(REFGUID guid)
|
|
||||||
{
|
|
||||||
LPSTR cGuid = strTemp[nTemps++];
|
|
||||||
sprintf(cGuid, "{%08lX-%04hX-%04hX-%02hhX%02hhX-%02hhX%02hhX%02hhX%02hhX%02hhX%02hhX}",
|
|
||||||
guid.Data1, guid.Data2, guid.Data3,
|
|
||||||
guid.Data4[0], guid.Data4[1], guid.Data4[2], guid.Data4[3],
|
|
||||||
guid.Data4[4], guid.Data4[5], guid.Data4[6], guid.Data4[7]);
|
|
||||||
return cGuid;
|
|
||||||
}
|
|
||||||
|
|
||||||
template <>
|
|
||||||
static LPSTR Wrap<RECT>(const RECT& rect)
|
|
||||||
{
|
|
||||||
LPSTR cGuid = strTemp[nTemps++];
|
|
||||||
sprintf(cGuid, "{L: %d, T: %d, R: %d, B: %d}",
|
|
||||||
rect.left, rect.top, rect.right, rect.bottom);
|
|
||||||
return cGuid;
|
|
||||||
}
|
|
||||||
|
|
||||||
template <>
|
|
||||||
static LPSTR Wrap<OLECMD>(const OLECMD& cmd)
|
|
||||||
{
|
|
||||||
LPSTR cGuid = strTemp[nTemps++];
|
|
||||||
sprintf(cGuid, "{ID: %d, F: %d}",
|
|
||||||
cmd.cmdID, cmd.cmdf);
|
|
||||||
return cGuid;
|
|
||||||
}
|
|
||||||
|
|
||||||
template <>
|
|
||||||
static LPSTR Wrap<MSG>(const MSG& msg)
|
|
||||||
{
|
|
||||||
LPSTR cGuid = strTemp[nTemps++];
|
|
||||||
sprintf(cGuid, "{HWND: %d, Code: %d, W: %p, L: %p, T: %d, P.X: %d, P.Y: %d}",
|
|
||||||
msg.hwnd, msg.message, msg.wParam, msg.lParam, msg.time, msg.pt.x, msg.pt.y);
|
|
||||||
return cGuid;
|
|
||||||
}
|
|
||||||
|
|
||||||
CMenuBand::CMenuBand()
|
CMenuBand::CMenuBand()
|
||||||
{
|
{
|
||||||
HRESULT hr;
|
HRESULT hr;
|
||||||
|
|
117
base/shell/rshell/wraplog.cpp
Normal file
117
base/shell/rshell/wraplog.cpp
Normal file
|
@ -0,0 +1,117 @@
|
||||||
|
#include "precomp.h"
|
||||||
|
#include "wraplog.h"
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
static UINT openCount = 0;
|
||||||
|
static UINT callLevel;
|
||||||
|
static FILE*log;
|
||||||
|
|
||||||
|
static UINT nTemps;
|
||||||
|
static CHAR strTemp[10][256];
|
||||||
|
|
||||||
|
void WrapLogOpen()
|
||||||
|
{
|
||||||
|
if (openCount == 0)
|
||||||
|
{
|
||||||
|
log = fopen("G:\\CMenuBand.log", "w");
|
||||||
|
nTemps = 0;
|
||||||
|
callLevel = 0;
|
||||||
|
}
|
||||||
|
openCount++;
|
||||||
|
}
|
||||||
|
|
||||||
|
void WrapLogClose()
|
||||||
|
{
|
||||||
|
openCount--;
|
||||||
|
if (openCount == 0)
|
||||||
|
{
|
||||||
|
fclose(log);
|
||||||
|
log = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void __cdecl WrapLogMsg(_Printf_format_string_ const char* msg, ...)
|
||||||
|
{
|
||||||
|
va_list args;
|
||||||
|
for (int i = 0; i < callLevel; i++)
|
||||||
|
fputs(" ", log);
|
||||||
|
fputs("-- ", log);
|
||||||
|
va_start(args, msg);
|
||||||
|
vfprintf(log, msg, args);
|
||||||
|
va_end(args);
|
||||||
|
fflush(log);
|
||||||
|
nTemps = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void __cdecl WrapLogEnter(_Printf_format_string_ const char* msg, ...)
|
||||||
|
{
|
||||||
|
va_list args;
|
||||||
|
for (int i = 0; i < callLevel; i++)
|
||||||
|
fputs(" ", log);
|
||||||
|
fputs("ENTER >> ", log);
|
||||||
|
va_start(args, msg);
|
||||||
|
vfprintf(log, msg, args);
|
||||||
|
va_end(args);
|
||||||
|
fflush(log);
|
||||||
|
callLevel++;
|
||||||
|
nTemps = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void __cdecl WrapLogExit(_Printf_format_string_ const char* msg, ...)
|
||||||
|
{
|
||||||
|
va_list args;
|
||||||
|
callLevel--;
|
||||||
|
for (int i = 0; i < callLevel; i++)
|
||||||
|
fputs(" ", log);
|
||||||
|
fputs("EXIT <<< ", log);
|
||||||
|
va_start(args, msg);
|
||||||
|
vfprintf(log, msg, args);
|
||||||
|
va_end(args);
|
||||||
|
fflush(log);
|
||||||
|
nTemps = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
template <class T>
|
||||||
|
LPSTR Wrap(const T& value);
|
||||||
|
|
||||||
|
template <>
|
||||||
|
LPSTR Wrap<GUID>(REFGUID guid)
|
||||||
|
{
|
||||||
|
LPSTR cGuid = strTemp[nTemps++];
|
||||||
|
StringCchPrintfA(cGuid, _countof(strTemp[0]),
|
||||||
|
"{%08lX-%04hX-%04hX-%02hhX%02hhX-%02hhX%02hhX%02hhX%02hhX%02hhX%02hhX}",
|
||||||
|
guid.Data1, guid.Data2, guid.Data3,
|
||||||
|
guid.Data4[0], guid.Data4[1], guid.Data4[2], guid.Data4[3],
|
||||||
|
guid.Data4[4], guid.Data4[5], guid.Data4[6], guid.Data4[7]);
|
||||||
|
return cGuid;
|
||||||
|
}
|
||||||
|
|
||||||
|
template <>
|
||||||
|
LPSTR Wrap<RECT>(const RECT& rect)
|
||||||
|
{
|
||||||
|
LPSTR cGuid = strTemp[nTemps++];
|
||||||
|
StringCchPrintfA(cGuid, _countof(strTemp[0]),
|
||||||
|
"{L: %d, T: %d, R: %d, B: %d}",
|
||||||
|
rect.left, rect.top, rect.right, rect.bottom);
|
||||||
|
return cGuid;
|
||||||
|
}
|
||||||
|
|
||||||
|
template <>
|
||||||
|
LPSTR Wrap<OLECMD>(const OLECMD& cmd)
|
||||||
|
{
|
||||||
|
LPSTR cGuid = strTemp[nTemps++];
|
||||||
|
StringCchPrintfA(cGuid, _countof(strTemp[0]),
|
||||||
|
"{ID: %d, F: %d}",
|
||||||
|
cmd.cmdID, cmd.cmdf);
|
||||||
|
return cGuid;
|
||||||
|
}
|
||||||
|
|
||||||
|
template <>
|
||||||
|
LPSTR Wrap<MSG>(const MSG& msg)
|
||||||
|
{
|
||||||
|
LPSTR cGuid = strTemp[nTemps++];
|
||||||
|
StringCchPrintfA(cGuid, _countof(strTemp[0]),
|
||||||
|
"{HWND: %d, Code: %d, W: %p, L: %p, T: %d, P.X: %d, P.Y: %d}",
|
||||||
|
msg.hwnd, msg.message, msg.wParam, msg.lParam, msg.time, msg.pt.x, msg.pt.y);
|
||||||
|
return cGuid;
|
||||||
|
}
|
10
base/shell/rshell/wraplog.h
Normal file
10
base/shell/rshell/wraplog.h
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
void WrapLogOpen();
|
||||||
|
void WrapLogClose();
|
||||||
|
void __cdecl WrapLogMsg(_Printf_format_string_ const char* msg, ...);
|
||||||
|
void __cdecl WrapLogEnter(_Printf_format_string_ const char* msg, ...);
|
||||||
|
void __cdecl WrapLogExit(_Printf_format_string_ const char* msg, ...);
|
||||||
|
|
||||||
|
template <class T>
|
||||||
|
LPSTR Wrap(const T& value);
|
Loading…
Reference in a new issue