82 lines
2.1 KiB
C
82 lines
2.1 KiB
C
|
||
#ifndef _Multi_Level_Zone_Debug_H_
|
||
#define _Multi_Level_Zone_Debug_H_
|
||
|
||
#include <confdbg.h>
|
||
#include <debspew.h>
|
||
|
||
#define ZONE_FLAG(z) (1 << (z))
|
||
|
||
#if defined(_DEBUG) && defined(MULTI_LEVEL_ZONES)
|
||
|
||
#define DEFAULT_ZONES "Warning", "Trace", "Function",
|
||
#define BASE_ZONE_INDEX (ZONE_FUNCTION + 1)
|
||
|
||
|
||
#undef TRACE_OUT
|
||
#define TRACE_OUT(s) MLZ_TraceZoneEnabled(MLZ_FILE_ZONE) ? (MLZ_TraceOut s) : 0
|
||
|
||
#undef WARNING_OUT
|
||
#define WARNING_OUT(s) MLZ_WarningOut s
|
||
|
||
#undef DebugEntry
|
||
#define DebugEntry(fn) MLZ_EntryOut(MLZ_FILE_ZONE, #fn)
|
||
|
||
#undef DebugExitVOID
|
||
#define DebugExitVOID(fn) MLZ_ExitOut(MLZ_FILE_ZONE, #fn, RCTYPE_VOID, (DWORD) 0)
|
||
|
||
#undef DebugExitBOOL
|
||
#define DebugExitBOOL(fn,f) MLZ_ExitOut(MLZ_FILE_ZONE, #fn, RCTYPE_BOOL, (DWORD) f)
|
||
|
||
#undef DebugExitDWORD
|
||
#define DebugExitDWORD(fn,dw) MLZ_ExitOut(MLZ_FILE_ZONE, #fn, RCTYPE_DWORD, (DWORD) dw)
|
||
|
||
#undef DebugExitHRESULT
|
||
#define DebugExitHRESULT(fn,hr) MLZ_ExitOut(MLZ_FILE_ZONE, #fn, RCTYPE_HRESULT, (DWORD) hr)
|
||
|
||
#undef DebugExitINT
|
||
#define DebugExitINT(fn,n) MLZ_ExitOut(MLZ_FILE_ZONE, #fn, RCTYPE_INT, (DWORD) n)
|
||
|
||
#undef DebugExitULONG
|
||
#define DebugExitULONG(fn,ul) MLZ_ExitOut(MLZ_FILE_ZONE, #fn, RCTYPE_ULONG, (DWORD) ul)
|
||
|
||
#undef DebugExitPTR
|
||
#define DebugExitPTR(fn,lp) MLZ_ExitOut(MLZ_FILE_ZONE, #fn, RCTYPE_PTR, (DWORD_PTR) lp)
|
||
|
||
|
||
#ifdef __cplusplus
|
||
extern "C" {
|
||
#endif // __cplusplus
|
||
|
||
typedef enum
|
||
{
|
||
RCTYPE_VOID = 0,
|
||
RCTYPE_BOOL = 1,
|
||
RCTYPE_DWORD = 2,
|
||
RCTYPE_HRESULT = 3,
|
||
RCTYPE_INT = 4,
|
||
RCTYPE_ULONG = 5,
|
||
RCTYPE_PTR = 6
|
||
}
|
||
RCTYPE;
|
||
|
||
void WINAPI MLZ_DbgInit(PSTR *apszZones, UINT cZones);
|
||
void WINAPI MLZ_DbgDeInit(void);
|
||
void WINAPIV MLZ_WarningOut(PSTR pszFormat, ...);
|
||
BOOL WINAPI MLZ_TraceZoneEnabled(int iZone);
|
||
void WINAPIV MLZ_TraceOut(PSTR pszFormat, ...);
|
||
void WINAPI MLZ_EntryOut(int iZone, PSTR pszFunName);
|
||
void WINAPI MLZ_ExitOut(int iZone, PSTR pszFunName, RCTYPE eRetCodeType, DWORD_PTR dwRetCode);
|
||
|
||
#ifdef __cplusplus
|
||
}
|
||
#endif // __cplusplus
|
||
|
||
#else
|
||
#define DebugExitPTR(fn,lp)
|
||
|
||
#endif // _DEBUG && MULTI_ZONE_OUT
|
||
|
||
#endif // _Multi_Level_Zone_Debug_H_
|
||
|
||
|