|Important||This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here.|
PidTagNormalizedSubject Canonical Property
This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This page may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.
Contains the message subject with any prefix removed.
PR_NORMALIZED_SUBJECT, PR_NORMALIZED_SUBJECT_A, PR_NORMALIZED_SUBJECT_W
If the PR_SUBJECT_PREFIX is present and is an initial substring of PR_SUBJECT, PR_NORMALIZED_SUBJECT and associated properties are set to the contents of PR_SUBJECT with the prefix removed.
If PR_SUBJECT_PREFIX is present, but it is not an initial substring of PR_SUBJECT, PR_SUBJECT_PREFIX is deleted and recalculated from PR_SUBJECT using the following rule: If the string contained in PR_SUBJECT begins with one to three non-numeric characters followed by a colon and a space, then the string together with the colon and the blank becomes the prefix. Numbers, blanks, and punctuation characters are not valid prefix characters.
If PR_SUBJECT_PREFIX is not present, it is calculated from PR_SUBJECT using the rule outlined in the previous step. This property then is set to the contents of PR_SUBJECT with the prefix removed.
Note When PR_SUBJECT_PREFIX is an empty string, PR_SUBJECT and this property are the same.
Ultimately, this property should be the part of PR_SUBJECT following the prefix. If there is no prefix, this property becomes the same as PR_SUBJECT.
PR_SUBJECT_PREFIX and this property should be computed as part of the IMAPIProp::SaveChanges implementation. A client application should not prompt the IMAPIProp::GetProps method for their values until they have been committed by an IMAPIProp::SaveChanges call.
The subject properties are typically small strings of fewer than 256 characters, and a message store provider is not obligated to support the Object Linking and Embedding (OLE) IStream interface on them. The client should always attempt access through the IMAPIProp interface first, and resort to IStream only if MAPI_E_NOT_ENOUGH_MEMORY is returned.