145 lines
4.5 KiB
C++
145 lines
4.5 KiB
C++
/*
|
|
=======================================================================================
|
|
Name :error.cpp
|
|
|
|
Author :Vincent lhullier Date :27/04/97
|
|
|
|
Description :error management
|
|
=======================================================================================
|
|
Modification -> Author : Date :
|
|
Description :
|
|
=======================================================================================
|
|
*/
|
|
|
|
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
|
|
#include "stdafx.h"
|
|
#include "error.h"
|
|
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
|
|
|
|
/*
|
|
=======================================================================================
|
|
Globals
|
|
=======================================================================================
|
|
*/
|
|
char Error_g_szSystemMessage[1024];
|
|
char Error_g_szMessage[1024];
|
|
Error_tdeValue Error_g_eLast;
|
|
|
|
/*
|
|
=======================================================================================
|
|
Set functions
|
|
=======================================================================================
|
|
*/
|
|
|
|
|
|
/*
|
|
----------------------------------------------------------------------------------------
|
|
Description : set last error
|
|
_eError -> last error
|
|
_szErrorString -> error message
|
|
----------------------------------------------------------------------------------------
|
|
*/
|
|
void Error_fn_vSet( Error_tdeValue _eError, char *_szErrorString )
|
|
{
|
|
/* get system error */
|
|
DWORD dwError = GetLastError();
|
|
FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM,NULL,dwError,0, Error_g_szSystemMessage,1024, NULL);
|
|
|
|
/* copy or clear last error message */
|
|
strcpy( Error_g_szMessage, (_szErrorString == NULL) ? "" : _szErrorString );
|
|
|
|
/* set last error */
|
|
Error_g_eLast = _eError;
|
|
}
|
|
|
|
|
|
/*
|
|
----------------------------------------------------------------------------------------
|
|
Description : set last error with a va_list parameter
|
|
_eError -> last error
|
|
_szFormat -> string format
|
|
... -> other parameter
|
|
----------------------------------------------------------------------------------------
|
|
*/
|
|
void Error_fn_vSetFmt( Error_tdeValue _eError, char *_szFormat, ... )
|
|
{
|
|
/* get system error */
|
|
DWORD dwError = GetLastError();
|
|
FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM,NULL,dwError,0, Error_g_szSystemMessage,1024, NULL);
|
|
|
|
/* set last error */
|
|
Error_g_eLast = _eError;
|
|
|
|
/* get last error message */
|
|
va_list argptr;
|
|
va_start( argptr, _szFormat );
|
|
vsprintf( Error_g_szMessage, _szFormat, argptr );
|
|
va_end( argptr );
|
|
}
|
|
|
|
/*
|
|
=======================================================================================
|
|
Access functions
|
|
=======================================================================================
|
|
*/
|
|
|
|
/*
|
|
----------------------------------------------------------------------------------------
|
|
Description : get last error number
|
|
Returns (tdeError ) last error
|
|
----------------------------------------------------------------------------------------
|
|
*/
|
|
Error_tdeValue Error_fn_eGet( void )
|
|
{
|
|
return Error_g_eLast;
|
|
}
|
|
|
|
/*
|
|
----------------------------------------------------------------------------------------
|
|
Description : get last error message
|
|
Returns (char *) last error message
|
|
----------------------------------------------------------------------------------------
|
|
*/
|
|
char *Error_fn_p_szGetMessage( void )
|
|
{
|
|
return Error_g_szMessage;
|
|
}
|
|
|
|
/*
|
|
----------------------------------------------------------------------------------------
|
|
Description : return last system error message
|
|
Returns (char *) last system error message
|
|
----------------------------------------------------------------------------------------
|
|
*/
|
|
char *Error_fn_p_szGetSystemMessage( void )
|
|
{
|
|
return Error_g_szSystemMessage;
|
|
}
|
|
|
|
/*
|
|
=======================================================================================
|
|
Display function
|
|
=======================================================================================
|
|
*/
|
|
|
|
|
|
/*
|
|
----------------------------------------------------------------------------------------
|
|
Description : display last error in a message box
|
|
_bSystem -> if True display system message also
|
|
----------------------------------------------------------------------------------------
|
|
*/
|
|
void Error_fn_vDisplay( BOOL _bSystem )
|
|
{
|
|
char szText[2048];
|
|
char* p_szText;
|
|
|
|
p_szText = szText + sprintf( szText, "%s", Error_g_szMessage );
|
|
if ( _bSystem )
|
|
{
|
|
sprintf( p_szText, "\r\n---------\r\n%s", Error_g_szSystemMessage );
|
|
}
|
|
MessageBox( NULL, szText, "Error", MB_ICONERROR );
|
|
}
|
|
|