#include "Erm/CpaError.h" #include "..\PrivErm.h" int Erm_fn_iMessageBox(char * _szText,char * _szTitle,unsigned int _uiStyle); void Erm_fn_vSetWndHdl4Request(HWND hWin); HWND Erm_fn_hGetWndHdl4Request(); void Erm_fn_vAnErrorWasRaised(); HWND g_hWndHdl4Request = C_hNoWindowTreatment; /* ##F=================================================================================== NAME : Erm_fn_iMessageBox DESCRIPTION : Display a message box sending + sending a message to the window application + or build a message box INPUT : Text to display in the box Title Style (ex : MB_OK | MB_ICONSTOP ) OUTPUT : Result of the message box, depends on style ========================================================================================= CREATION : Carlos Torres =======================================================================================*/ int Erm_fn_iMessageBox(char * _szText,char * _szTitle,unsigned int _uiStyle) { /* Send a display box request message*/ if (g_hWndHdl4Request != C_hNoWindowTreatment) { tdstMsgBox stMsgBox; stMsgBox.szText = _szText; stMsgBox.szTitle = _szTitle; stMsgBox.uiStyle = _uiStyle; /* request the display of a message box + block until treatment of message*/ SendMessage(g_hWndHdl4Request,WM_MESSAGEBOX,C_uiWinCm_RequestMessageBox, (LPARAM)&stMsgBox); return stMsgBox.iResult; } /* display a message box*/ else return MessageBox(NULL,_szText,_szTitle,_uiStyle); } /* ##F=================================================================================== NAME : Erm_fn_vSetWndHdl4Request DESCRIPTION : set Window Handle that receive the request (it is used to send message for creating message box) INPUT : Window Handle ========================================================================================= LAST MODIFICATION : Carlos Torres / 04/12/1997 =======================================================================================*/ void Erm_fn_vSetWndHdl4Request(HWND hWin) { g_hWndHdl4Request = hWin; } /* ##F=================================================================================== NAME : Erm_fn_hGetWndHdl4Request DESCRIPTION : get window handle use for message box request (it is used to send message for creating message box) OUTPUT : Thread Id ========================================================================================= LAST MODIFICATION : Carlos Torres / 04/12/1997 =======================================================================================*/ HWND Erm_fn_hGetWndHdl4Request() { return g_hWndHdl4Request; } /* ##F#=================================================================================== NAME : Erm_fn_vAnErrorWasRaised DESCRIPTION : Call when an error was raised ========================================================================================= CREATION : Pierrick Crepy =======================================================================================*/ void Erm_fn_vAnErrorWasRaised() { #ifdef __STOP_ON_ERROR_RAISED__ #if defined(_DEBUG) #ifdef __ENABLE_DISPLAY_ERROR_WINDOW__ if (Erm_fn_iMessageBox("Do you want to Debug ?", "Erm Information Window", MB_TOPMOST| MB_ICONEXCLAMATION |MB_YESNO)==IDYES) #endif /*__ENABLE_DISPLAY_ERROR_WINDOW__*/ { #ifndef WATCOM __asm { int 3h } #else /* WATCOM*/ /*This management for Watcon is new since ERM V5.0.7*/ Watcom_Interupt3h();/*Interruption*/ #endif /*WATCOM*/ } #endif /*_DEBUG*/ #endif /*__STOP_ON_ERROR_RAISED__*/ }/*Erm_fn_vAnErrorWasRaised*/ /* ##F#=================================================================================== NAME : Erm_fn_v_ClearLogFile DESCRIPTION : Clear log file ========================================================================================= CREATION : Pierrick Crepy =======================================================================================*/ #ifndef _FIRE_DEADCODE_U64_ void Erm_fn_v_ClearLogFile() { #ifdef __LOG_FILE_ERROR__ FILE *hpErmLogFile; DWORD dwError; remove (C_szErrorLogFileName);/*lint !e534*/ hpErmLogFile = fopen( C_szErrorLogFileName, "w" ); #ifdef _DEBUG dwError = GetLastError(); if ( dwError && dwError != ERROR_ALREADY_EXISTS) { LPVOID lpMsgBuf; FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, NULL, GetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), /* Default language*/ (LPTSTR) &lpMsgBuf, 0, NULL );/*lint !e534*/ /* Display the string.*/ Erm_fn_iMessageBox(lpMsgBuf, C_szErrorLogFileName, MB_OK|MB_ICONINFORMATION ); /* Free the buffer.*/ LocalFree( lpMsgBuf ); } #endif /*_DEBUG*/ if (hpErmLogFile) fclose(hpErmLogFile); #endif /*__LOG_FILE_ERROR__*/ }/*Erm_fn_v_ClearLogFile*/ #endif /* _FIRE_DEADCODE_U64_ */ /* ##F#=================================================================================== NAME : Erm_fn_v_Printsz DESCRIPTION : Print String in log file INPUT : string to be print ========================================================================================= CREATION : Pierrick Crepy =======================================================================================*/ void Erm_fn_v_Printsz(char *szTxt) { #if !defined(U64) #ifdef __LOG_FILE_ERROR__ FILE *hpErmLogFile; hpErmLogFile = fopen( C_szErrorLogFileName, "a" ); if (hpErmLogFile) { fprintf (hpErmLogFile, szTxt); fclose(hpErmLogFile); } #endif /*__LOG_FILE_ERROR__*/ #else /* U64 */ M_PrintfN64((szTxt)); #endif /* U64 */ }/*lint !e715*/ /* ##F#=================================================================================== NAME : Erm_fn_v_PrintErrMsg DESCRIPTION : Print Message in file log INPUT : string1 to be print string2 to be print ========================================================================================= CREATION : Pierrick Crepy =======================================================================================*/ void Erm_fn_v_PrintErrMsg(char *p_cTxt1, char *p_cTxt2) { #ifdef __LOG_FILE_ERROR__ FILE *hpErmLogFile; hpErmLogFile = fopen( C_szErrorLogFileName, "a" ); if (hpErmLogFile) { fprintf (hpErmLogFile, "%s%s\n\n", p_cTxt1, p_cTxt2); fclose(hpErmLogFile); } #endif /*__LOG_FILE_ERROR__*/ }/*lint !e715*/ /* ##F#=================================================================================== NAME : Erm_fn_v_PrintErrMsgWithPersonalMsg DESCRIPTION : Print Message in file log INPUT : string1 to be print string2 to be print string3 to be print on a new line ========================================================================================= CREATION : Pierrick Crepy =======================================================================================*/ void Erm_fn_v_PrintErrMsgWithPersonalMsg(char *p_cTxt1, char *p_cTxt2, char *p_cTxt3) { #ifdef __LOG_FILE_ERROR__ FILE *hpErmLogFile; hpErmLogFile = fopen( C_szErrorLogFileName, "a" ); if (hpErmLogFile) { fprintf (hpErmLogFile, "%s%s\n%s\n\n", p_cTxt1, p_cTxt2, p_cTxt3); fclose(hpErmLogFile); } #endif /*__LOG_FILE_ERROR__*/ }/*lint !e715*/ /* ##F#=================================================================================== NAME : Erm_fn_vPrintNameOfAllModules DESCRIPTION : Print Name Of All Modules INPUT : File name ========================================================================================= CREATION : Pierrick Crepy =======================================================================================*/ #ifndef _FIRE_DEADCODE_U64_ void Erm_fn_vPrintNameOfAllModules(char *szFileName) { #ifdef __LOG_FILE_ERROR__ unsigned char ucI; char szModuleInfo[C_ucSizeOfModuleInformation]; FILE *hpErmLogFile; hpErmLogFile = fopen( szFileName, "a" ); if (hpErmLogFile) { fprintf (hpErmLogFile, "\nList of all initialized modules:\n"); for (ucI=0; ucI%d\t:%s\n", ucI, szModuleInfo);/*the fprintf is not used with multiple parametrer because U64, then we use sprintf*/ } fprintf (hpErmLogFile, "\n"); fclose(hpErmLogFile); } #endif /*__LOG_FILE_ERROR__*/ } #endif /* _FIRE_DEADCODE_U64_ */