|
|
/*
* _ S C O D E . H * * Status Codes returned by MAPI routines * * Copyright 1993-1995 Microsoft Corporation. All Rights Reserved. */
#ifndef _SCODE_H
#define _SCODE_H
/* Define S_OK and ITF_* */
#ifdef _WIN32
#include <winerror.h>
#endif
/*
* MAPI Status codes follow the style of OLE 2.0 sCodes as defined in the * OLE 2.0 Programmer's Reference and header file scode.h (Windows 3.x) * or winerror.h (Windows NT and Windows 95). * */
/* On Windows 3.x, status codes have 32-bit values as follows:
* * 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 * 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 * +-+---------------------+-------+-------------------------------+ * |S| Context | Facil | Code | * +-+---------------------+-------+-------------------------------+ * * where * * S - is the severity code * * 0 - SEVERITY_SUCCESS * 1 - SEVERITY_ERROR * * Context - context info * * Facility - is the facility code * * 0x0 - FACILITY_NULL generally useful errors ([SE]_*) * 0x1 - FACILITY_RPC remote procedure call errors (RPC_E_*) * 0x2 - FACILITY_DISPATCH late binding dispatch errors * 0x3 - FACILITY_STORAGE storage errors (STG_E_*) * 0x4 - FACILITY_ITF interface-specific errors * * Code - is the facility's status code * * */
/*
* On Windows NT 3.5 and Windows 95, scodes are 32-bit values * laid out as follows: * * 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 * 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 * +-+-+-+-+-+---------------------+-------------------------------+ * |S|R|C|N|r| Facility | Code | * +-+-+-+-+-+---------------------+-------------------------------+ * * where * * S - Severity - indicates success/fail * * 0 - Success * 1 - Fail (COERROR) * * R - reserved portion of the facility code, corresponds to NT's * second severity bit. * * C - reserved portion of the facility code, corresponds to NT's * C field. * * N - reserved portion of the facility code. Used to indicate a * mapped NT status value. * * r - reserved portion of the facility code. Reserved for internal * use. Used to indicate HRESULT values that are not status * values, but are instead message ids for display strings. * * Facility - is the facility code * FACILITY_NULL 0x0 * FACILITY_RPC 0x1 * FACILITY_DISPATCH 0x2 * FACILITY_STORAGE 0x3 * FACILITY_ITF 0x4 * FACILITY_WIN32 0x7 * FACILITY_WINDOWS 0x8 * * Code - is the facility's status code * */
/*
* We can't use OLE 2.0 macros to build sCodes because the definition has * changed and we wish to conform to the new definition. */
/* The following two macros are used to build OLE 2.0 style sCodes */
#ifdef SUCCESS_SUCCESS
#undef SUCCESS_SUCCESS
#endif
#define SUCCESS_SUCCESS 0L
/* General errors (used by more than one MAPI object) */
Sc(MAPI_E_NO_SUPPORT), Sc(MAPI_E_BAD_CHARWIDTH), Sc(MAPI_E_STRING_TOO_LONG), Sc(MAPI_E_UNKNOWN_FLAGS), Sc(MAPI_E_INVALID_ENTRYID), Sc(MAPI_E_INVALID_OBJECT), Sc(MAPI_E_OBJECT_CHANGED), Sc(MAPI_E_OBJECT_DELETED), Sc(MAPI_E_BUSY), Sc(MAPI_E_NOT_ENOUGH_DISK), Sc(MAPI_E_NOT_ENOUGH_RESOURCES), Sc(MAPI_E_NOT_FOUND), Sc(MAPI_E_VERSION), Sc(MAPI_E_LOGON_FAILED), Sc(MAPI_E_SESSION_LIMIT), Sc(MAPI_E_USER_CANCEL), Sc(MAPI_E_UNABLE_TO_ABORT), Sc(MAPI_E_NETWORK_ERROR), Sc(MAPI_E_DISK_ERROR), Sc(MAPI_E_TOO_COMPLEX), Sc(MAPI_E_BAD_COLUMN), Sc(MAPI_E_EXTENDED_ERROR), Sc(MAPI_E_COMPUTED), Sc(MAPI_E_CORRUPT_DATA), Sc(MAPI_E_UNCONFIGURED), Sc(MAPI_E_FAILONEPROVIDER), Sc(MAPI_E_UNKNOWN_CPID), Sc(MAPI_E_UNKNOWN_LCID),
/* MAPI base function and status object specific errors and warnings */
Sc(MAPI_E_END_OF_SESSION), Sc(MAPI_E_UNKNOWN_ENTRYID), Sc(MAPI_E_MISSING_REQUIRED_COLUMN), Sc(MAPI_W_NO_SERVICE),
/* Property specific errors and warnings */
Sc(MAPI_E_BAD_VALUE), Sc(MAPI_E_INVALID_TYPE), Sc(MAPI_E_TYPE_NO_SUPPORT), Sc(MAPI_E_UNEXPECTED_TYPE), Sc(MAPI_E_TOO_BIG), Sc(MAPI_E_DECLINE_COPY), Sc(MAPI_E_UNEXPECTED_ID),
Sc(MAPI_W_ERRORS_RETURNED),
/* Table specific errors and warnings */
Sc(MAPI_E_UNABLE_TO_COMPLETE), Sc(MAPI_E_TIMEOUT), Sc(MAPI_E_TABLE_EMPTY), Sc(MAPI_E_TABLE_TOO_BIG),
Sc(MAPI_E_INVALID_BOOKMARK),
Sc(MAPI_W_POSITION_CHANGED), Sc(MAPI_W_APPROX_COUNT),
/* Transport specific errors and warnings */
Sc(MAPI_E_WAIT), Sc(MAPI_E_CANCEL), Sc(MAPI_E_NOT_ME),
Sc(MAPI_W_CANCEL_MESSAGE),
/* Message Store, Folder, and Message specific errors and warnings */
Sc(MAPI_E_CORRUPT_STORE), Sc(MAPI_E_NOT_IN_QUEUE), Sc(MAPI_E_NO_SUPPRESS), Sc(MAPI_E_COLLISION), Sc(MAPI_E_NOT_INITIALIZED), Sc(MAPI_E_NON_STANDARD), Sc(MAPI_E_NO_RECIPIENTS), Sc(MAPI_E_SUBMITTED), Sc(MAPI_E_HAS_FOLDERS), Sc(MAPI_E_HAS_MESSAGES), Sc(MAPI_E_FOLDER_CYCLE),
Sc(MAPI_W_PARTIAL_COMPLETION),
/* Address Book specific errors and warnings */
Sc(MAPI_E_AMBIGUOUS_RECIP),
/* The range 0x0800 to 0x08FF is reserved */
/* Obsolete typing shortcut that will go away eventually. */ #ifndef MakeResult
#endif
/* We expect these to eventually be defined by OLE, but for now,
* here they are. When OLE defines them they can be much more * efficient than these, but these are "proper" and don't make * use of any hidden tricks. */ #ifndef HR_SUCCEEDED
#endif
#endif /* _SCODE_H */
|