windows-nt/Source/XPSP1/NT/multimedia/directx/dinput/diconfig/ltrace.h

64 lines
1,007 B
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
#ifndef __LTRACE_H__
#define __LTRACE_H__
#define NO_LTRACE
/*#ifndef NO_LTRACE
#ifdef NDEBUG
#error I want ltrace!
#define NO_LTRACE
#endif
#endif*/
#ifndef NO_LTRACE
#ifndef THIS_FILE
const TCHAR THIS_FILE[] = __FILE__;
#endif
class __CLTraceScope
{
public:
__CLTraceScope(LPCTSTR, LPCTSTR, int);
__CLTraceScope(LPCTSTR, int);
~__CLTraceScope();
void scope(LPCTSTR, ...);
void ltrace(LPCTSTR, ...);
private:
LPCTSTR spacing();
LPCTSTR m_scope, m_file;
int m_line;
int m_depth;
static int s_depth;
// __CLTraceScope *m_pprev, *m_pnext;
// static __CLTraceScope *s_pfirst, *s_plast;
};
#define LTSCOPE0(scope) __CLTraceScope __localscope(scope, THIS_FILE, __LINE__)
#define LTSCOPE __CLTraceScope __localscope(THIS_FILE, __LINE__); __localscope.scope
#define LTRACE __localscope.ltrace
#else
inline void __localscope_dummy(LPCTSTR, ...) {}
#define LTSCOPE0(scope) (void(0))
#define LTSCOPE ; __localscope_dummy
#define LTRACE __localscope_dummy
#endif
#endif //__LTRACE_H__