/*****************************************************************************
* Copyright (c) 1990-98 Digi International Inc., All Rights Reserved
* 
* This software contains proprietary and confidential information of Digi
* International Inc.  By accepting transfer of this copy, Recipient agrees
* to retain this software in confidence, to prevent disclosure to others,
* and to make no use of this software other than that for which it was
* delivered.  This is an unpublished copyrighted work of Digi International
* Inc.  Except as permitted by federal law, 17 USC 117, copying is strictly
* prohibited.
* 
* Restricted Rights Legend
*
* Use, duplication, or disclosure by the Government is subject to
* restrictions set forth in sub-paragraph (c)(1)(ii) of The Rights in
* Technical Data and Computer Software clause at DFARS 252.227-7031 or
* subparagraphs (c)(1) and (2) of the Commercial Computer Software -
* Restricted Rights at 48 CFR 52.227-19, as applicable.
*
* Digi International Inc. 11001 Bren Road East, Minnetonka, MN 55343
*
*****************************************************************************/


// ConfigException.cpp: implementation of the CConfigException class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "ConfigException.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CConfigException::CConfigException(int const nResourceID /* = -1 */, int const nHelpID /* = 0 */)
{
   if (nResourceID == -1)
   {
      m_strError = TEXT("");
   }
   else
   {
      VERIFY(m_strError.LoadString(nResourceID));
   }

   m_nHelpID = (UINT) nHelpID;
}

CConfigException::CConfigException(TCHAR const * const pszError, int const nHelpID /* = 0 */)
{
   ASSERT(pszError != NULL);
   ASSERT(AfxIsValidString(pszError));

   m_strError = pszError;
   m_nHelpID = (UINT) nHelpID;
}

CConfigException::~CConfigException()
{

}

BOOL CConfigException::GetErrorMessage(TCHAR * const pszError, int const cchError)
{
   BOOL fSuccess = FALSE;

   ASSERT(pszError != NULL);
   ASSERT(cchError > 0);
   ASSERT(AfxIsValidString(pszError, cchError));

   if ((pszError != NULL) && (cchError > 0) && (AfxIsValidString(pszError, cchError)))
   {
	   lstrcpyn(pszError, (LPCTSTR)m_strError, cchError);
      fSuccess = TRUE;
   }

   return fSuccess;
}

BOOL CConfigException::GetErrorMessage(CString &strError)
{
   BOOL fSuccess = FALSE;

   strError = m_strError;
   fSuccess = TRUE;

   return fSuccess;
}

int CConfigException::ReportError(UINT const nType /* = MB_OK | MB_ICONERROR */)
{
   return AfxMessageBox((LPCTSTR)m_strError, nType, m_nHelpID);
}
