windows-nt/Source/XPSP1/NT/enduser/stuff/itircl/inc/iterror.h
2020-09-26 16:20:57 +08:00

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__