@australian.dev.nerds,
And if you don’t consider SenderRepresentativeName as a sender, why PST.MessageInfo only has SenderRepresentativeName and no From/Sender?
That’s a question isn’t for me I guess The MessageInfo property values are filled with values from Contents Table records. It’ strange, the real PSTs don’t have From/Sender properties in the contents table, even as additional properties. Here’s a link with the required properties, if interested.
When reading OlmMessageInfo.From, should I check is “OlmMessageInfo.From” is null? empty string? or OlmMessageInfo.From.IsEmpty? or all 3 conditions can happen?
You should check, there is no guarantee that From field in a message is empty or missing
And when OlmMessageInfo.From.IsEmpty = True, it means all From.DisplayName/From.OriginalDisplayName/From.EmailAddress/From.FaxNumber/From.AddressType will be empty?
Yes, that’s true.
Not sure if asked about olmstorage extract property?
This is worth discussing. In fact, the OLM is completely different from the PST. And all that is implemented in PST is due to its structure.
It’s strange, but OLM is similar to MBOX in which the data is organized sequentially. It is easy to implement sequential reading there. For random access to data we have to invent all sorts of things.
OlmMessageInfo. From/Subject etc will be blank for all kind of smime messages, even for signed only ones, since those headers are not encoded! (no idea why their message class is not IPM.Note.SMIME on olm?) * Windows 7 only? Does not happen under Windows 10?! possible?
I don’t know either, unfortunately. Such cases have to be investigated further.
OlmMessageInfo.From.DisplayName vs OlmMessageInfo.From.OriginalDisplayName?
I haven’t faced a case of using OriginalDisplayName. Perhaps I should clarify what it was added for.
Please inform me, if OlmMessageInfo.GetHashCode.ToString will be unique for each message in the storage?
Not sure, because in MS Docs:
If value types do not override GetHashCode, the ValueType.GetHashCode method of the base class uses reflection to compute the hash code based on the values of the type's fields. In other words, value types whose fields have equal values have equal hash codes.
If two objects compare as equal, the GetHashCode() method for each object must return the same value. However, if two objects do not compare as equal, the GetHashCode() methods for the two objects do not have to return different values.
Thanks.