Hi dochelp team,

I working on Openchage MAPI RPC mapi implementation at the moment,
and occasionally I get an incomplete "x500 DN" in ModifyRecipientRow commit
from RopModifyRecients.

Please see [1] for ndrdump I have for messages with truncated x500 DN.
In such cases, I get following string for x500 DN:

* 'Anization/ou=First Administrative Group/cn=Recipients/cn=a'*

And what I am expecting is something like:

/o=First Organization/ou=First Administrative Group/cn=Recipients/cn=a


Digging a bit in documentation, I have found this - [MS-OXCDATA —
v20140130], 2.8.3.2 -> AddressPrefixUsed:

*AddressPrefixUsed* (optional) (1 byte): Unsigned integer. This field MUST
be present when
the Type field of the RecipientFlags field is set to X500DN (0x1) and MUST
NOT be present
otherwise. *This value specifies the amount of the Address Prefix is used
for this X500 DN.*

So it seems it is not a bug in Outlook but rather expected behavior.

My question/s:
1) What is "Address Prefix"? Is it some kind of prefix map we are referring
in such messages?
2) How to use the "AddressPrefixUse" to re-construct the full x500 DN for
the recipient?

Oh, and just one more thing to note - as I said, this happens on a random
basis.
Should I recreate the Outlook profile, then Outlook starts to send me full
x500 DNs.

Best regards,
Kamen Mazdrashki

Refs:
[1]
                              mapi_ModifyRecipients: struct
ModifyRecipients_req
                                  prop_count               : 0x0010 (16)
                                  properties: ARRAY(16)
                                      properties               :
PidTagObjectType (0xFFE0003)
                                      properties               :
PidTagDisplayType (0x39000003)
                                      properties               :
PidTagAddressBookDisplayNamePrintable (0x39FF001F)
                                      properties               :
PidTagSmtpAddress (0x39FE001F)
                                      properties               :
PidTagSendInternetEncoding (0x3A710003)
                                      properties               :
UNKNOWN_ENUM_VALUE (0x5FDE0003)
                                      properties               :
PidTagRecipientOrder (0x5FDF0003)
                                      properties               :
UNKNOWN_ENUM_VALUE (0x5FEB0003)
                                      properties               :
UNKNOWN_ENUM_VALUE (0x5FEF0003)
                                      properties               :
UNKNOWN_ENUM_VALUE (0x5FF20003)
                                      properties               :
UNKNOWN_ENUM_VALUE (0x5FF50003)
                                      properties               :
PidTagRecipientDisplayName (0x5FF6001F)
                                      properties               :
PidTagRecipientEntryId (0x5FF70102)
                                      properties               :
PidTagRecipientFlags (0x5FFD0003)
                                      properties               :
PidTagRecipientTrackStatus (0x5FFF0003)
                                      properties               :
UNKNOWN_ENUM_VALUE (0x6001001F)
                                  cValues                  : 0x0001 (1)
                                  RecipientRow: ARRAY(1)
                                      RecipientRow: struct
ModifyRecipientRow
                                          idx                      :
0x00000000 (0)
                                          RecipClass               :
MAPI_TO (0x1)
                                          RecipientRow: struct RecipientRow
                                              RecipientFlags           :
0x07d1 (2001)
                                              AddressPrefixUsed        :
union recipient_AddressPrefixUsed(case 1)
                                              *prefix_size              :
0x0c (12)*
                                              DisplayType              :
union recipient_DisplayType(case 1)
                                              display_type             :
SINGLE_RECIPIENT (0x0)
                                              X500DN                   :
union recipient_X500DN(case 1)
                                             * recipient_x500name       :
'Anization/ou=First Administrative Group/cn=Recipients/cn=a'*
                                              EntryId                  :
union recipient_EntryId(case 0)
                                              SearchKey                :
union recipient_SearchKey(case 0)
                                              AddressType              :
union recipient_AddressType(case 1)
                                              EmailAddress             :
union recipient_EmailAddress(case 512)
                                              DisplayName              :
union recipient_DisplayName(case 528)
                                              lpszW                    : 'a
a'
                                              SimpleDisplayName        :
union recipient_SimpleDisplayName(case 1536)
                                              lpszW                    : 'a
a'
                                              TransmittableDisplayName :
union recipient_TransmittableDisplayName(case 512)
                                              prop_count               :
0x0010 (16)
                                              layout                   :
0x00 (0)
                                              prop_values              :
DATA_BLOB length=235
_______________________________________________
devel mailing list
[email protected]
http://mailman.openchange.org/listinfo/devel

Reply via email to