summaryrefslogtreecommitdiffstats
path: root/public/sdk/inc/mapicode.h
diff options
context:
space:
mode:
authorAdam <you@example.com>2020-05-17 05:51:50 +0200
committerAdam <you@example.com>2020-05-17 05:51:50 +0200
commite611b132f9b8abe35b362e5870b74bce94a1e58e (patch)
treea5781d2ec0e085eeca33cf350cf878f2efea6fe5 /public/sdk/inc/mapicode.h
downloadNT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.gz
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.bz2
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.lz
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.xz
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.zst
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.zip
Diffstat (limited to 'public/sdk/inc/mapicode.h')
-rw-r--r--public/sdk/inc/mapicode.h245
1 files changed, 245 insertions, 0 deletions
diff --git a/public/sdk/inc/mapicode.h b/public/sdk/inc/mapicode.h
new file mode 100644
index 000000000..73079b6f1
--- /dev/null
+++ b/public/sdk/inc/mapicode.h
@@ -0,0 +1,245 @@
+/*
+ * M A P I C O D E . H
+ *
+ * Status Codes returned by MAPI routines
+ *
+ * Copyright 1986-1996 Microsoft Corporation. All Rights Reserved.
+ */
+
+#ifndef MAPICODE_H
+#define MAPICODE_H
+
+#if defined (WIN32) && !defined (_WIN32)
+#define _WIN32
+#endif
+
+/* 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.
+ */
+#define MAKE_MAPI_SCODE(sev,fac,code) \
+ ((SCODE) (((unsigned long)(sev)<<31) | ((unsigned long)(fac)<<16) | ((unsigned long)(code))) )
+
+/* The following two macros are used to build OLE 2.0 style sCodes */
+
+#define MAKE_MAPI_E( err ) (MAKE_MAPI_SCODE( 1, FACILITY_ITF, err ))
+#define MAKE_MAPI_S( warn ) (MAKE_MAPI_SCODE( 0, FACILITY_ITF, warn ))
+
+#ifdef SUCCESS_SUCCESS
+#undef SUCCESS_SUCCESS
+#endif
+#define SUCCESS_SUCCESS 0L
+
+/* General errors (used by more than one MAPI object) */
+
+#define MAPI_E_CALL_FAILED E_FAIL
+#define MAPI_E_NOT_ENOUGH_MEMORY E_OUTOFMEMORY
+#define MAPI_E_INVALID_PARAMETER E_INVALIDARG
+#define MAPI_E_INTERFACE_NOT_SUPPORTED E_NOINTERFACE
+#define MAPI_E_NO_ACCESS E_ACCESSDENIED
+
+#define MAPI_E_NO_SUPPORT MAKE_MAPI_E( 0x102 )
+#define MAPI_E_BAD_CHARWIDTH MAKE_MAPI_E( 0x103 )
+#define MAPI_E_STRING_TOO_LONG MAKE_MAPI_E( 0x105 )
+#define MAPI_E_UNKNOWN_FLAGS MAKE_MAPI_E( 0x106 )
+#define MAPI_E_INVALID_ENTRYID MAKE_MAPI_E( 0x107 )
+#define MAPI_E_INVALID_OBJECT MAKE_MAPI_E( 0x108 )
+#define MAPI_E_OBJECT_CHANGED MAKE_MAPI_E( 0x109 )
+#define MAPI_E_OBJECT_DELETED MAKE_MAPI_E( 0x10A )
+#define MAPI_E_BUSY MAKE_MAPI_E( 0x10B )
+#define MAPI_E_NOT_ENOUGH_DISK MAKE_MAPI_E( 0x10D )
+#define MAPI_E_NOT_ENOUGH_RESOURCES MAKE_MAPI_E( 0x10E )
+#define MAPI_E_NOT_FOUND MAKE_MAPI_E( 0x10F )
+#define MAPI_E_VERSION MAKE_MAPI_E( 0x110 )
+#define MAPI_E_LOGON_FAILED MAKE_MAPI_E( 0x111 )
+#define MAPI_E_SESSION_LIMIT MAKE_MAPI_E( 0x112 )
+#define MAPI_E_USER_CANCEL MAKE_MAPI_E( 0x113 )
+#define MAPI_E_UNABLE_TO_ABORT MAKE_MAPI_E( 0x114 )
+#define MAPI_E_NETWORK_ERROR MAKE_MAPI_E( 0x115 )
+#define MAPI_E_DISK_ERROR MAKE_MAPI_E( 0x116 )
+#define MAPI_E_TOO_COMPLEX MAKE_MAPI_E( 0x117 )
+#define MAPI_E_BAD_COLUMN MAKE_MAPI_E( 0x118 )
+#define MAPI_E_EXTENDED_ERROR MAKE_MAPI_E( 0x119 )
+#define MAPI_E_COMPUTED MAKE_MAPI_E( 0x11A )
+#define MAPI_E_CORRUPT_DATA MAKE_MAPI_E( 0x11B )
+#define MAPI_E_UNCONFIGURED MAKE_MAPI_E( 0x11C )
+#define MAPI_E_FAILONEPROVIDER MAKE_MAPI_E( 0x11D )
+#define MAPI_E_UNKNOWN_CPID MAKE_MAPI_E( 0x11E )
+#define MAPI_E_UNKNOWN_LCID MAKE_MAPI_E( 0x11F )
+
+/* Flavors of E_ACCESSDENIED, used at logon */
+
+#define MAPI_E_PASSWORD_CHANGE_REQUIRED MAKE_MAPI_E( 0x120 )
+#define MAPI_E_PASSWORD_EXPIRED MAKE_MAPI_E( 0x121 )
+#define MAPI_E_INVALID_WORKSTATION_ACCOUNT MAKE_MAPI_E( 0x122 )
+#define MAPI_E_INVALID_ACCESS_TIME MAKE_MAPI_E( 0x123 )
+#define MAPI_E_ACCOUNT_DISABLED MAKE_MAPI_E( 0x124 )
+
+/* MAPI base function and status object specific errors and warnings */
+
+#define MAPI_E_END_OF_SESSION MAKE_MAPI_E( 0x200 )
+#define MAPI_E_UNKNOWN_ENTRYID MAKE_MAPI_E( 0x201 )
+#define MAPI_E_MISSING_REQUIRED_COLUMN MAKE_MAPI_E( 0x202 )
+#define MAPI_W_NO_SERVICE MAKE_MAPI_S( 0x203 )
+
+/* Property specific errors and warnings */
+
+#define MAPI_E_BAD_VALUE MAKE_MAPI_E( 0x301 )
+#define MAPI_E_INVALID_TYPE MAKE_MAPI_E( 0x302 )
+#define MAPI_E_TYPE_NO_SUPPORT MAKE_MAPI_E( 0x303 )
+#define MAPI_E_UNEXPECTED_TYPE MAKE_MAPI_E( 0x304 )
+#define MAPI_E_TOO_BIG MAKE_MAPI_E( 0x305 )
+#define MAPI_E_DECLINE_COPY MAKE_MAPI_E( 0x306 )
+#define MAPI_E_UNEXPECTED_ID MAKE_MAPI_E( 0x307 )
+
+#define MAPI_W_ERRORS_RETURNED MAKE_MAPI_S( 0x380 )
+
+/* Table specific errors and warnings */
+
+#define MAPI_E_UNABLE_TO_COMPLETE MAKE_MAPI_E( 0x400 )
+#define MAPI_E_TIMEOUT MAKE_MAPI_E( 0x401 )
+#define MAPI_E_TABLE_EMPTY MAKE_MAPI_E( 0x402 )
+#define MAPI_E_TABLE_TOO_BIG MAKE_MAPI_E( 0x403 )
+
+#define MAPI_E_INVALID_BOOKMARK MAKE_MAPI_E( 0x405 )
+
+#define MAPI_W_POSITION_CHANGED MAKE_MAPI_S( 0x481 )
+#define MAPI_W_APPROX_COUNT MAKE_MAPI_S( 0x482 )
+
+/* Transport specific errors and warnings */
+
+#define MAPI_E_WAIT MAKE_MAPI_E( 0x500 )
+#define MAPI_E_CANCEL MAKE_MAPI_E( 0x501 )
+#define MAPI_E_NOT_ME MAKE_MAPI_E( 0x502 )
+
+#define MAPI_W_CANCEL_MESSAGE MAKE_MAPI_S( 0x580 )
+
+/* Message Store, Folder, and Message specific errors and warnings */
+
+#define MAPI_E_CORRUPT_STORE MAKE_MAPI_E( 0x600 )
+#define MAPI_E_NOT_IN_QUEUE MAKE_MAPI_E( 0x601 )
+#define MAPI_E_NO_SUPPRESS MAKE_MAPI_E( 0x602 )
+#define MAPI_E_COLLISION MAKE_MAPI_E( 0x604 )
+#define MAPI_E_NOT_INITIALIZED MAKE_MAPI_E( 0x605 )
+#define MAPI_E_NON_STANDARD MAKE_MAPI_E( 0x606 )
+#define MAPI_E_NO_RECIPIENTS MAKE_MAPI_E( 0x607 )
+#define MAPI_E_SUBMITTED MAKE_MAPI_E( 0x608 )
+#define MAPI_E_HAS_FOLDERS MAKE_MAPI_E( 0x609 )
+#define MAPI_E_HAS_MESSAGES MAKE_MAPI_E( 0x60A )
+#define MAPI_E_FOLDER_CYCLE MAKE_MAPI_E( 0x60B )
+
+#define MAPI_W_PARTIAL_COMPLETION MAKE_MAPI_S( 0x680 )
+
+/* Address Book specific errors and warnings */
+
+#define MAPI_E_AMBIGUOUS_RECIP MAKE_MAPI_E( 0x700 )
+
+/* The range 0x0800 to 0x08FF is reserved */
+
+/* Obsolete typing shortcut that will go away eventually. */
+#ifndef MakeResult
+#define MakeResult(_s) ResultFromScode(_s)
+#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
+#define HR_SUCCEEDED(_hr) SUCCEEDED((SCODE)(_hr))
+#define HR_FAILED(_hr) FAILED((SCODE)(_hr))
+#endif
+
+#endif /* MAPICODE_H */
+
+