/*++ Copyright (c) 1997 Microsoft Corporation Module Name: sdpspdbg.c Abstract: This module contains the debugging support for the multicast conference service provider. Author: Mu Han (muhan) 26-March-1997 --*/ #include "stdafx.h" #include "confdbg.h" #include #ifdef DBG #define MAXDEBUGSTRINGLEN 2048 #define MAXPATHLEN 255 VOID DbgPrt( IN int DbgLevel, IN PCHAR lpszFormat, IN ... ) /*++ Routine Description: Formats the incoming debug message & calls DbgPrint Arguments: DbgLevel - level of message verboseness DbgMessage - printf-style format string, followed by appropriate list of arguments Return Value: --*/ { const TCHAR gszTSPKey[] = "Software\\Microsoft\\Windows\\CurrentVersion\\IPConfTSP"; static FILE *log = NULL; static int DebugLevel = -1; if (DebugLevel == -1) { HKEY hTSPKey; DWORD dwDataSize = sizeof (int), dwDataType; const TCHAR szTSPDebugLevel[] = "DebugLevel"; const TCHAR szTSPLogFile[] = "LogFile"; DebugLevel=0; if (RegOpenKeyEx( HKEY_LOCAL_MACHINE, gszTSPKey, 0, KEY_READ, &hTSPKey ) == ERROR_SUCCESS) { if (RegQueryValueEx( hTSPKey, szTSPDebugLevel, 0, &dwDataType, (LPBYTE) &DebugLevel, &dwDataSize ) == ERROR_SUCCESS) { char szFileName[MAXPATHLEN + 1]; dwDataSize = MAXPATHLEN; if (RegQueryValueEx( hTSPKey, szTSPLogFile, 0, &dwDataType, (LPBYTE) &szFileName, &dwDataSize ) == ERROR_SUCCESS) { log = fopen(szFileName, "w"); } } RegCloseKey (hTSPKey); } } if (DbgLevel <= DebugLevel) { char buf[MAXDEBUGSTRINGLEN + 1]; char *message[5] = { "FAIL: ", "WARN: ", "INFO: ", "TRCE: ", "ELSE: " }; va_list ap; if (DbgLevel > 5) { DbgLevel = 5; } SYSTEMTIME SystemTime; // retrieve local time GetLocalTime(&SystemTime); wsprintfA(buf, "IPCONF:[%02u:%02u:%02u.%03u,tid=%x:]%s", SystemTime.wHour, SystemTime.wMinute, SystemTime.wSecond, SystemTime.wMilliseconds, GetCurrentThreadId(), message[DbgLevel - 1] ); va_start(ap, lpszFormat); _vsnprintf(&buf[strlen(buf)], MAXDEBUGSTRINGLEN - strlen(buf), lpszFormat, ap); lstrcatA (buf, "\n"); OutputDebugStringA (buf); if (log != NULL) { fprintf(log, "%s", buf); fflush(log); } va_end(ap); } } #endif //DBG