/*
* This file is part of the EMFexplorer projet.
* Copyright (C) 2004 Smith Charles.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*
* Extension: for commercial use, apply the Equity Public License, which
* adds to the normal terms of the GLPL a condition of donation to the author.
* If you are interested in support for this source code,
* contact Smith Charles <smith.charles@free.fr> for more information.
*/
#include "stdafx.h"
#include "wErr.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
void SCShowWinError()
{
SCShowWinError(GetLastError());
}
void SCShowWinError(DWORD dwError, LPCTSTR lpszCaption/*=NULL*/, LPCTSTR lpszFnMsg/*=NULL*/)
{
LPVOID lpMsgBuf;
FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
dwError,
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
(LPTSTR)&lpMsgBuf,
0,
NULL
);
// Display the string.
if (!lpszFnMsg)
MessageBox(NULL, (LPCTSTR)lpMsgBuf, lpszCaption ? lpszCaption : _T("Error"),
MB_OK | MB_ICONINFORMATION );
else
{
// Process any inserts in lpMsgBuf.
// ...
CString strMsg;
strMsg.Format(_T("%s\n%s"), lpszFnMsg, lpMsgBuf);
MessageBox(NULL, (LPCTSTR)strMsg, lpszCaption ? lpszCaption : _T("Error"),
MB_OK | MB_ICONINFORMATION );
}
// Free the buffer.
LocalFree( lpMsgBuf );
}