windows-nt/Source/XPSP1/NT/inetsrv/query/web/dll/htxexcpt.hxx
2020-09-26 16:20:57 +08:00

75 lines
2.1 KiB
C++

//+---------------------------------------------------------------------------
//
// Copyright (C) 1994, Microsoft Corporation.
//
// File: htxexcpt.hxx
//
// Contents: Message exception package for IDQ files
//
// History: 96-Jan-98 DwightKr Created
//
//----------------------------------------------------------------------------
#pragma once
//+---------------------------------------------------------------------------
//
// Class: CHTXException
//
// Purpose: Exception class containing message numbers referring to
// keys within query.dll
//
// History: 96-Feb-26 DwightKr Created.
// 96-Jun-24 DwightKr Track file name
//
// Notes: We don't want to own any resources in this class, othersize
// it will need to be unwindable. Therefore, if the string
// is longer than MAX_PATH, we'll truncate.
//
//----------------------------------------------------------------------------
class CHTXException : public CException
{
public:
CHTXException( long lError,
WCHAR const * wcsFileName,
ULONG ulErrorIndex )
: _ulErrorIndex(ulErrorIndex),
CException(lError)
{
_awcHTXFileName[0] = 0;
if ( 0 != wcsFileName )
{
ULONG cwcFileName = min( wcslen(wcsFileName) + 1, MAX_PATH );
RtlCopyMemory( _awcHTXFileName,
wcsFileName,
sizeof(WCHAR) * cwcFileName );
_awcHTXFileName[MAX_PATH-1] = 0;
}
}
ULONG GetErrorIndex() const { return _ulErrorIndex; }
WCHAR const * GetHTXFileName() const { return _awcHTXFileName; }
# if !defined(NATIVE_EH)
// inherited methods
EXPORTDEF virtual int WINAPI IsKindOf( const char * szClass ) const
{
if( strcmp( szClass, "CHTXException" ) == 0 )
return TRUE;
else
return CException::IsKindOf( szClass );
}
# endif // !defined(NATIVE_EH)
private:
ULONG _ulErrorIndex;
WCHAR _awcHTXFileName[MAX_PATH];
};