2025-04-27 07:49:33 -04:00

65 lines
1.5 KiB
C++

#ifndef _CUSTOMERROR_HXX_
#define _CUSTOMERROR_HXX_
#define SUBERROR_WILDCARD ((USHORT)(-1))
class CUSTOM_ERROR_ENTRY
{
public:
CUSTOM_ERROR_ENTRY()
{
InitializeListHead( &_listEntry );
}
LIST_ENTRY _listEntry;
USHORT _StatusCode;
USHORT _SubError;
STRU _strError;
BOOL _fIsFile;
};
class CUSTOM_ERROR_TABLE
{
public:
CUSTOM_ERROR_TABLE()
{
InitializeListHead( &_ErrorListHead );
}
~CUSTOM_ERROR_TABLE()
{
CUSTOM_ERROR_ENTRY * pEntry;
while ( !IsListEmpty( &_ErrorListHead ) )
{
pEntry = CONTAINING_RECORD( _ErrorListHead.Flink,
CUSTOM_ERROR_ENTRY,
_listEntry );
DBG_ASSERT( pEntry != NULL );
RemoveEntryList( &( pEntry->_listEntry ) );
delete pEntry;
}
}
HRESULT
FindCustomError(
USHORT StatusCode,
USHORT SubError,
BOOL * pfIsFile,
STRU * pstrError
);
HRESULT
BuildTable(
WCHAR * pszErrorList
);
private:
LIST_ENTRY _ErrorListHead;
};
#endif