3.1.5.3 Processing Application, Window, and Participant IDs

When an Application-Created message is received, the client SHOULD check its application list to see if it contains a record for the value in the AppId field. If no record exists, the client MUST create a record that contains the application ID, the name of the application, and the shared state. If a record with the ID exists in the list, the client MUST replace the information in that record with the information in the message. When an Application-Removed message is received, the client MUST remove the record with the corresponding ID from its list. If no such record exists, the client MUST silently discard the message.

Window messages and participant messages SHOULD be handled exactly as described in the preceding paragraph.

Application IDs are also used to identify which applications own which windows. The sharing manager SHOULD send the client an Application-Created PDU before it sends any Window-Created PDUs for that application. This allows a client to maintain both a global window list and a list of windows per application. Because windows are tied to applications, a window's life span is limited by the life span of the application to which it is associated. The sharing manager SHOULD send Window-Removed PDUs before sending the Application-Removed PDU for the application to which the window corresponds. If the client receives an Application-Removed PDU, it SHOULD remove any window from the window list with an AppId that corresponds to the application removed.