www.pudn.com > PropSheet_Wizard.zip > Debug.h


///////////////////////////////////////////////////////////////////////////// 
// Diagnostic support 
 
#ifdef _PSEUDO_DEBUG 
 
#undef TRACE 
#undef VERIFY 
#undef ASSERT 
#undef THIS_FILE 
#undef TRACE0 
#undef TRACE1 
#undef TRACE2 
#undef TRACE3 
 
 
// Note: file names are still ANSI strings (filenames rarely need UNICODE) 
BOOL AssertFailedLine(LPCSTR lpszFileName, int nLine); 
 
void Trace(LPCTSTR lpszFormat, ...); 
 
// by default, debug break is asm int 3, or a call to DebugBreak, or nothing 
#if defined(_M_IX86) 
#define CustomDebugBreak() _asm { int 3 } 
#else 
#define CustomDebugBreak() DebugBreak() 
#endif 
 
#define TRACE              ::Trace 
#define THIS_FILE          __FILE__ 
#define ASSERT(f) \ 
	do \ 
	{ \ 
	if (!(f) && AssertFailedLine(THIS_FILE, __LINE__)) \ 
		CustomDebugBreak(); \ 
	} while (0) \ 
 
#define VERIFY(f)          ASSERT(f) 
 
// The following trace macros are provided for backward compatiblity 
//  (they also take a fixed number of parameters which provides 
//   some amount of extra error checking) 
#define TRACE0(sz)              ::Trace(_T(sz)) 
#define TRACE1(sz, p1)          ::Trace(_T(sz), p1) 
#define TRACE2(sz, p1, p2)      ::Trace(_T(sz), p1, p2) 
#define TRACE3(sz, p1, p2, p3)  ::Trace(_T(sz), p1, p2, p3) 
 
#endif // !_PSEUDO_DEBUG 
 
///////////////////////////////////////////////////////////////////////////// 
// Miscellaneous utility functions 
 
void DefineMacro(LPCTSTR lpszKey, LPCTSTR lpszValue); 
void UndefMacro(LPCTSTR lpszKey); 
 
void DefineIntMacro(LPCTSTR pszKey, int iValue); 
void DefineIntMacro(LPCTSTR pszKey, int iItem, int iValue); 
void DefineBoolMacro(LPCTSTR pszKey, BOOL bValue); 
void DefineBoolMacro(LPCTSTR pszKey, int iItem, BOOL bValue); 
void DefineStringMacro(LPCTSTR pszKey, LPCTSTR pszValue); 
void DefineStringMacro(LPCTSTR pszKey, int iItem, LPCTSTR pszValue); 
 
void ReportError(UINT nIDP, LPCTSTR szArg); 
void ReportAndThrow(UINT nIDP, LPCTSTR szArg); 
 
///////////////////////////////////////////////////////////////////////////// 
// Paint functions 
 
void PaintBackground (CDC &dc, CDialog *pDlg); 
void PaintBitmap (UINT nBmp, int x, int y, int nWidth, int nHeight, CDC &dc);