You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
105 lines
3.3 KiB
105 lines
3.3 KiB
#include "pch.h"
|
|
#pragma hdrstop
|
|
|
|
#include "except.h"
|
|
|
|
|
|
CExceptionString::CExceptionString(
|
|
LPCTSTR pszText
|
|
) : m_pszText(NULL)
|
|
{
|
|
m_pszText = Dup(pszText);
|
|
}
|
|
|
|
|
|
CExceptionString::CExceptionString(
|
|
const CExceptionString& rhs
|
|
) : m_pszText(NULL)
|
|
{
|
|
*this = rhs;
|
|
}
|
|
|
|
|
|
CExceptionString&
|
|
CExceptionString::operator = (
|
|
const CExceptionString& rhs
|
|
)
|
|
{
|
|
if (this != &rhs)
|
|
{
|
|
delete[] m_pszText;
|
|
m_pszText = Dup(rhs.m_pszText);
|
|
}
|
|
return *this;
|
|
}
|
|
|
|
LPTSTR
|
|
CExceptionString::Dup(
|
|
LPCTSTR psz
|
|
)
|
|
{
|
|
const size_t cch = lstrlen(psz) + 1;
|
|
LPTSTR pszNew = new TCHAR[cch];
|
|
lstrcpyn(pszNew, psz, cch);
|
|
return pszNew;
|
|
}
|
|
|
|
|
|
#if DBG
|
|
//
|
|
// Don't include these strings in free builds. Since the strings
|
|
// aren't localized, they're intended for debug output only.
|
|
//
|
|
LPCTSTR CMemoryException::m_pszReasons[] = { TEXT("alloc"),
|
|
TEXT("overflow"),
|
|
TEXT("index"),
|
|
TEXT("range"),
|
|
TEXT("pointer") };
|
|
|
|
LPCTSTR CFileException::m_pszReasons[] = { TEXT("create"),
|
|
TEXT("read"),
|
|
TEXT("write"),
|
|
TEXT("diskfull"),
|
|
TEXT("access"),
|
|
TEXT("device") };
|
|
|
|
LPCTSTR CSyncException::m_pszReasons[] = { TEXT("create"),
|
|
TEXT("timeout"),
|
|
TEXT("abandoned") };
|
|
|
|
LPCTSTR CSyncException::m_pszObjects[] = { TEXT("mutex"),
|
|
TEXT("critsect"),
|
|
TEXT("semaphore"),
|
|
TEXT("event"),
|
|
TEXT("thread"),
|
|
TEXT("process") };
|
|
|
|
LPCTSTR CResourceException::m_pszReasons[] = { TEXT("accelerator"),
|
|
TEXT("anicursor"),
|
|
TEXT("aniicon"),
|
|
TEXT("bitmap"),
|
|
TEXT("cursor"),
|
|
TEXT("dialog"),
|
|
TEXT("font"),
|
|
TEXT("fontdir"),
|
|
TEXT("group_cursor"),
|
|
TEXT("group_icon"),
|
|
TEXT("icon"),
|
|
TEXT("menu"),
|
|
TEXT("messagetable"),
|
|
TEXT("rcdata"),
|
|
TEXT("string"),
|
|
TEXT("version") };
|
|
|
|
LPCTSTR
|
|
CResourceException::ReasonText(
|
|
void
|
|
) const
|
|
{
|
|
static TCHAR szMsg[MAX_PATH];
|
|
wnsprintf(szMsg, ARRAYSIZE(szMsg), TEXT("%s (id: %d)"), m_pszReasons[Type()], m_uResId );
|
|
return szMsg;
|
|
}
|
|
|
|
#endif // DBG
|
|
|