#define DISP_ERROR(X) MAKE_SCODE(SEVERITY_ERROR, FACILITY_DISPATCH, X)

#define DISP_E_UNKNOWNINTERFACE		DISP_ERROR(1)
#define DISP_E_MEMBERNOTFOUND		DISP_ERROR(3)
#define DISP_E_PARAMNOTFOUND		DISP_ERROR(4)
#define DISP_E_TYPEMISMATCH			DISP_ERROR(5)
#define DISP_E_UNKNOWNNAME			DISP_ERROR(6)
#define DISP_E_NONAMEDARGS			DISP_ERROR(7)
#define DISP_E_BADVARTYPE			DISP_ERROR(8)
#define DISP_E_EXCEPTION			DISP_ERROR(9)
#define DISP_E_OVERFLOW				DISP_ERROR(10)
#define DISP_E_BADINDEX				DISP_ERROR(11)
#define DISP_E_UNKNOWNLCID			DISP_ERROR(12)
#define DISP_E_ARRAYISLOCKED		DISP_ERROR(13)
#define DISP_E_BADPARAMCOUNT		DISP_ERROR(14)
#define DISP_E_PARAMNOTOPTIONAL		DISP_ERROR(15)
#define DISP_E_BADCALLEE			DISP_ERROR(16)
#define DISP_E_NOTACOLLECTION		DISP_ERROR(17)

#define TYPE_ERROR(X) MAKE_SCODE(SEVERITY_ERROR, FACILITY_DISPATCH, X)

#define TYPE_E_BUFFERTOOSMALL			TYPE_ERROR(32790)
#define TYPE_E_INVDATAREAD				TYPE_ERROR(32792)
#define TYPE_E_UNSUPFORMAT				TYPE_ERROR(32793)
#define TYPE_E_REGISTRYACCESS			TYPE_ERROR(32796)
#define TYPE_E_LIBNOTREGISTERED 		TYPE_ERROR(32797)
#define TYPE_E_UNDEFINEDTYPE			TYPE_ERROR(32807)
#define TYPE_E_QUALIFIEDNAMEDISALLOWED	TYPE_ERROR(32808)
#define TYPE_E_INVALIDSTATE				TYPE_ERROR(32809)
#define TYPE_E_WRONGTYPEKIND			TYPE_ERROR(32810)
#define TYPE_E_ELEMENTNOTFOUND			TYPE_ERROR(32811)
#define TYPE_E_AMBIGUOUSNAME			TYPE_ERROR(32812)
#define TYPE_E_NAMECONFLICT				TYPE_ERROR(32813)
#define TYPE_E_UNKNOWNLCID				TYPE_ERROR(32814)
#define TYPE_E_DLLFUNCTIONNOTFOUND		TYPE_ERROR(32815)
#define TYPE_E_BADMODULEKIND			TYPE_ERROR(35005)
#define TYPE_E_SIZETOOBIG				TYPE_ERROR(35013)
#define TYPE_E_DUPLICATEID				TYPE_ERROR(35014)
#define TYPE_E_TYPEMISMATCH				TYPE_ERROR(36000)
#define TYPE_E_OUTOFBOUNDS				TYPE_ERROR(36001)
#define TYPE_E_IOERROR					TYPE_ERROR(36002)
#define TYPE_E_CANTCREATETMPFILE		TYPE_ERROR(36003)
#define TYPE_E_CANTLOADLIBRARY			TYPE_ERROR(40010)
#define TYPE_E_INCONSISTENTPROPFUNCS	TYPE_ERROR(40067)
#define TYPE_E_CIRCULARTYPE				TYPE_ERROR(40068)

