Platform SDK: Exchange Server

Resolving Message Conflicts with Forms

Although custom forms are commonly used for composing or reading messages, they can also be used for resolving message conflicts. Such a form must contain code that checks the message status every time the form is launched. If the MSGSTATUS_IN_CONFLICT flag is set, the form knows to invoke its conflict resolution functionality (which includes a conflict-resolution user interface) instead of its compose or read functionality.

Note  Microsoft Exchange Server can handle message conflicts in one of three ways, depending on the value of the PR_RESOLVE_METHOD property. If this property is set to invoke default behavior, one of the actions taken by Microsoft Exchange Server is to set the MSGSTATUS_IN_CONFLICT bit in the MAPI PR_MSG_STATUS property of the winning message. For more information, see Specifying the Resolution Method with PR_RESOLVE_METHOD.

To register a form for conflict resolution, set the GUID for one of the form's extension properties in the [Extensions] section of the form's .CFG file. For this GUID, use the value given in the following example in the line starting with NmidPropset=. The [Extension.1] section indicates that the form can handle its own conflicts. This prevents the Microsoft Exchange Client from displaying its conflict-resolution user interface for forms of this message's class.

[Extensions]
Extensions1=1

[Extension.1]
Type=11
NmidPropset={77f69534-6b7d-101b-9f0d-00aa003ba905}
NmidInteger=0
Value=1
 

If these lines are detected in the form's .CFG file, Microsoft Exchange Server starts the forms server when a conflict occurs.

If a forms server checks a message's PR_MSG_STATUS property and finds the MSGSTATUS_IN_CONFLICT bit set, it can try to resolve the conflict detected by Microsoft Exchange Server. To do this, the forms server opens the attachment table and searches for attachments that have the PR_IN_CONFLICT property set to TRUE. For more information, see Automatic Conflict Resolution. For general information on conflict resolution, see Handling Message Conflicts.