Outlook always represents signed/encrypted messages as regular "IPM.Note MailItem"
objects. It goes as far as returning a fake IMessage
MAPI interface from the MailItem.MAPIOBJECT
property.
You can see this in OutlookSpy (I am its author) - select a signed message, click IMessage button on the OutlookSpy ribbon. PR_MESSAGE_CLASS will be IPM.Note. Select the PR_ENTRYID property, right click, select IMAPISession::OpenEntry. You will get back the real message with PR_MESSAGE_CLASS
= IPM.Note.SMIME.MultipartSigned
. You can see the attachment that contains the data.
You are pretty much limited to Extended MAPI (C++ or Delphi only) or Redemption (I am its author - any language - it wraps Extended MAPI) if you want to distinguish signed/encrypted message from the regular ones. Redemption exposes RDOEncryptedMessage object. You can retrieve it from RDOSession.GetMessageFromID
using the entry id retrieved from MailItem.EntryID
property in OOM.