Type (4 bytes): A 32-bit integer representing the type of the object. It MUST be one of the values from the following table. For more information, see [MS-OXABK]. Value (hex bytes) Address book EntryID type 0x00000000 %x00.00.00.00 user 0x00000001 %x01.00.00.00 Distribution list 0x00000002 %x02.00.00.00 Bulletin board or public folder 0x00000003 %x03.00.00.00 Automated mailbox 0x00000004 %x04.00.00.00 Organizational mailbox 0x00000005 %x05.00.00.00 Private distribution list 0x00000006 %x06.00.00.00 Remote mail user 0x00000100 %x00.01.00.00 Container 0x00000101 %x01.01.00.00 Template 0x00000102 %x02.01.00.00 One-off user 0x00000200 %x00.02.00.00 Search X500DN (variable): The X500 DN of the address book object. X500DN is a null-terminated string of 8-bit characters. Contact Address EntryID Contact Address EntryIDs represent recipients whose information is stored in a Contact object, as specified in [MS-OXOCNTC].
FlatEntries (variable size): A series of FlatEntry structures with the actual EntryID data. There MUST be exactly Count structures, and their total size MUST be exactly Size. Codes When encoded in ROP buffers, all error codes are transmitted as 32-bit integers in format. Error codes are presented in the following table. Name Description (alternate Numeric value (hex) Success The operation succeeded. (S_OK, SUCCESS_SUCCESS) 00000000, %x00.00.00.00 GeneralFailure The operation failed for an unspecified reason (E_FAIL, MAPI_E_CALL_FAILED, ecError, SYNC_E_ERROR) 80004005, %x05.40.00.80 OutOfMemory Not enough memory was available to complete the operation (E_NOMEMORY, MAPI_E_NOT_ENOUGH_MEMORY, ecMAPIOOM, ecPropSize) 8007000E, %x0E.00.07.80 InvalidParameter An invalid parameter was passed to a remote procedure call (E_INVALIDARG, MAPI_E_INVALID_PARAMETER, ecInvalidParam, ecInvalidSession, ecBadBuffer, SYNC_E_INVALID_PARAMETER) 80070057, %x57.00.07.80 NoInterface The requested interface is not supported (E_NOINTERFACE, ecinterfacenotsupported) 80004002 %x02.40.00.80 AccessDenied The caller does not have sufficient access rights to perform the operation (E_ACCESSDENIED, MAPI_E_NO_ACCESS, ecaccessdenied, ecpropsecurityviolation) 80070005, %x05.00.07.80
NotSupported The server does not support this method call. (MAPI_E_NO_SUPPORT, ecNotSupported, ecNotImplemented) 80040102, %x02.01.04.80 InvalidCharacterWidth Unicode characters were requested when only 8-bit characters are supported, or vice versa. (MAPI_E_BAD_CHARWIDTH, ecBadCharwidth) 80040103, %x03.01.04.80 StringTooLong In the context of this method call, a string exceeds the maximum permitted length. (MAPI_E_STRING_TOO_LONG, ecStringTooLarge) 80040105, %x05.01.04.80 InvalidFlag An unrecognized flag bit was passed to a method call. (MAPI_E_UNKNOWN_FLAGS, ecUnknownFlags, SYNC_E_UNKNOWN_FLAGS) 80040106, %x06.01.04.80 InvalidEntryID An incorrectly formatted EntryID was passed to a method call. (MAPI_E_INVALID_ENTRYID, ecInvalidEntryId) 80040107, %x07.01.04.80 InvalidObject A method call was made a reference to an object that has been destroyed or is not in a viable state. (MAPI_E_INVALID_OBJECT, ecInvalidObject) 80040108, %x08.01.04.80 ObjectChanged An attempt to commit changes failed because the object was changed separately. (MAPI_E_OBJECT_CHANGED, ecObjectModified) 80040109, %x09.01.04.80
UserCanceled An operation failed because a user cancelled it. (MAPI_E_USER_CANCEL, ecUserAbort) 80040113, %x13.01.04.80 AbortFailed A RopAbort or RopAbortSubmit request was unsuccessful. (MAPI_E_UNABLE_TO_ABORT, ecUnableToAbort) 80040114, %x14.01.04.80 NetworkError An operation was unsuccessful because of a problem with network operations or services. (MAPI_E_NETWORK_ERROR, ecNetwork) 80040115, %x15.01.04.80 DiskError There was a problem writing to or reading from disk. (MAPI_E_DISK_ERROR, ecWriteFault, ecReadFault) 80040116, %x16.01.04.80 TooComplex The operation requested is too complex for the server to handle; applied to restrictions. (MAPI_E_TOO_COMPLEX, ecTooComplex) 80040117, %x17.01.04.80 InvalidColumn The column requested is not allowed in this type of table. (MAPI_E_BAD_COLUMN) 80040118, %x18.01.04.80 ComputedValue A property cannot be updated because it is read-only, computed by the server. (MAPI_E_COMPUTED, ecComputed) 8004011A, %x1A.01.04.80 CorruptData is an internal inconsistency in a database, or in a complex property value. (MAPI_E_CORRUPT_DATA, ecCorruptData) 8004011B, %x1B.01.04.80
InvalidCodepage The server is not configured to support the code page requested by the client. (MAPI_E_UNKNOWN_CPID) 8004011E, %x1E.01.04.80 InvalidLocale The server is not configured to support the locale requested by the client. (MAPI_E_UNKNOWN_LCID) 8004011F, %x1F.01.04.80 TimeSkew The operation failed due to skew between servers. (MAPI_E_INVALID_ACCESS_TIME, ecTimeSkew) 80040123, %x23.01.04.80 EndOfSession Indicates that the server session has been destroyed, possibly by a server restart, and the client SHOULD reconnect. (MAPI_E_END_OF_SESSION) 80040200, %x00.02.04.80 UnknownEntryId Indicates that the EntryID passed to OpenEntry was created by a different MAPI provider. (MAPI_E_UNKNOWN_ENTRYID) 80040201, %x01.02.04.80 NotCompleted A complex operation such as building a table row set could not be completed. (MAPI_E_UNABLE_TO_COMPLETE, ecUnableToComplete) 80040400, %x00.04.04.80 Timeout An asynchronous operation did not succeed within the specified timeout. (MAPI_E_TIMEOUT, ecTimeout) 80040401, %x01.04.04.80 EmptyTable A table essential to the operation is empty. (MAPI_E_TABLE_EMPTY, ecTableEmpty) 80040402, %x02.04.04.80 TableTooBig The table is too big for the requested operation to complete. (MAPI_E_TABLE_TOO_BIG, ecTableTooBig) 80040403, %x03.04.04.80
InvalidBookmark The bookmark passed to a table operation was not created on the same table. (MAPI_E_INVALID_BOOKMARK, ecInvalidBookmark) 80040405, %x05.04.04.80 ErrorWait A wait timeout has expired. (MAPI_E_WAIT, ecWait) 80040500, %x00.05.04.80 ErrorCancel The operation had to be canceled, (MAPI_E_CANCEL, ecCancel) 80040501, %x01.05.04.80 NoSuppress The server does not support the suppression of read receipts. (MAPI_E_NO_SUPPRESS) 80040602, %x02.06.04.80 CollidingNames A folder or item cannot be created because one with the same name or other criteria already exists. (MAPI_E_COLLISION, ecDuplicateName) 80040604, %x04.06.04.80 NotInitialized The subsystem is not (MAPI_E_NOT_INITIALIZED, ecNotInitialized) 80040605, %x05.06.04.80 NoRecipients A message cannot be sent because it has no recipients. (MAPI_E_NO_RECIPIENTS) 80040607, %x07.06.04.80 AlreadySent A message cannot be opened for modification because it has already been sent. (MAPI_E_SUBMITTED, ecSubmitted) 80040608, %x08.06.04.80 HasFolders A folder cannot be deleted because it still contains subfolders. (MAPI_E_HAS_FOLDERS, ecFolderHasChildren) 80040609, %x09.06.04.80
DatabaseRolledBack The database has been restored and needs fixup, but cannot be fixed up. (ecDatabaseRolledBack) 0x000003F3 DatabaseCopiedError The database file has been copied from another server. (ecDatabaseCopiedError) 0x000003F4 AuditNotAllowed Auditing of security operations is not permitted. (ecAuditNotAllowed) 0x000003F5 ZombieUser User has no security identifier. (ecZombieUser) 0x000003F6 UnconvertableACL An access control list cannot be converted to NTFS format. (ecUnconvertableACL) 0x000003F7 NoFreeJetSessions No Jet session is available. (ecNoFreeJses) 0x0000044C DifferentJetSession Warning, a Jet session other than the one requested was returned. (ecDifferentJses) 0x0000044D FileRemove An error occurred when attempting to remove a database file. (ecFileRemove) 0x0000044F ParameterOverflow Parameter value overflow. (ecParameterOverflow) 0x00000450 BadVersion Bad message store database version number. (ecBadVersion) 0x00000451 TooManyColumns Too many columns requested in SetColumns. (ecTooManyCols) 0x00000452
HaveMore A ROP has more data to return. (ecHaveMore) 0x00000453 DatabaseError General database problem (ecDatabaseError) 0x00000454 IndexNameTooBig An index name is larger than what Jet allows (ecIndexNameTooBig) 0x00000455 UnsupportedProperty The property data type is not supported. (ecUnsupportedProp) 0x00000456 MessageNotSaved During AbortSubmit, a message was not saved. (ecMsgNotSaved) 0x00000457 UnpublishedNotification A notification could not be published at this time. (ecUnpubNotif) 0x00000459 DifferentRoot Moving or copying folders to a different hierarchy is not supported. (ecDifferentRoot) 0x0000045B BadFolderName Invalid folder name. (ecBadFolderName) 0x0000045C AttachmentOpen The attachment is open. (ecAttachOpen) 0x0000045D InvalidCollapseState The collapse state given to SetCollapseState is invalid. (ecInvClpsState) 0x0000045E SkipMyChildren While walking a folder tree, do not consider children of this folder. (ecSkipMyChildren) 0x0000045F
ServerPaused The service is in a paused state. (ecServerPaused) 0x0000047F ServerBusy The server is too busy to complete an operation. (ecServerBusy) 0x00000480 NoSuchLogon No such logon exists in the message database’s Logon list. (ecNoSuchLogon) 0x00000481 LoadLibraryFailed Internal error: the service cannot load a required DLL. (ecLoadLibFailed) 0x00000482 AlreadyConfigured A synchronization object has already been configured. (ecObjAlreadyConfig) 0x00000483 NotConfigured A synchronization object has not yet been configured. (ecObjNotConfig) 0x00000484 DataLoss A code page conversion incurred when data loss. (ecDataLoss) 0x00000485 The maximum number of send threads has been exceeded. (ecMaxSendThreadExceeded) 0x00000488 FxErrorMarker A fast transfer error marker was found, and recovery is necessary. (ecFxErrorMarker) 0x00000489 NoFreeJtabs are no more free Jet tables. (ecNoFreeJtabs) 0x0000048A
NotPrivateDatabase The operation is only on a private mailbox database. (ecNotPrivateMDB) 0x0000048B IsintegMDB The message database has been locked by the ISINTEG utility. (ecIsintegMDB) 0x0000048C RecoveryMismatch A recovery storage group operation was attempted on a non-RSG message database, or vice-versa. (ecRecoveryMDBMismatch) 0x0000048D TableMayNotBeDeleted Attempt to delete a critical table, such as the Messages or Attachments table. (ecTableMayNotBeDeleted) 0x0000048E RpcRegisterIf Error in registering RPC interfaces. (ecRpcRegisterIf) 0x000004B1 RpcListen Error in starting the RPC listener. (ecRpcListen) 0x000004B2 RpcFormat A badly formatted RPC buffer was detected. (ecRpcFormat) 0x000004B6 NoCopyTo Single instance storage cannot be used in this case. (ecNoCopyTo) 0x000004B7 NullObject An object handle reference in the RPC buffer could not be resolved. (ecNullObject) 0x000004B9 RpcAuthentication Server requests client to use authentication. (ecRpcAuthentication) 0x000004BC The server doesn't recognize a client’s authentication level. (ecRpcBadAuthenticationLevel) 0x000004BD
NullCommentRestriction The sub-restriction of a comment restriction is empty. (ecNullCommentRestriction) 0x000004BE RulesLoadError Rule data was unavailable for this folder. (ecRulesLoadError) 0x000004CC RulesDeliverErr Delivery-time failure in rule execution. (ecRulesDeliverErr) 0x000004CD RulesParsingErr Invalid syntax in a stored rule condition or action. (ecRulesParsingErr) 0x000004CE RulesCreateDAE Failure creating a deferred rule action error message. (ecRulesCreateDaeErr) 0x000004CF RulesCreateDAM Failure creating a deferred rule action message. (ecRulesCreateDamErr) 0x000004D0 A move or copy rule action could not be performed due to a problem with the target folder. (ecRulesNoMoveCopyFolder) 0x000004D1 RulesNoFolderRights A move or copy rule action could not be performed due to a permissions problem with the target folder. (ecRulesNoFolderRights) 0x000004D2 MessageTooBig A message could not be delivered because it exceeds a size limit. (ecMessageTooBig) 0x000004D4 FormNotValid There is a problem with the form mapped to the message’s message class. (ecFormNotValid) 0x000004D5
RpcHttpDisallowed The server is configured to block RPC connections via HTTP. (ecRpcHttpDisallowed) 0x000004E0 CachedModeRequired The server is configured to block online mode connections; only cached mode connections are allowed. (ecCachedModeRequired) 0x000004E1 FolderNotCleanedUp The folder has been deleted but not yet cleaned up. (ecFolderNotCleanedUp) 0x000004E3 FormatError Part of a ROP buffer was incorrectly formatted. (ecFmtError) 0x000004ED NotExpanded Error in expanding or collapsing rows in a categorized view. (ecNotExpanded) 0x000004F7 NotCollapsed Error in expanding or collapsing rows in a categorized view. (ecNotCollapsed) 0x000004F8 NoExpandLeafRow Leaf rows cannot be expanded; only category header rows can be expanded. (ecLeaf) 0x000004F9 UnregisteredNameProp An operation was attempted on a named property ID for which no name has been registered. (ecUnregisteredNameProp) 0x000004FA FolderDisabled Access to the folder is disabled, perhaps because form design is in progress. (ecFolderDisabled) 0x000004FB DomainError There is an inconsistency in the message database’s association with its server. (ecDomainError) 0x000004FC
RuleExecution An error occurred while executing a rule action. (ecRuleExecution) 0x0000057D DSNoSuchObject A server object could not be found in the directory. (ecDSNoSuchObject) 0x0000057E AlreadyTombstoned An attempt to tombstone a message already in the message tombstone list failed. (ecMessageAlreadyTombstoned) 0x0000057F ReadOnlyTransaction A write operation was attempted in a transaction. (ecRequiresRWTransaction) 0x00000596 Paused Attempt to pause a server that is already paused. (ecPaused) 0x0000060E NotPaused Attempt to unpause a server that is not paused. (ecNotPaused) 0x0000060F WrongMailbox The operation was attempted on the wrong mailbox. (ecWrongMailbox) 0x00000648 ChangePassword The account password MUST be changed. (ecChgPassword) 0x0000064C PasswordExpired The account password has expired. (ecPwdExpired) 0x0000064D InvalidWorkstation The account has logged on from the workstation. (ecInvWkstn) 0x0000064E
that many Rule Action structures, as specified in [MS-OXORULE] PtypBinary 0x0102, %x02.01 Variable size, a followed by that many bytes PT_BINARY 0x1002, %x02.10 Variable size, a COUNT followed by that many PtypInteger16 values PT_MV_SHORT, PT_MV_I2, mv.i2 0x1003, %x03.10 Variable size, a COUNT followed by that many PtypInteger32 values PT_MV_LONG, PT_MV_I4, mv.i4 0x1004, %x04.10 Variable size, a followed by that many PtypFloating32 values PT_MV_FLOAT, PT_MV_R4, mv.float 0x1005, %x05.10 Variable size, a COUNT followed by that many PtypFloating64 values PT_MV_DOUBLE, PT_MV_R8 0x1006, %x06.10 Variable size, a COUNT followed by that many PtypCurrency values mv.fixed.14.4 0x1007, %x07.10 Variable size, a COUNT followed by that many PtypFloatingTime values PT_MV_APPTIME 0x1014, %x14.10 Variable size, a followed by that many PtypInteger64 values PT_MV_I8, PtypMultipleString 0x101F, %x1F.10 Variable size, a COUNT followed by that PtypString values PtypMultipleString8 0x101E, %x1E.10 Variable size, a COUNT followed by that many PtypString8 values PT_MV_STRING8, mv.string
ui2 The Unicode value of the element is interpreted as an unsigned 2 byte, 16-bit decimal integer. <element ... d:dt="ui2">2296</element> ui4 The Unicode value of the element is interpreted as an unsigned 4 byte, 32-bit decimal integer. <element ... d:dt="ui4">32768</element> ui8 The Unicode value of the element is interpreted as an unsigned 8 byte, 64-bit decimal integer. <element ... d:dt="ui8">-189</element> float The Unicode value of the element is interpreted as a single precision floating point number <element ... d:dt="float">9.9</element> r4 The Unicode value of the element is interpreted as a 4 byte single precision floating point number <element ... d:dt="r4">9.9</element> r8 The Unicode value of the element is interpreted as a 8 byte double precision floating point number <element ... d:dt="r8">.333333333</element> bool The Unicode value of the element is interpreted Boolean value either "1" (TRUE) or "0" (FALSE). <element ... d:dt="bool">1</element>
RestrictType Hexadecimal value Description Alternate name AndRestriction AndRestriction_r 0x00 Logical AND operation applied to a list of subrestrictions. RES_AND OrRestriction OrRestriction_r 0x01 Logical OR operation applied to a list of subrestrictions. RES_OR NotRestriction NotRestriction_r 0x02 Logical NOT applied to a subrestriction RES_NOT ContentRestriction 0x03 Search a property for specific content. RES_CONTENT PropertyRestriction 0x04 Compare a property value to a particular value. RES_PROPERTY 0x05 Compare the values of two properties. RES_COMPAREPROPS BitMaskRestriction 0x06 Perform bitwise AND of a property value with a mask and compare to zero RES_BITMASK SizeRestriction SizeRestriction_r 0x07 Compare the size of a property value to a particular figure. RES_SIZE ExistRestriction ExistRestriction_r 0x08 Test whether a property has a RES_EXIST
PropTag (4 bytes): Unsigned 32 bit integer. This value indicates the property tag of the property that MUST be compared. TaggedValue (Variable): TaggedValue structure (see section 2.13.4). This structure describes the property to be compared against. The TaggedValue field contains a property tag subfield which is distinct from the PropTag field of this structure. Only the property type portion of the TaggedValue’s property tag subfield is used; the property id is ignored. Multi-valued properties (when the bit MultivalueFlag is set) are supported for this type of restriction, but the base property types (obtained by masking off the bit MultivalueFlag) of both the PropTag field and property tag subfield of TaggedValue subfield MUST be the same in all cases. The MultivalueInstance bit MUST be set in neither the PropTag field nor the property tag subfield of the TaggedValue. The following table describes which cases are supported for multi-valued properties. PropTag Support Details Single-valued All RelOp values are supported Simple comparison Single-valued Only and are supported The value of property PropTag is compared with each value of TaggedValue. If there are any matches, is satisfied. If there are no matches, then is satisfied. Multi-valued and same as MultivalueInstance column of table All RelOp values are supported The single instance of property PropTag on the row is compared with TaggedValue.
05 RelOp 20 10 09 0E PropTag PidTagParentEntryId 0E 02 ByteCount 46 00 00 00 00 EntryID Flags MUST be zero EE C1 BD 78 61 11 D0 11 91 7B 00 00 00 00 00 01 EntryID Provider UID UID for Mailbox store 01 00 EntryID Folder Type eitLTPrivateFolder (16 byte guid specific to database) EntryID Message Database GUID UID identifies database where folder was originally created (6 bytes identifying Junk Mail folder) EntryID Global Counter UID identifies specific folder within database 00 00 EntryID Pad MUST be zero 04 RestrictType PropertyRestriction 05 20 10 09 0E PropTag PidTagParentEntryId 0E 02 ByteCount 46 00 00 00 00 EntryID Flags MUST be zero EE C1 BD 78 61 11 D0 11 91 7B 00 00 00 00 00 01 EntryID Provider UID UID for Mailbox store 01 00 EntryID Folder Type eitLTPrivateFolder