/* File: avUtil.h (was debug.h + runtime.h) Used by NAC.dll and H323CC.dll, and QOS.LIB */ #ifndef _AVUTIL_H #define _AVUTIL_H #include #include /* Assume 8 byte packing throughout */ /*********************************************************************** * * Registry access easy-wrapper functions prototypes * ***********************************************************************/ UINT NMINTERNAL RegistryGetInt(HKEY hPDKey, LPCTSTR lpszSection, LPCTSTR lpszKey, INT dwDefault, LPCTSTR lpszFile); DWORD NMINTERNAL RegistryGetString(HKEY hPDKey, LPCTSTR lpszSection, LPCTSTR lpszKey, LPCTSTR lpszDefault, LPTSTR lpszReturnBuffer, DWORD cchReturnBuffer, LPCTSTR lpszFile); BOOL NMINTERNAL RegistrySetString(HKEY hPDKey, LPCTSTR lpszSection, LPCTSTR lpszKey, LPCTSTR lpszString, LPCTSTR lpszFile); BOOL NMINTERNAL RegistrySetInt(HKEY hPDKey, LPCTSTR lpszSection, LPCTSTR lpszKey, DWORD i, LPCTSTR lpszFile); DWORD NMINTERNAL RegistryGetBinData(HKEY hPDKey, LPCTSTR lpszSection, LPCTSTR lpszKey, LPVOID lpvDefault, DWORD cchDefault, LPVOID lpvReturnBuffer, DWORD cchReturnBuffer, LPCTSTR lpszFile); BOOL NMINTERNAL RegistrySetBinData(HKEY hPDKey, LPCTSTR lpszSection, LPCTSTR lpszKey, LPVOID lpvBinData, DWORD cchBinData, LPCTSTR lpszFile); /********************************************************************** * * Debug Macros **********************************************************************/ /* * Debug message types */ #define AVERROR 0 #define AVTRACE 1 #define AVTRACEMEM 2 #define AVTESTTRACE 3 //****** Retail // MACRO: RETAILMSG(message-to-print) // PURPOSE: Prints a message to the debug output // NOTE: available in all builds, depends on the registry flag #define RETAILMSG(x) RetailPrintfTrace x VOID WINAPI RetailPrintfTrace(LPCSTR lpszFormat, ...); //****** Test and Debug // in test and debug build, doesnt depent on the registry flag #if defined(TEST) || defined(DEBUG) #define TESTMSG(x) TestPrintfTrace x void __cdecl TestPrintfTrace(LPCSTR lpszFormat, ...); #define ERRORMSG(x) ERROR_OUT(x) #else #define ERRORMSG(x) #define TESTMSG(x) #endif //****** Debug only #if defined(DEBUG) // MACRO: DebugTrap(void) // PURPOSE: Executes a debug break (like 'int 3' on x86) #define DebugTrap DebugTrapFn() #define DEBUGCHK(e) if(!(e)) DebugTrap /* * MACRO: DebugPrintError(LPCSTR) * * PURPOSE: Prints an error string to the debug output terminal * * PARAMETERS: * lpszFormat - a printf-style format * * RETURN VALUE: * none * * COMMENTS: * This macro calls the generic debug print macro, specifying * that this is an error message * */ #define DebugPrintError(x) ERROR_OUT(x) /* * MACRO: DebugPrintErrorFileLine(DWORD, LPSTR) * * PURPOSE: Pretty print an error to the debugging output. * * PARAMETERS: * dwError - Actual error code * pszPrefix - String to prepend to the printed message. * * RETURN VALUE: * none * * COMMENTS: * It will take the error, turn it into a human * readable string, prepend pszPrefix (so you * can tag your errors), append __FILE__ and __LINE__ * and print it to the debugging output. * * This macro is just a wrapper around OutputDebugLineErrorFileLine * that is necessary to get proper values for __FILE__ and __LINE__. * */ #define DebugPrintErrorFileLine(dwError, pszPrefix) \ DebugPrintFileLine(dwError, pszPrefix,\ __FILE__, __LINE__) /* * MACRO: DebugPrintTraceFileLine(DWORD, LPSTR) * * PURPOSE: Pretty print a trace message to the debugging output. * * PARAMETERS: * dwParam- A paramter to trace * pszPrefix - String to prepend to the printed message. * * RETURN VALUE: * none * * COMMENTS: * Takes a parameter, prepend pszPrefix (so you * can tag your traces), append __FILE__ and __LINE__ * and print it to the debugging output. * * This macro is just a wrapper around OutputDebugLineErrorFileLine * that is necessary to get proper values for __FILE__ and __LINE__. * */ #define DebugPrintTraceFileLine(dwParam, pszPrefix) \ DebugPrintFileLine(dwParam, pszPrefix,\ __FILE__, __LINE__) void DebugPrintFileLine( DWORD dwError, LPSTR szPrefix, LPSTR szFileName, DWORD nLineNumber); VOID NMINTERNAL DebugTrapFn(void); #else // not DEBUG #define DEBUGMSG(z,s) #define DebugTrap #define DebugPrintError(x) #define DebugPrintTrace(x) #define DebugPrintTraceFileLine(dwParam, pszPrefix) #define DEBUGCHK(e) #endif #define GETMASK(hDbgZone) \ ((hDbgZone) ? (((PZONEINFO)(hDbgZone))->ulZoneMask) : (0)) #include /* End byte packing */ #endif //#ifndef _AVUTIL_H