171 lines
6.2 KiB
C
171 lines
6.2 KiB
C
|
#ifndef __ITERROR_H__
|
||
|
#define __ITERROR_H__
|
||
|
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
extern "C" {
|
||
|
#endif
|
||
|
|
||
|
|
||
|
// define the old error types in terms of HRESULTs
|
||
|
typedef HRESULT* PHRESULT;
|
||
|
|
||
|
#define ERR HRESULT
|
||
|
#define ERRB HRESULT
|
||
|
#define LPERRB HRESULT*
|
||
|
#define RC HRESULT
|
||
|
|
||
|
|
||
|
#define SetErrCode(a,b) SetErr(a, b)
|
||
|
#define SetErrReturn(a) SetErr(0, a)
|
||
|
|
||
|
|
||
|
HRESULT PASCAL SetErr (HRESULT* phr, HRESULT ErrCode);
|
||
|
|
||
|
|
||
|
/*************************************************************************
|
||
|
*
|
||
|
* CALLBACK FUNCTIONS PROTOTYPES
|
||
|
*
|
||
|
* User callback functions are needed in case:
|
||
|
* - The application needs to support interrupt
|
||
|
* - The application needs to display error messages its way
|
||
|
* - The application needs to know the status of the process
|
||
|
*************************************************************************/
|
||
|
typedef ERR (FAR PASCAL *ERR_FUNC) (DWORD dwFlag, LPVOID pUserData, LPVOID pMessage);
|
||
|
|
||
|
/*************************************************************************
|
||
|
* Call back structure
|
||
|
* Contains information about all callback functions
|
||
|
*************************************************************************/
|
||
|
|
||
|
#define ERRFLAG_INTERRUPT 0x01 // The processes should be cancelled
|
||
|
#define ERRFLAG_STATUS 0x02 // High-level status messages
|
||
|
#define ERRFLAG_STATUS_VERBOSE 0x04 // Low-level status messages
|
||
|
#define ERRFLAG_ERROR 0x08 // Warning & Error messages
|
||
|
#define ERRFLAG_STRING 0x10 // Debug string messages
|
||
|
|
||
|
typedef struct fCallBack_msg
|
||
|
{
|
||
|
ERR_FUNC MessageFunc;
|
||
|
LPVOID pUserData;
|
||
|
DWORD dwFlags;
|
||
|
} FCALLBACK_MSG, FAR * PFCALLBACK_MSG;
|
||
|
|
||
|
|
||
|
// ***********************************************************************
|
||
|
// This structure should be filled out and passed back in the case of
|
||
|
// an error.
|
||
|
// ***********************************************************************
|
||
|
typedef WORD HCE; // User errors
|
||
|
typedef WORD EP; // Error Phase
|
||
|
typedef struct
|
||
|
{
|
||
|
LPCSTR pchFile;
|
||
|
LONG iLine;
|
||
|
DWORD iTopic;
|
||
|
DWORD fCustom; // If true then var1 is LPCSTR to custom error message
|
||
|
DWORD var1, var2, var3; // Error parameters
|
||
|
|
||
|
EP ep; // Error Phase
|
||
|
HCE errCode;
|
||
|
} ERRC, FAR *PERRC;
|
||
|
|
||
|
#define CALLBACKKEY 0x524A4A44
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
DWORD_PTR dwReserved;
|
||
|
DWORD dwKey;
|
||
|
FCALLBACK_MSG Callback;
|
||
|
} CUSTOMSTRUCT, FAR *PCUSTOMSTRUCT;
|
||
|
|
||
|
// Error Phase values
|
||
|
#define epNoFile 0
|
||
|
#define epLine 1
|
||
|
#define epTopic 2
|
||
|
#define epOffset 3
|
||
|
#define epMVBtopic 4
|
||
|
#define epAliasLine 5
|
||
|
#define epByteOffset 6
|
||
|
|
||
|
|
||
|
//
|
||
|
// The InfoTech error codes
|
||
|
//
|
||
|
#define E_NOTEXIST _HRESULT_TYPEDEF_(0x80001000L)
|
||
|
#define E_DUPLICATE _HRESULT_TYPEDEF_(0x80001001L)
|
||
|
#define E_BADVERSION _HRESULT_TYPEDEF_(0x80001002L)
|
||
|
#define E_BADFILE _HRESULT_TYPEDEF_(0x80001003L)
|
||
|
#define E_BADFORMAT _HRESULT_TYPEDEF_(0x80001004L)
|
||
|
#define E_NOPERMISSION _HRESULT_TYPEDEF_(0x80001005L)
|
||
|
#define E_ASSERT _HRESULT_TYPEDEF_(0x80001006L)
|
||
|
#define E_INTERRUPT _HRESULT_TYPEDEF_(0x80001007L)
|
||
|
#define E_NOTSUPPORTED _HRESULT_TYPEDEF_(0x80001008L)
|
||
|
#define E_OUTOFRANGE _HRESULT_TYPEDEF_(0x80001009L)
|
||
|
#define E_GROUPIDTOOBIG _HRESULT_TYPEDEF_(0x8000100AL)
|
||
|
#define E_TOOMANYTITLES _HRESULT_TYPEDEF_(0x8000100BL)
|
||
|
#define E_NOMERGEDDATA _HRESULT_TYPEDEF_(0x8000100CL)
|
||
|
#define E_NOTFOUND _HRESULT_TYPEDEF_(0x8000100DL)
|
||
|
#define E_CANTFINDDLL _HRESULT_TYPEDEF_(0x8000100EL)
|
||
|
#define E_NOHANDLE _HRESULT_TYPEDEF_(0x8000100FL)
|
||
|
#define E_GETLASTERROR _HRESULT_TYPEDEF_(0x80001010L)
|
||
|
#define E_BADPARAM _HRESULT_TYPEDEF_(0x80001011L)
|
||
|
#define E_INVALIDSTATE _HRESULT_TYPEDEF_(0x80001012L)
|
||
|
#define E_NOTOPEN _HRESULT_TYPEDEF_(0x80001013L)
|
||
|
#define E_ALREADYOPEN _HRESULT_TYPEDEF_(0x80001013L)
|
||
|
#define E_UNKNOWN_TRANSPORT _HRESULT_TYPEDEF_(0x80001016L)
|
||
|
#define E_UNSUPPORTED_TRANSPORT _HRESULT_TYPEDEF_(0x80001017L)
|
||
|
#define E_BADFILTERSIZE _HRESULT_TYPEDEF_(0x80001018L)
|
||
|
#define E_TOOMANYOBJECTS _HRESULT_TYPEDEF_(0x80001019L)
|
||
|
#define E_NAMETOOLONG _HRESULT_TYPEDEF_(0x80001020L)
|
||
|
|
||
|
#define E_FILECREATE _HRESULT_TYPEDEF_(0x80001030L)
|
||
|
#define E_FILECLOSE _HRESULT_TYPEDEF_(0x80001031L)
|
||
|
#define E_FILEREAD _HRESULT_TYPEDEF_(0x80001032L)
|
||
|
#define E_FILESEEK _HRESULT_TYPEDEF_(0x80001033L)
|
||
|
#define E_FILEWRITE _HRESULT_TYPEDEF_(0x80001034L)
|
||
|
#define E_FILEDELETE _HRESULT_TYPEDEF_(0x80001035L)
|
||
|
#define E_FILEINVALID _HRESULT_TYPEDEF_(0x80001036L)
|
||
|
#define E_FILENOTFOUND _HRESULT_TYPEDEF_(0x80001037L)
|
||
|
#define E_DISKFULL _HRESULT_TYPEDEF_(0x80001038L)
|
||
|
|
||
|
#define E_TOOMANYTOPICS _HRESULT_TYPEDEF_(0x80001050L)
|
||
|
#define E_TOOMANYDUPS _HRESULT_TYPEDEF_(0x80001051L)
|
||
|
#define E_TREETOOBIG _HRESULT_TYPEDEF_(0x80001052L)
|
||
|
#define E_BADBREAKER _HRESULT_TYPEDEF_(0x80001053L)
|
||
|
#define E_BADVALUE _HRESULT_TYPEDEF_(0x80001054L)
|
||
|
#define E_ALL_WILD _HRESULT_TYPEDEF_(0x80001055L)
|
||
|
#define E_TOODEEP _HRESULT_TYPEDEF_(0x80001056L)
|
||
|
#define E_EXPECTEDTERM _HRESULT_TYPEDEF_(0x80001057L)
|
||
|
#define E_MISSLPAREN _HRESULT_TYPEDEF_(0x80001058L)
|
||
|
#define E_MISSRPAREN _HRESULT_TYPEDEF_(0x80001059L)
|
||
|
#define E_MISSQUOTE _HRESULT_TYPEDEF_(0x8000105AL)
|
||
|
#define E_NULLQUERY _HRESULT_TYPEDEF_(0x8000105BL)
|
||
|
#define E_STOPWORD _HRESULT_TYPEDEF_(0x8000105CL)
|
||
|
#define E_BADRANGEOP _HRESULT_TYPEDEF_(0x8000105DL)
|
||
|
#define E_UNMATCHEDTYPE _HRESULT_TYPEDEF_(0x8000105EL)
|
||
|
#define E_WORDTOOLONG _HRESULT_TYPEDEF_(0x8000105FL)
|
||
|
#define E_BADINDEXFLAGS _HRESULT_TYPEDEF_(0x80001060L)
|
||
|
#define E_WILD_IN_DTYPE _HRESULT_TYPEDEF_(0x80001061L)
|
||
|
#define E_NOSTEMMER _HRESULT_TYPEDEF_(0x80001062L)
|
||
|
|
||
|
// Property list and result set errors
|
||
|
#define E_MISSINGPROP _HRESULT_TYPEDEF_(0x80001080L)
|
||
|
#define E_PROPLISTNOTEMPTY _HRESULT_TYPEDEF_(0x80001081L)
|
||
|
#define E_PROPLISTEMPTY _HRESULT_TYPEDEF_(0x80001082L)
|
||
|
#define E_ALREADYINIT _HRESULT_TYPEDEF_(0x80001083L)
|
||
|
#define E_NOTINIT _HRESULT_TYPEDEF_(0x80001084L)
|
||
|
#define E_RESULTSETEMPTY _HRESULT_TYPEDEF_(0x80001085L)
|
||
|
#define E_TOOMANYCOLUMNS _HRESULT_TYPEDEF_(0x80001086L)
|
||
|
#define E_NOKEYPROP _HRESULT_TYPEDEF_(0x80001087L)
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#endif // __ITERROR_H__
|
||
|
|
||
|
|
||
|
|