How to determine if a user-defined field exists in a certain folder

  • Thread starter Thread starter Shelby
  • Start date Start date
S

Shelby

Hi,

is it possible to determine if a user-defined field exists in a certain
folder, programmatically?

Thanks
 
A hidden message in the folder with a MessageClass of
"IPC.MS.REN.USERFIELDS" is used to hold the user defined fields in a folder.
You cannot get at that message using the Outlook object model. You can use
the UserProperties collection of an item to see if a UserProperty exists but
that doesn't tell you if the property is defined in the folder.

To get at the hidden messages in a folder you would need to use CDO 1.21
(optional installation for Outlook 2000 and later) or Extended MAPI (C++ or
Delphi code only) or Redemption (3rd party library located at
www.dimastr.com/redemption). Using CDO you would use the
MAPI.Folder.HiddenMessages collection. You could iterate that collection or
use a MessageFilter object to directly retrieve that hidden item.

In that hidden item the MAPI property PR_USERFIELDS (0x36E30102) holds the
names of all the user properties defined in the folder as an undocumented
binary property. You would have to parse that binary to get the user fields.
You can examine that property using OutlookSpy (www.dimastr.com) to get
information to help you parse that data.
 
Back
Top