/*********************************************************************** * * At Work Fax: Debug Trace Stuff * * * Copyright 1994 Microsoft Corporation. All Rights Reserved. * * ***********************************************************************/ #ifndef awDebug_h_include #define awDebug_h_include #ifdef __cplusplus extern "C" { #endif #ifdef DEBUG // prototypes void _DebugCheckHeap(void); VOID FAR CDECL DebugPrintf(LPSTR lpszFmt, ...); VOID FAR CDECL DebugErrorPrintf(LPSTR lpszFmt, ...); // macros #define AwTraceEntry( f ) DebugPrintf("ENTER->"#f"\n") #define AwDebugTrace( x ) DebugPrintf x #define AwDebugError( x ) DebugErrorPrintf x // MAPI Debug traces #define AwDebugTraceSc(f,sc) \ DebugErrorPrintf(#f " returns 0x%08lX %s\n", sc, SzDecodeScode(sc)) #define AwDebugTraceResult(f,hr) \ DebugErrorPrintf(#f " returns 0x%08lX %s\n", GetScode(hr), \ SzDecodeScode(GetScode(hr))) #define AwDebugTraceArg(f,s) \ DebugPrintf(#f ": bad parameter: " s "\n") #define AwDebugTraceLine() \ (DebugPrintf("File %s, Line %i \n",__FILE__,__LINE__)) #define AwDebugCheckHeap() _DebugCheckHeap() #else #define AwTraceEntry( f ) #define AwDebugTrace(x) #define AwDebugError(x) #define AwDebugTraceResult(f,hr) #define AwDebugTraceSc(f,sc) #define AwDebugTraceLine() #define AwDebugTraceArg(x,y) #define AwDebugCheckHeap() #endif /*********************************************************************** * * Memory tracking functions and defines * ***********************************************************************/ // memory tracking macros #define FREE_ALL_LEAKS 0x00000001 #define DUMP_LEAKED_MEMORY 0x00000002 #ifdef MEM_TRACKING #define INIT_MEMORY_TRACKING InitMemoryTracking #define STOP_MEMORY_TRACKING UnInitMemoryTracking #define REGISTER_ALLOC RegisterMemoryAlloc #define REGISTER_FREE UnRegisterMemoryAlloc #else #define INIT_MEMORY_TRACKING #define STOP_MEMORY_TRACKING #define REGISTER_ALLOC #define REGISTER_FREE #endif // MEM_TRACKING // memory tracking functions prototypes BOOL InitMemoryTracking(LPTSTR lpszProcessName); BOOL UnInitMemoryTracking(ULONG); BOOL RegisterMemoryAlloc(LPVOID lpMem, ULONG cBytes); BOOL UnRegisterMemoryAlloc(LPVOID lpMem); #ifdef __cplusplus } // extern "C" #endif #endif // awDebug_h_include