4.2 Creating a Personal Distribution List
A user creates a personal distribution list that contains the previous sample contact 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 RopGetPropertyIdsFromNames ROP ([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 RopGetPropertyIdsFromNames ROP 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 |
|
|
PidLidAddressBookProviderArrayType (section 2.2.2.3.1) |
PtypInteger32 |
|
|
PidLidFileUnder |
PtypString |
|
|
PidLidFileUnderId |
PtypInteger32 |
|
|
PidLidAutoLog |
PtypBoolean |
|
|
PidTagDisplayName (section 2.2.2.1.1) |
PtypString |
|
|
PidLidDistributionListName |
PtypString |
|
|
PidLidDistributionListChecksum |
PtypInteger32 |
|
|
PidLidDistributionListMembers |
PtypMultipleBinary |
|
|
PidLidDistributionListOneOffMembers |
PtypMultipleBinary |
|
|
PidTagMessageClass (section 2.2.2.4.2) |
PtypString |
|
|
PidTagIconIndex ([MS-OXOMSG] section 2.2.1.10) |
PtypInteger32 |
|
|
PidTagSubjectPrefix ([MS-OXOMSG] section 2.2.1.60) |
PtypString |
|
|
PidTagSubject ([MS-OXPROPS] section 2.1033) |
PtypString |
|
|
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.