Outlook PST名称id映射细节

Outlook PST名称id映射细节,outlook,mapi,pst,Outlook,Mapi,Pst,pst规范中提到了。 此映射可能包含其规范中定义的多个pidlid属性,但从外观上看,这些pidlid属性中的大多数似乎是特定于消息的。 如何在此名称id映射中存储/管理每条消息的属性?否,消息存储4字节的属性标记。例如,PR_SUBJECT_A(不是命名属性,因此不需要映射)为0x0037001E 仅当客户端调用IMAPIProp::GetIDsFromNames和IMAPIProp::GetNamesFromIDs时,才需要映射。在前一种情况下,您将获得GUID和id(字符串或int),并且

pst规范中提到了。 此映射可能包含其规范中定义的多个pidlid属性,但从外观上看,这些pidlid属性中的大多数似乎是特定于消息的。
如何在此名称id映射中存储/管理每条消息的属性?

否,消息存储4字节的属性标记。例如,PR_SUBJECT_A(不是命名属性,因此不需要映射)为0x0037001E


仅当客户端调用IMAPIProp::GetIDsFromNames和IMAPIProp::GetNamesFromIDs时,才需要映射。在前一种情况下,您将获得GUID和id(字符串或int),并且需要查找对应于该GUID/id组合的4个字节(或者更确切地说是2个字节,因为下2个字节是prop类型)prop标记。对于GetNamesFromIDs,您可以进行反向查找-给定prop标记,返回GUID/id。

我不确定我是否理解这个问题-命名属性与任何其他属性一样存储,例如PR_SUBJECT。问题是,如果名称id映射为每个pst一个,那么我们如何计算pst中msg的PR_SUBJECT?我猜NID_NAME_TO_ID_映射表示这些属性已在pst中设置/存在,并且存储msg相关数据的表结构以某种方式使用此映射获取键,然后从其自身结构中查找值。那么映射真正代表什么呢?我们需要在哪里进行查找(在msg的表结构中?)比如说,我对一个命名属性感兴趣,比如,这个属性的值存储在哪里?(在msg的表结构中?命名映射的用途是什么?)如果您想要PidLidOwnerCriticalChange,则需要使用{6ED8DA90-450B-101B-98DA-00AA003F1305}和0x0000001A来使用映射查找与该属性对应的属性标记。然后您需要设置正确的属性类型(PT_SYSTIME=0x0040),然后在特定消息的数据中查找该属性的实际值。为了完整起见,您的意思是使用属性标记right“查找该属性的实际值”?正确。GUID/id组合只有一个属性标记,但每个消息都可以具有该标记的不同属性值。