reman3/Rayman_X/cpa/Appli/MngData5/Src/Error.cpp

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 );
}