2.5.3.1 Behavior Descriptors for Get Operations

The following is a list of Behavior Descriptors that relate to Get operations used in the preceding tables, which explain how each specific calculated property is evaluated. In the evaluation column, the use of angle braces (< >) around a property tag is used to denote the value of that property.

Mnemonic

Evaluation

Input data for evaluation

PC

The property value is loaded directly from the PC (that is, no special calculations are required). However the property has special instructions for Set, Delete, and List operations.

See the Base Tag column for the underlying PC property.

SPGET_EID

Returns the PST-specific EntryID of the object in question. See section 2.4.3.2 for details regarding the conversion between an EntryID and its corresponding NID.

Node.nid

SPGET_STOREEID

Returns the EntryID for the current PST message store. The EntryID of the message store is stored in the PidTagEntryId property of the message store PC.

PidTagEntryId

(message store PC only)

SPGET_LONGNID

Returns Node.nid.

Node.nid

SPGET_RECORDKEY

Returns Node.nid.

Node.nid

SPGET_UIDRESOURCE

Returns identical value as SPGET_STOREEID.

PidTagEntryId

(message store PC only)

SPGET_TRUE

Returns true.

None

SPGET_OBJECTTYPE

Returns the object type of the current object. Implementations MUST return one of the pre-defined values:

  • MAPI_STORE

  • MAPI_FOLDER

  • MAPI_MESSAGE

  • MAPI_ATTACH

None

SPGET_FOLDERTYPE

Returns the type of the current Folder object. Implementations MUST return one of the possible values:

  • FOLDER_ROOT

  • FOLDER_GENERIC

  • FOLDER_SEARCH

None

SPGET_UIDPROVIDER

Returns the Provider UID for the current PST. This value is stored in the PidTagRecordKey property of the message store PC.

PidTagEntryId

(message store PC only)

SPGET_NORMALIZESUBJECT

Returns the Unicode/ANSI version of PidTagNormalizedSubject according to the PST version based on the requested string type. See section 2.5.3.1.1 for extracting the normalized subject of a Message object.

PidTagNormalizedSubject

SPGET_PARENTEID

Returns the EntryID representation (see section 2.4.3.2) of the NID of the parent of the current object.

Node.nidParent

SPGET_HASATTACH

Returns 1 if PidTagMessageFlags contains mfHasAttach; zero otherwise.

PidTagMessageFlags

SPGET_STORESTATE

Returns STORE_HAS_SEARCHES (as specified in [MS-OXCSTOR] section 2.2.1.5.2) if a node with NID NID_SEARCH_ACTIVITY_LIST is found; zero otherwise.

None

SPGET_SUBJECTPREFIX

Returns the Unicode/ANSI version of PidTagSubjectPrefix based on the requested string type. See section 2.5.3.1.1 for extracting the subject prefix of a Message object.

PidTagSubjectPrefix

SPGET_SUBJECT

Returns the Unicode/ANSI version of PidTagSubject based on the requested string type. See section 2.5.3.1.1 for extracting the subject of a Message object.

PidTagSubject

SPGET_DISPLAY

If the Base Tag property exists, then its value is returned, otherwise, an empty string in the correct encoding (Unicode/ANSI) is returned based on the requested string type.

See Base Tag column

SPGET_ZERO

Returns zero.

None

SPGET_MAPSIG

Returns the Mapping Signature UID. This is identical to SPGET_UIDPROVIDER.

See SPGET_UIDPROVIDER

SPGET_BB_BODY

Returns the most Message object body format based on the requested property tag.

Any of PidTagBody, PidTagHtml, or PidTagRtfCompressed

SPGET_RTF_IN_SYNC

Returns true if the RTF version of the Message object body exists and is synchronized with the order versions of the Message object body (if any), or false otherwise.

PidTagRtfCompressed and PidTagRtfInSync

SPGET_MSGSTATUS

Returns PidTagMessageStatus retrieved from the Contents TC from the parent Folder object of the Message object. Implementations MUST follow this method when retrieving this property.

PidTagMessageStatus

(from Contents TC of parent Folder object)

SPGET_RTF_AUX

Returns the synchronized values of the requested RTF auxiliary property. If the RTF content is not in sync, the RTF MUST first be synchronized before the property value is retrieved and returned.

Any of PidTagRtfSyncBodyCrc, PidTagRtfSyncBodyCount, PidTagRtfSyncBodyTag, PidTagRtfSyncPrefixCount, or PidTagRtfSyncTrailingCount

SPGET_BODYHTMLA

Returns the HTML rendering of the Message object body. If PidTagHtml is found in the PC, its value MUST be returned. Otherwise, the HTML rendering of the Message object body SHOULD be generated from the other Message object body formats and returned. This property only exists in ANSI versions of the PST and the HTML rendering MUST be returned in ANSI encoding.

PidTagHtml

SPGET_FOLDERID

Returns PidTagReplItemid of the containing Folder object for a Message object or Folder object.

PidTagReplItemid

(from parent Folder object PC)

SPGET_TABLE_ONLY

Retrieves and returns the requested property from the parent Folder object TC (Hierarchy, Contents, or Assoc Contents, based on the requesting object type).

Any of PidTagReplItemid, PidTagReplChangenum, PidTagReplVersionhistory, PidTagReplFlags, PidTagReplCopiedfromVersionhistory, or PidTagReplCopiedfromItemid

(from parent Folder object TC)

SPGET_HST_FOLDERREPL

Returns true if PidTagContainerClass exists and is set to "IPF.Note", "IPF.Contact", "IPF.Appointment" or an empty string. Returns false otherwise.

PidTagContainerClass

SPGET_IPMSUBTREE_DESC

Returns true if the current object is a descendant object of the IPM SuBTree, false otherwise.

Node.nid

SPGET_BB_PROPTAG

Returns the property tag of the best Message object body format. The typical order of preference for best Message object body is as follows:

PidTagRtfCompressed (only if PidTagRtfInSync=TRUE)

PidTagHtml

PidTagBody

Note that the best Message object body format can be explicitly set to override the default preference.

PidTagRtfCompressed

PidTagRtfInSync

PidTagHtml

PidTagBody

SPGET_SUBTREE_CONTAINER

Returns the SuBTree container of the current object. For a PST, the valid return values are SUBTREECONTAINER_NONE which means no SuBTree container, or SUBTREECONTAINER_IPM_SUBTREE which means an IPM SuBTree.

Node.nid

SPGET_PROV_ITEMID

Returns the endian-swapped value of the requested property.

PidTagProviderItemid or PidTagProviderParentItemid

SPGET_UNREAD_COUNT

If PidTagPstHiddenUnread exists, return (PidTagContentUnreadCount minus PidTagPstHiddenUnread); otherwise, return PidTagContentUnreadCount.

PidTagContentUnreadCount and

PidTagPstHiddenUnread

SPGET_CONTENT_COUNT

If PidTagPstHiddenCount exists, return

(PidTagContentCount minus PidTagPstHiddenCount); otherwise, return PidTagContentCount.

PidTagContentCount and PidTagPstHiddenCount

SPGET_SECURE_SUBMIT_FLAGS

Returns zero.

None

SPGET_CONTENT_FILTER_SCL

Returns zero.

None

SPGET_CONVERSATION_ID

Returns the computed conversation ID from PidTagConversationIndex, PidTagConversationTopic, and PidTagConversationIndexTracking. Refer to section 5.4 for the algorithm used to compute the Conversation ID value using these properties.

PidTagConversationIndex, PidTagConversationTopic and PidTagConversationIndexTracking