none
Documentation missing from the Exchange Document series RRS feed

  • Question

  • Analyzing .msg files written by Outlook 2007 SP2 (12.0.6662.5000), i came across several PidTags and PidLids that i could not find documentation for.

    Here's a list of PidTags that i couldn't find, each with ID, Data Type, flags and example content (Email-Addresses made unreadable):

    0E27/0102  -rw  02 01 27 0e 06 00 00 00 e4 02 00 00 03 00 5d 15  --- 08 00 03 00 00 00 00 00 01 00 2f 8c a4 02 00 00 c0 02 00 00 00 ...
    0E2F/0003  -rw  378520
    0E62/000B  -rw  1
    1006/0003  -rw  1739723429
    1007/0003  -rw  1414
    1008/001F  -rw  HALLOPP-SERVICE,NEINDIEZUORDNUNGMACHENWIRNACHRüCKSPRACHEMITDEMANWENDERMFGCMOHSVON:PP62-45200GESENDET
    1010/0003  -rw  0
    1011/0003  -rw  1
    10F2/000B  -rw  1
    10F5/000B  -rw  0
    3014/0102  -rw  02 01 14 30 06 00 00 00 0c 00 00 00 03 00 36 11  --- 57 00 00 00 1e 70 58 51 e6 4e 2b 90
    3D01/0102  -rw  02 01 01 3d 06 00 00 00 10 00 00 00 03 00 40 02  --- 33 62 97 dd cb 67 31 42 b9 07 5f 49 5b 25 e5 f8
    4019/0003  -rw  65536
    401B/0003  -rw  0
    401C/0003  -rw  0
    4022/001F  -rw  EX
    4023/001F  -rw  /o=XXXXX/ou=XXXXXX/cn=Recipients/cn=XXXXXXX
    402C/0102  -rw  02 01 2c 40 06 00 00 00 33 00 00 00 03 00 e6 05  --- 63 3d 44 45 3b 61 3d 44 42 50 3b 70 3d 56 57 ...
    403D/001F  -rw  S
    403E/001F  -rw  f
    405D/0003  -rw  0
    5D02/001F  -rw  XXXXXX.XXXX@XXXXXXXXXX.de
    5D09/001F  -rw  XXX-XXX-XXXXXXXXX@XXXX.DE
    5FE5/001F  -rw
    5FEB/0003  -rw  0
    5FEF/0003  -rw  0
    5FF2/0003  -rw  0
    5FF5/0003  -rw  0
    6001/0003  -rw  0
    6001/001F  -rw  XXXX.XXXXXXXXXX@XXXX.de
    6200/0003  -rw  552583497
    6201/0003  -rw  85402915
    65C6/0003  -rw  2
    6827/0003  -rw  2064988007

    Here's a list of PidLids that i couldn't find in documentation (for these, the hex ID behind "PidLid" [000b in the first row] is the PidLid, the number in front of the type [8051 in the first row] is the entry in the name2id string, so can be ignored):

    PidLid-000b   8051/001F  -rw  Client=Hub Transport
    PidLid-0016   8057/0003  -rw  3
    PidLid-0019   8046/0002  -rw  0
    PidLid-001d   8047/001F  -rw
    PidLid-8200   8043/000B  -rw  0
    PidLid-822c   805D/0014  -rw  3940658283347968
    PidLid-822d   805E/0040  -rw  Thu Oct 18 21:03:07 2012
    PidLid-8245   8040/0003  -rw  0
    PidLid-8246   8041/000B  -rw  1
    PidLid-8596   8018/001F  -rw  Bewertungsbogen_neu
    PidLid-85c2   8019/0102  -rw  02 01 19 80 06 00 00 00 9e 0d 00 00 03 00 61 15  --- 50 4b 03 04 14 00 06 00 08 00 00 00 21 00 82 8a bc 13 fa 00 02 ...
    PidLid-85c3   801A/0102  -rw  02 01 1a 80 06 00 00 00 3a 01 00 00 03 00 5b 15  --- 3c 3f 78 6d 6c 20 76 65 72 73 69 6f 6e 3d 22 31 2e 30 22 20 6f ...
    PidLid-85d8   800C/001F  -rw  IPM.Note
    PidLid-8f01   800A/0102  -rw  02 01 0a 80 06 00 00 00 32 00 00 00 03 00 5d 15  --- 4d 00 41 00 50 00 49 00 3a 00 2f 00 2f 00 30 00 30 00 00 ...

    Also, there seem to be several PidLids that have different meaning depending on the GUID they're attached to, with the GUID 11000e07-b51b-40d6-af21-caa85edab1d0 being very incomplete. In one particular message, this is the guid stream:

            __substg1.0_00020102: GUID Stream
    02 20 06 00 00 00 00 00 c0 00 00 00 00 00 00 46 . .............F
    08 20 06 00 00 00 00 00 c0 00 00 00 00 00 00 46 . .............F
    90 da d8 6e 0b 45 1b 10 98 da 00 aa 00 3f 13 05 ...n.E.......?..
    07 0e 00 11 1b b5 d6 40 af 21 ca a8 5e da b1 d0 .......@.!..^...

    this is (the relevant part of) the entry stream:

    2f: niso=00000024 iko=002f000a guid index=5 (GUID Stream Entry 2) LID=00000024 - PidLidAppointmentMessageClass
    30: niso=00000004 iko=0030000a guid index=5 (GUID Stream Entry 2) LID=00000004 - PidLidIsSilent
    31: niso=00000005 iko=0031000a guid index=5 (GUID Stream Entry 2) LID=00000005 - PidLidIsRecurring
    32: niso=0000000a iko=0032000a guid index=5 (GUID Stream Entry 2) LID=0000000a - PidLidIsException
    33: niso=00000006 iko=0033000a guid index=5 (GUID Stream Entry 2) LID=00000006 - PidLidRequiredAttendees
    34: niso=00000007 iko=0034000a guid index=5 (GUID Stream Entry 2) LID=00000007 - PidLidOptionalAttendees
    35: niso=00000008 iko=0035000a guid index=5 (GUID Stream Entry 2) LID=00000008 - PidLidResourceAttendees
    36: niso=00000009 iko=0036000a guid index=5 (GUID Stream Entry 2) LID=00000009 - PidLidDelegateMail
    37: niso=0000000b iko=0037000a guid index=5 (GUID Stream Entry 2) LID=0000000b - PidLid-000b
    38: niso=0000000c iko=0038000a guid index=5 (GUID Stream Entry 2) LID=0000000c - PidLidTimeZone
    39: niso=0000001c iko=0039000a guid index=5 (GUID Stream Entry 2) LID=0000001c - PidLidCalendarType
    3a: niso=0000000d iko=003a000a guid index=5 (GUID Stream Entry 2) LID=0000000d - PidLidStartRecurrenceDate
    3b: niso=0000000e iko=003b000a guid index=5 (GUID Stream Entry 2) LID=0000000e - PidLidStartRecurrenceTime
    3c: niso=0000000f iko=003c000a guid index=5 (GUID Stream Entry 2) LID=0000000f - PidLidEndRecurrenceDate
    3d: niso=00000010 iko=003d000a guid index=5 (GUID Stream Entry 2) LID=00000010 - PidLidEndRecurrenceTime
    3e: niso=00000011 iko=003e000a guid index=5 (GUID Stream Entry 2) LID=00000011 - PidLidDayInterval
    3f: niso=00000012 iko=003f000a guid index=5 (GUID Stream Entry 2) LID=00000012 - PidLidWeekInterval
    40: niso=00000013 iko=0040000a guid index=5 (GUID Stream Entry 2) LID=00000013 - PidLidMonthInterval
    41: niso=00000014 iko=0041000a guid index=5 (GUID Stream Entry 2) LID=00000014 - PidLidYearInterval
    42: niso=00000015 iko=0042000a guid index=5 (GUID Stream Entry 2) LID=00000015 - PidLidClientIntent
    43: niso=00000016 iko=0043000a guid index=5 (GUID Stream Entry 2) LID=00000016 - PidLid-0016
    44: niso=00000017 iko=0044000a guid index=5 (GUID Stream Entry 2) LID=00000017 - PidLidMonthOfYearMask
    45: niso=00000018 iko=0045000a guid index=5 (GUID Stream Entry 2) LID=00000018 - PidLidOldRecurrenceType
    46: niso=00000019 iko=0046000a guid index=5 (GUID Stream Entry 2) LID=00000019 - PidLid-0019
    47: niso=0000001d iko=0047000a guid index=5 (GUID Stream Entry 2) LID=0000001d - PidLid-001d
    48: niso=00000000 iko=00480005 guid index=2 (PS_PUBLIC_STRINGS) strpos=0 - urn:schemas:calendar:sequence
    49: niso=00000040 iko=00490005 guid index=2 (PS_PUBLIC_STRINGS) strpos=64 - urn:schemas:calendar:version
    4a: niso=00000015 iko=004a000c guid index=6 (GUID Stream Entry 3) LID=00000015 - PidLidClientIntent
    4b: niso=00000005 iko=004b000c guid index=6 (GUID Stream Entry 3) LID=00000005 - PidLidIsRecurring
    4c: niso=00000006 iko=004c000c guid index=6 (GUID Stream Entry 3) LID=00000006 - PidLidRequiredAttendees
    4d: niso=00000007 iko=004d000c guid index=6 (GUID Stream Entry 3) LID=00000007 - PidLidOptionalAttendees
    4e: niso=00000008 iko=004e000c guid index=6 (GUID Stream Entry 3) LID=00000008 - PidLidResourceAttendees
    4f: niso=00000009 iko=004f000c guid index=6 (GUID Stream Entry 3) LID=00000009 - PidLidDelegateMail
    50: niso=0000000a iko=0050000c guid index=6 (GUID Stream Entry 3) LID=0000000a - PidLidIsException
    51: niso=0000000b iko=0051000c guid index=6 (GUID Stream Entry 3) LID=0000000b - PidLid-000b
    52: niso=0000000c iko=0052000c guid index=6 (GUID Stream Entry 3) LID=0000000c - PidLidTimeZone
    53: niso=0000000d iko=0053000c guid index=6 (GUID Stream Entry 3) LID=0000000d - PidLidStartRecurrenceDate
    54: niso=0000000e iko=0054000c guid index=6 (GUID Stream Entry 3) LID=0000000e - PidLidStartRecurrenceTime
    55: niso=0000000f iko=0055000c guid index=6 (GUID Stream Entry 3) LID=0000000f - PidLidEndRecurrenceDate
    56: niso=00000010 iko=0056000c guid index=6 (GUID Stream Entry 3) LID=00000010 - PidLidEndRecurrenceTime
    57: niso=00000011 iko=0057000c guid index=6 (GUID Stream Entry 3) LID=00000011 - PidLidDayInterval
    58: niso=00000012 iko=0058000c guid index=6 (GUID Stream Entry 3) LID=00000012 - PidLidWeekInterval
    59: niso=00000013 iko=0059000c guid index=6 (GUID Stream Entry 3) LID=00000013 - PidLidMonthInterval
    5a: niso=00000014 iko=005a000c guid index=6 (GUID Stream Entry 3) LID=00000014 - PidLidYearInterval
    5b: niso=00000016 iko=005b000c guid index=6 (GUID Stream Entry 3) LID=00000016 - PidLid-0016
    5c: niso=00000017 iko=005c000c guid index=6 (GUID Stream Entry 3) LID=00000017 - PidLidMonthOfYearMask

    and this is part of the content data:

    PidLidEndRecurrenceDate                       803C/0003  -rw  0
    PidLidEndRecurrenceDate                       8055/001F  -rw  EdgeTransport
    PidLidEndRecurrenceTime                       803D/0003  -rw  0
    PidLidEndRecurrenceTime                       8056/001F  -rw  HOSTNAME0322
    PidLidIsException                             8032/000B  -rw  0
    PidLidIsException                             8050/001F  -rw  /o=XXXXX/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Configuration
    PidLidIsRecurring                             8031/000B  -rw  0
    PidLidIsRecurring                             804B/0102  -rw  02 01 4b 80 06 00 00 00 11 03 00 00 03 00 6b 08  --- 76 32 43 61 6c 65 6e 64 ...

    It seems like the PidLid ID Names were documented correctly for Guid entry 2, but for Guid entry 3, the same PidLid IDs have different data type and obviously different content.

    Would it be possible to amend these IDs to the documentation?

    Monday, October 22, 2012 11:31 AM

Answers

  • Hi Guntram,

    Thank you for your feedback.  However, I discussed this further with the product team and these properties are not in scope to be documented as part of the protocol documentation.

    Regards,

    Mark Miller | Escalation Engineer | Open Specifications Support Team


    Tuesday, November 27, 2012 7:23 PM

All replies

  • Hi Guntram,

    Thank you for your question. In the future, please provide to which document (including version) and section your question is related.
    A member of the protocol documentation team will respond to you soon.

    Regards,
    Vilmos Foltenyi - MSFT

    Monday, October 22, 2012 6:11 PM
  • Hi Guntram,

    Thank you for pointing this out.  I will investigate this issue and follow up with you.

    Regards,

    Mark Miller | Escalation Engineer | Protocol Documentation Team

    Monday, October 22, 2012 7:15 PM
  • Hi Guntram,

    Thank you for your question. In the future, please provide to which document (including version) and section your question is related.
    A member of the protocol documentation team will respond to you soon.

    Regards,
    Vilmos Foltenyi - MSFT

    Vilmos,

    the document where i would have expected this documentation is [MS-OXPROPS], the master property list, in its newest version. Which, of course, is just an index into more or less every other document in the Exchange Document series, so i'm afraid the actual documentation will be scattered over many other documents, and i really can't provide a single document that the question refers to.

    Guntram

    Tuesday, October 23, 2012 6:42 AM
  • Hi Guntram,

    The properties you identified are not involved in client to server behavior, or vice versa.  These properties, and any others that are merely stored by the server on behalf of the client, or generated by the server for its own use and ignored by the client, are not in scope to be documented as part of the protocol. You may want to refer to the Microsoft Exchange RPC Extractor for parsing and note the properties that parse as "Unspecified property".

    Regards,

    Mark Miller | Escalation Engineer | Open Specifications Support Team

    Tuesday, November 13, 2012 6:19 PM
  • Mark,

    all these properties occur in .msg files written by the client, in this case, Microsoft Outlook. So, they must either a) have been generated by the server and transferred to the client, or b) have been generated by the client itself. So, it's very probable they have a meaning for Outlook.

    Since the outlook message file format is part of this documentation (MS-OXMSG), and it's outlook that stores these properties, shouldn't there be a hit as to what they're for? Or, at least some hint as to "this property may occur in a .msg file, but it contains no information that's of any use for a reader of msg files, and it can savely be omitted when reading, modifying, and re-writing a .msg file"?

    Any application writing of modifying a .msg file should at least know what to do with these properties when writing a file, in order not to confuse the client and/or the server.

    Guntram

    Thursday, November 22, 2012 12:42 PM
  • Hi Guntram,

    Thank you for your feedback.  However, I discussed this further with the product team and these properties are not in scope to be documented as part of the protocol documentation.

    Regards,

    Mark Miller | Escalation Engineer | Open Specifications Support Team


    Tuesday, November 27, 2012 7:23 PM