#ifndef _winsevT_ #define _WINSEVT_ /*++ Copyright (c) 1989 Microsoft Corporation Module Name: winsevt.h Abstract: Functions: Portability: This module is portable. Author: Pradeep Bahl (PradeepB) Dec-1992 Revision History: Modification Date Person Description of Modification ------------------ ------- --------------------------- --*/ #include "wins.h" /* defines */ /* macros */ #define WINSFILE TEXT(__FILE__) #define WINSLINE __LINE__ /* WINSEVT_LOG_N_RET_IF_ERR_M -- Logs and Returns with indicated status if the return from the function is not as expected. */ #if 0 #define WINSEVT_LOG_N_RET_IF_ERR_M(Func_add, Success_Stat, Status_To_Ret, error_str_mo) \ { \ LONG Status_m; \ if ((Status_m = (Func_add)) != (Success_Stat))\ { \ WinsEvtLogEvt(Status, EVENTLOG_ERROR_TYPE, \ error_str, WINSFILE, WINSLINE); \ return((Status_To_Ret)); \ } \ } #endif #define WINSEVT_LOG_PRINT_D_M(_pStr) \ { \ if (WinsCnf.LogDetailedEvts > 0) \ { \ WINSEVT_LOG_PRINT_M((_pStr)); \ } \ } #define WINSEVT_LOG_PRINT_M(_pStr) { \ WINSEVT_STRS_T EvtStrs; \ EvtStrs.NoOfStrs = 1; \ EvtStrs.pStr[0] = _pStr; \ WinsEvtLogEvt(WINS_SUCCESS, \ EVENTLOG_INFORMATION_TYPE, \ WINS_EVT_PRINT, \ WINSFILE, WINSLINE, &EvtStrs); \ } #define WINSEVT_LOG_INFO_D_M(Status, EvtId) \ { \ if (WinsCnf.LogDetailedEvts > 0) \ { \ WINSEVT_LOG_INFO_M((Status), (EvtId)); \ } \ } #define WINSEVT_LOG_INFO_M(Status, EvtId) \ { \ LONG Status_m; \ Status_m = (Status); \ WinsEvtLogEvt(Status_m, EVENTLOG_INFORMATION_TYPE, \ (EvtId), WINSFILE, WINSLINE, NULL); \ } /* WINSEVT_LOG_M -- Logs the indicated event */ #define WINSEVT_LOG_D_M(Status, EvtId) \ { \ if (WinsCnf.LogDetailedEvts > 0) \ { \ WINSEVT_LOG_M((Status), (EvtId)); \ } \ } #define WINSEVT_LOG_M(Status, EvtId) \ { \ LONG Status_m; \ Status_m = (Status); \ WinsEvtLogEvt(Status_m, EVENTLOG_ERROR_TYPE, \ (EvtId), WINSFILE, WINSLINE, NULL); \ } // // log one or more strings specified by the EvtStr structure pointed // to by pStr (Message is an error message) // #define WINSEVT_LOG_STR_D_M(EvtId, pStr) \ { \ if (WinsCnf.LogDetailedEvts > 0) \ { \ WINSEVT_LOG_STR_M((EvtId), (pStr)); \ } \ } #define WINSEVT_LOG_STR_M(EvtId, pStr) \ WinsEvtLogEvt(WINS_FAILURE, EVENTLOG_ERROR_TYPE, \ (EvtId), WINSFILE, WINSLINE, (pStr)); // // log one or more strings specified by the EvtStr structure pointed // to by pStr (Message is an informational message) // #define WINSEVT_LOG_INFO_STR_D_M(EvtId, pStr) \ { \ if (WinsCnf.LogDetailedEvts > 0) \ { \ WINSEVT_LOG_INFO_STR_M((EvtId), (pStr)); \ } \ } #define WINSEVT_LOG_INFO_STR_M(EvtId, pStr) \ WinsEvtLogEvt(WINS_SUCCESS, EVENTLOG_INFORMATION_TYPE, \ (EvtId), WINSFILE, WINSLINE, (pStr)); /* WINSEVT_LOG_IF_ERR_M -- Logs the indicated event */ #define WINSEVT_LOG_IF_ERR_D_M(Status, EvtId) \ { \ if (WinsCnf.LogDetailedEvts > 0) \ { \ WINSEVT_LOG_IF_ERR_M((Status), (EvtId)); \ } \ } #define WINSEVT_LOG_IF_ERR_M(Status, Event_id) \ { \ LONG Status_m; \ Status_m = (Status); \ if (Status_m != WINS_SUCCESS) \ { \ WinsEvtLogEvt(Status_m, EVENTLOG_ERROR_TYPE, \ (Event_id), WINSFILE, WINSLINE, NULL); \ } \ } /* WINSEVT_LOG_N_RET_M -- Logs and Returns with indicated status if the return from the function is not as expected. */ #define WINSEVT_LOG_N_RET_D_M(Func, EvtId, RetStat) \ { \ if (WinsCnf.LogDetailedEvts > 0) \ { \ WINSEVT_LOG_N_RET_M((Func), (EvtId), (RetStat));\ } \ } #define WINSEVT_LOG_N_RET_M(Func, Event_id, ret_stat) \ { \ LONG Status_m; \ if ((Status_m = (Func)) != WINS_SUCCESS) \ { \ WinsEvtLogEvt(Status_m, EVENTLOG_ERROR_TYPE, \ (Event_id), WINSFILE, WINSLINE, NULL); \ return(ret_stat); \ } \ } /* WINSEVT_LOG_N_EXIT_M -- Logs and exit */ #define WINSEVT_LOG_N_EXIT_D_M(Func, EvtId, RetStat) \ { \ if (WinsCnf.LogDetailedEvts > 0) \ { \ WINSEVT_LOG_N_EXIT_M((Func), (EvtId), (RetStat));\ } \ } #define WINSEVT_LOG_N_EXIT_M(Func, Event_id, ret_stat) \ { \ LONG Status_m; \ if ((Status_m = (Func)) != (WINS_SUCCESS)) \ { \ WinsEvtLogEvt(Status_m, EVENTLOG_ERROR_TYPE,\ (Event_id), WINSFILE, WINSLINE, NULL); \ Exitprocess(1); \ } \ } #define WINSEVT_LOG_DET_EVT_M1(_Type, _EvtId, _Fmt, _D1) \ if (WinsCnf.LogDetailedEvts > 0) \ { \ WinsEvtLogDetEvt((_Type), (_EvtId), __FILE__, __LINE__, (_Fmt), (_D1)); \ } #define WINSEVT_LOG_DET_EVT_M2(_Type, _EvtId, _Fmt, _D1, _D2) \ if (WinsCnf.LogDetailedEvts > 0) \ { \ WinsEvtLogDetEvt((_Type), (_EvtId), __FILE__, __LINE__, (_Fmt), (_D1), (_D2)); \ } #define WINSEVT_LOG_DET_EVT_M3(_Type, _EvtId, _Fmt, _D1, _D2, _D3) \ if (WinsCnf.LogDetailedEvts > 0) \ { \ WinsEvtLogDetEvt((_Type), (_EvtId), __FILE__, __LINE__, (_Fmt), (_D1), (_D2), (_D3)); \ } #define WINSEVT_LOG_DET_EVT_M3(_Type, _EvtId, _Fmt, _D1, _D2, _D3) \ if (WinsCnf.LogDetailedEvts > 0) \ { \ WinsEvtLogDetEvt((_Type), (_EvtId), __FILE__, __LINE__, (_Fmt), (_D1), (_D2), (_D3)); \ } // // Max. number of strings that can be logged // #define MAX_NO_STRINGS 5 /* externs */ /* structure definitions */ typedef struct _WINSEVT_STRS_T { DWORD NoOfStrs; LPTSTR pStr[MAX_NO_STRINGS]; } WINSEVT_STRS_T, *PWINSEVT_STRS_T; /* function definitions */ extern VOID WinsEvtLogEvt ( LONG StatusCode, WORD EvtTyp, DWORD EvtId, LPTSTR pFileStr, //change to LPTSTR later DWORD LineNumber, PWINSEVT_STRS_T pStr ); extern VOID WinsEvtLogDetEvt( BOOL fInfo, DWORD EvtId, LPTSTR pFileStr, DWORD LineNumber, LPSTR pFormat, ... ); VOID WinsLogAdminEvent( IN DWORD EventId, IN DWORD StrArgs, IN ... ); #endif //_WINSEVT_