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.
100 lines
2.2 KiB
100 lines
2.2 KiB
#include <windows.h>
|
|
#include "carddbg.h"
|
|
|
|
DEBUG_KEY MyDebugKeys[] =
|
|
{
|
|
{DEB_ERROR, "Error"},
|
|
{DEB_WARN, "Warning"},
|
|
{DEB_TRACE, "Trace"},
|
|
{DEB_TRACE_FUNC, "TraceFuncs"},
|
|
{DEB_TRACE_MEM, "TraceMem"},
|
|
{DEB_TRACE_TRANSMIT, "TraceTransmit"},
|
|
{DEB_TRACE_PROXY, "TraceProxy"},
|
|
{0, NULL}
|
|
};
|
|
|
|
#if DBG
|
|
#include <stdio.h>
|
|
#define CROW 16
|
|
void I_DebugPrintBytes(LPWSTR pwszHdr, BYTE *pb, DWORD cbSize)
|
|
{
|
|
ULONG cb, i;
|
|
CHAR rgsz[1024];
|
|
ULONG cbOffset = 0;
|
|
BOOL fTruncated = FALSE;
|
|
|
|
if (NULL == pb || 0 == cbSize)
|
|
return;
|
|
|
|
memset(rgsz, 0, sizeof(rgsz));
|
|
|
|
DebugLog((
|
|
DEB_TRACE_TRANSMIT,
|
|
"%S, %d bytes ::\n",
|
|
pwszHdr,
|
|
cbSize));
|
|
|
|
// Don't overflow the debug library output buffer.
|
|
if (cbSize > 50)
|
|
{
|
|
cbSize = 50;
|
|
fTruncated = TRUE;
|
|
}
|
|
|
|
while (cbSize > 0)
|
|
{
|
|
// Start every row with extra space
|
|
strcat(rgsz, " ");
|
|
cbOffset = (ULONG) strlen(rgsz);
|
|
|
|
cb = min(CROW, cbSize);
|
|
cbSize -= cb;
|
|
|
|
for (i = 0; i < cb; i++)
|
|
{
|
|
sprintf(
|
|
rgsz + cbOffset,
|
|
" %02x",
|
|
pb[i]);
|
|
cbOffset += 3;
|
|
}
|
|
for (i = cb; i < CROW; i++)
|
|
{
|
|
strcat(rgsz, " ");
|
|
}
|
|
|
|
strcat(rgsz, " '");
|
|
cbOffset = (ULONG) strlen(rgsz);
|
|
|
|
for (i = 0; i < cb; i++)
|
|
{
|
|
if (pb[i] >= 0x20 && pb[i] <= 0x7f)
|
|
sprintf(
|
|
rgsz + cbOffset,
|
|
"%c",
|
|
pb[i]);
|
|
else
|
|
sprintf(
|
|
rgsz + cbOffset,
|
|
".",
|
|
pb[i]);
|
|
|
|
cbOffset++;
|
|
}
|
|
|
|
strcat(rgsz, "\n");
|
|
pb += cb;
|
|
}
|
|
|
|
if (fTruncated)
|
|
DebugLog((
|
|
DEB_TRACE_TRANSMIT,
|
|
"(truncated)\n%s",
|
|
rgsz));
|
|
else
|
|
DebugLog((
|
|
DEB_TRACE_TRANSMIT,
|
|
"\n%s",
|
|
rgsz));
|
|
}
|
|
#endif
|