PST name-id-map specifics

2019-09-01 02:07发布

问题:

The spec for pst mentions that the name-id-map is one per pst. This map may contain several pidlid properties as defined in their spec MS-OXPROPS, but from the looks of it most of these pidlid properties appear to be message specific. How are properties for each message stored/managed in this name-id-map ?

回答1:

No, the messages store the 4 byte property tags. E.g. PR_SUBJECT_A (which is not a named property and hence does not need to be mapped) is 0x0037001E.

The map is needed only if a client calls IMAPIProp::GetIDsFromNames and IMAPIProp::GetNamesFromIDs. In the former case, you get the GUID and the id (either string or an int) and you need to lookup the 4 byte (or rather 2 bytes since the lower 2 bytes are prop type) prop tag corresponding to that GUID/id combination. In case of GetNamesFromIDs, you do reverse lookup - given the prop tag, return the GUID/id.



标签: outlook mapi pst