Skip to content

Addressbook

Jan Engelhardt edited this page Nov 4, 2022 · 2 revisions

Outlook bugs

When adding a new personal contact, if the address in the Email field has not been underlined, then the property PidLidAddressBookProviderArray will have value 0. The contact will not show up in the AB Hierarchy Root (CONTAB.DLL) ► Outlook Address Book  ► Contacts folder, because that uses a restriction of PR_MESSAGE_CLASS == IPM.DistList || (PR_MESSAGE_CLASS == IPM.Contact && PidLid..Array != 0) on the PAB.

AB Hierarchy

AB root container has no entryid. Subordinates of the root:

  • contab.dll contributes "Outlook Address Book", this folder and its subobjects have PR_AB_PROVIDER_ID = FD42AA0A18C71A10E8850B651C240000 (this happens to be muidContab minus one bit, interestingly)
  • emsmdb.dll contributes "Global Address List" plus other containers (taken from NSPI). PR_AB_PROVIDER_ID is muidEMSAB, the provider UID in the entryid is random (possibly profile-related).

Hierarchy subordinates of OAB:

  • supposedly one folder for every IPF.Contact found in a store, but nope. Most often, this is just Contacts. Entryid is FE42…, so the folder and its contents are in fact generated by CONTAB.

Content subordinates of OABContacts:

  • CONTAB looks at the store Contacts, applies a table restriction (PR_MESSAGE_CLASS = "IPM.DistList" || (PR_MESSAGE_CLASS = "IPM.Contact" && PidLid… != 0)) and uses the result for the OABContacts. Entryids of the members is 00000000FE42AA0A18C71A10E8850B651C2400000300000004000000FF0000004600000000000000D13…, and this contains a reference to the actual store (D13…), quite like how MUIDZCSAB wraps the main store and its EID.

Content subordinates of GAL:

  • supplied by NSPI, no frills
Clone this wiki locally