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

114 lines
2.8 KiB
C++

//+---------------------------------------------------------------------------
//
// Copyright (C) 1994, Microsoft Corporation.
//
// File: ixsexcpt.hxx
//
// Contents: Message exception package for the Index server SSO
//
// History: 04 Nov 1996 AlanW Created
//
//----------------------------------------------------------------------------
#pragma once
enum
{
eDefaultError = 0,
eIxssoError,
eParseError,
ePlistError,
};
//+---------------------------------------------------------------------------
//
// Class: CIxssoException
//
// Purpose: Exception class containing message numbers referring to
// keys within ixsso.dll
//
// Notes:
//
// History: 04 Nov 1996 AlanW Created
//
//----------------------------------------------------------------------------
class CIxssoException : public CException
{
public:
CIxssoException( long lError, ULONG ulErrorIndex )
: _ulErrorIndex(ulErrorIndex), CException(lError)
{
}
ULONG GetErrorIndex() const { return _ulErrorIndex; }
# if !defined(NATIVE_EH)
// inherited methods
EXPORTDEF virtual int WINAPI IsKindOf( const char * szClass ) const
{
if( strcmp( szClass, "CIxssoException" ) == 0 )
return TRUE;
else
return CException::IsKindOf( szClass );
}
# endif // !defined(NATIVE_EH)
private:
ULONG _ulErrorIndex;
};
//+---------------------------------------------------------------------------
//
// Class: CPostedOleDBException
//
// Purpose: Exception class containing all the error information acquired
// from the Ole DB and Content Index error lookup services. This
// information is passed to the SSO error handling service so that
// the SSO consumer can get everything in one place.
//
// Notes:
//
// History: 06 May 1997 KrishnaN Created
//
//----------------------------------------------------------------------------
class CPostedOleDBException : public CException
{
public:
CPostedOleDBException( SCODE sc, IErrorInfo *pErrorInfo )
: CException(sc)
{
xErrorInfo.Set(pErrorInfo);
pErrorInfo->AddRef();
}
CPostedOleDBException( CPostedOleDBException & src)
: CException(src.GetErrorCode())
{
xErrorInfo.Set(src.AcquireErrorInfo());
}
IErrorInfo * AcquireErrorInfo () { return xErrorInfo.Acquire(); }
# if !defined(NATIVE_EH)
// inherited methods
EXPORTDEF virtual int WINAPI IsKindOf( const char * szClass ) const
{
if( strcmp( szClass, "CPostedOleDBException" ) == 0 )
return TRUE;
else
return CException::IsKindOf( szClass );
}
# endif // !defined(NATIVE_EH)
private:
XInterface<IErrorInfo> xErrorInfo;
};