Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All

4.2 Creating a Personal Distribution List

A user creates a personal distribution list that contains the previous sample contact (3) and another email address (user1@example.com). The following is a description of what a client might do to accomplish the user's intentions and what responses a server might return.

Before manipulating Contact objects, the client needs to ask the server to map property names or long IDs (LIDs) to property IDs by using the RopGetPropertyIdsFromNamesROP ([MS-OXCROPS] section 2.2.8.1).

Property

Property set GUID

LID

PidLidAutoLog (section 2.2.1.10.19)

{00062004-0000-0000-C000-000000000046}

0x00008025

PidLidAddressBookProviderArrayType (section 2.2.2.3.1)

{00062004-0000-0000-C000-000000000046}

0x00008029

PidLidFileUnder (section 2.2.2.1.3)

{00062004-0000-0000-C000-000000000046}

0x00008005

PidLidFileUnderId (section 2.2.2.1.4)

{00062004-0000-0000-C000-000000000046}

0x00008006

PidLidDistributionListName (section 2.2.2.1.2)

{00062004-0000-0000-C000-000000000046}

0x00008053

PidLidDistributionListChecksum (section 2.2.2.2.3)

{00062004-0000-0000-C000-000000000046}

0x0000804C

PidLidDistributionListMembers (section 2.2.2.2.1)

{00062004-0000-0000-C000-000000000046}

0x00008055

PidLidDistributionListOneOffMembers (section 2.2.2.2.2)

{00062004-0000-0000-C000-000000000046}

0x00008054

For this example, the server returns the following property IDs in response to the RopGetPropertyIdsFromNamesROP request ([MS-OXCROPS] section 2.2.8.1). The actual property IDs are at the discretion of the server.

Property

Property ID

PidLidAutoLog

0x8280

PidLidAddressBookProviderArrayType

0x81D5

PidLidFileUnder

0x8016

PidLidFileUnderId

0x81DA

PidLidDistributionListName

0x81C9

PidLidDistributionListChecksum

0x81C7

PidLidDistributionListMembers

0x81C8

PidLidDistributionListOneOffMembers

0x81CA

To create a Personal Distribution List object, the client uses the RopCreateMessage ROP ([MS-OXCROPS] section 2.2.6.2). The server returns a success code and a handle to a Message object.

The properties of the Contact object are set according to data that is specified by the user. After the user has input content the data for the Personal Distribution List object, the client uses the RopSetProperties ROP ([MS-OXCROPS] section 2.2.8.6) to transmit the property settings to the server. The properties and their settings for this example are listed in the following table. The property types shown in the table are described in [MS-OXCDATA] section 2.11.1.

Property

Property type

Data

Meaning

PidTagDisplayNamePrefix (section 2.2.1.1.3)

PtypString

00 00
""

PidLidAddressBookProviderArrayType (section 2.2.2.3.1)

PtypInteger32

0x00000000
0

PidLidFileUnder

PtypString

46 00 72 00 69 00 65 00 6E 00 64 00 73 00 00 00
"Friends"

PidLidFileUnderId

PtypInteger32

0xFFFFFFFF
-1

PidLidAutoLog

PtypBoolean

0x00
FALSE

PidTagDisplayName (section 2.2.2.1.1)

PtypString

46 00 72 00 69 00 65 00 6E 00 64 00 73 00 00 00
"Friends"

PidLidDistributionListName

PtypString

46 00 72 00 69 00 65 00 6E 00 64 00 73 00 00 00
"Friends"

PidLidDistributionListChecksum

PtypInteger32

0xD4B0223A
-726654406

PidLidDistributionListMembers

PtypMultipleBinary

02 00 00 00

64 00
00 00 00 00 81 2B 1F A4 BE A3
10 19 9D 6E 00 DD 01 0F 54 02 
00 00 01 80 54 00 68 00 6F 00 
6D 00 61 00 73 00 20 00 48 00 
61 00 6D 00 62 00 6F 00 72 00 
67 00 00 00 53 00 4D 00 54 00 
50 00 00 00 75 00 73 00 65 00 
72 00 31 00 40 00 65 00 78 00 
61 00 6D 00 70 00 6C 00 65 00 
2E 00 63 00 6F 00 6D 00 00 00 

5B 00
00 00 00 00 C0 91 AD D3 51 9D 
CF 11 A4 A9 00 AA 00 47 FA A4 
C3 00 00 00 00 C2 42 42 82 60 
00 16 47 AD A9 5C 07 77 B7 4B 
E2 07 00 61 2A 7B AB 49 F6 4E 
4B 9C 52 DB FB 5A 53 AA 1C 00 
00 00 F0 4E A6 00 00 61 2A 7B 
AB 49 F6 4E 4B 9C 52 DB FB 5A 
53 AA 1C 00 00 00 F0 D5 B0 00 
00
2 binary large objects
(BLOBs) to follow

BLOB1 Size: 100 bytes
.....+..
.....n..
..T.....
T.h.o.m.
a.s. .H.
a.m.b.o.
r.g...S.
M.T.P...
u.s.e.r.
1.@.e.x.
a.m.p.l.
e...c.o.
m...

BLOB2 Size: 91 bytes
........
Q.......
.G......
..BB.`..
G..\.w.K
...a*{.I
.NK.R..Z
S......N
...a*{.I
.NK.R..Z
S.......
... 

PidLidDistributionListOneOffMembers

PtypMultipleBinary

02 00 00 00

64 00
00 00 00 00 81 2B 1F A4 
BE A3 10 19 9D 6E 00 DD 
01 0F 54 02 00 00 01 80 
54 00 68 00 6F 00 6D 00 
61 00 73 00 20 00 48 00 
61 00 6D 00 62 00 6F 00 
72 00 67 00 00 00 53 00 
4D 00 54 00 50 00 00 00 
75 00 73 00 65 00 72 00 
31 00 40 00 65 00 78 00 
61 00 6D 00 70 00 6C 00 
65 00 2E 00 63 00 6F 00 
6D 00 00 00

AC 00
00 00 00 00 81 2B 1F A4 
BE A3 10 19 9D 6E 00 DD 
01 0F 54 02 00 00 01 80 
75 00 73 00 65 00 72 00 
31 00 30 00 20 00 28 00 
75 00 73 00 65 00 72 00 
31 00 30 00 40 00 73 00 
7A 00 66 00 6B 00 75 00 
6B 00 2D 00 64 00 6F 00 
6D 00 2E 00 65 00 78 00 
6A 00 6D 00 70 00 6C 00 
65 00 2E 00 63 00 6F 00 
6D 00 29 00 00 00 53 00 
4D 00 54 00 50 00 00 00 
75 00 73 00 65 00 72 00 
31 00 30 00 40 00 73 00 
7A 00 66 00 6B 00 75 00 
6B 00 2D 00 64 00 6F 00 
6D 00 2E 00 65 00 78 00 
6A 00 6D 00 70 00 6C 00 
65 00 2E 00 63 00 6F 00 
6D 00 00 00
2 BLOBs to follow

BLOB1 Size: 100 bytes
.....+..
.....n..
..T.....
T.h.o.m.
a.s. .H.
a.m.b.o.
r.g...S.
M.T.P...
u.s.e.r.
1.@.e.x.
a.m.p.l.
e...c.o.
m...

BLOB2 Size: 172 bytes
.....+..
.....n..
..T.....
u.s.e.r.
1.0. .(.
u.s.e.r.
1.0.@.s.
z.f.k.u.
k.-.d.o.
m...e.x.
a.m.p.l.
e...c.o.
m.)...S.
M.T.P...
u.s.e.r.
1.0.@.s.
z.f.k.u.
k.-.d.o.
m...e.x.
a.m.p.l.
e...c.o.
m...

PidTagMessageClass (section 2.2.2.4.2)

PtypString

49 00 50 00 4D 00 2E 00 44 00 69 00 73 00 74 00 4C 00 69 00 73 00 74 00 00 00
"IPM.DistList"

PidTagIconIndex ([MS-OXOMSG] section 2.2.1.10)

PtypInteger32

0x00000202
514

PidTagSubjectPrefix ([MS-OXOMSG] section 2.2.1.60)

PtypString

00 00
""

PidTagSubject ([MS-OXPROPS] section 2.1021)

PtypString

46 00 72 00 69 00 65 00 6E 00 64 00 73 00 00 00
"Friends"

When the user is ready to save his or her changes, the client uses the RopSaveChangesMessage ROP ([MS-OXCROPS] section 2.2.6.3) to commit the properties on the server.

The values of some properties will change during the execution of the RopSaveChangesMessage ROP; however, none of the properties that change are Personal Distribution List object properties.

Show:
© 2015 Microsoft