3.2.5.1.6 Processing Window Information Orders

Window Information Orders (section 2.2.1.3.1) inform the client of the following types of window events on the server:

  • Creation of a new window.

  • Updates on window properties for a new or existing window.

  • Updates on icons for a new or existing window.

  • Deletion of an existing window.

  • Registration of a new or existing window as an application desktop toolbar.

  • Deregistration of an existing application desktop toolbar.

  • Updates on the edge to which the application desktop toolbar window is anchored.

Upon receipt of a Window Information Order for a new window (the FieldsPresentFlags field of the Hdr contains the WINDOW_ORDER_STATE_NEW (0x10000000) flag, as specified in section 2.2.1.3.1.2.1), the client SHOULD create a new RAIL window locally. The client SHOULD store an association of the WindowId reported in the Hdr field with the local RAIL window.

Upon receipt of a Window Information Order for an existing window (the FieldsPresentFlags field of Hdr does not contain the WINDOW_ORDER_STATE_NEW (0x10000000) flag, as specified in section 2.2.1.3.1.2.1), the client SHOULD locate the local RAIL window that corresponds to the WindowId reported in the Hdr field and apply the specified updates to the RAIL window. If no such window can be found, the client SHOULD ignore the order.

Upon receipt of a Window Information Order for an icon or cached icon, as specified in sections 2.2.1.3.1.2.2 and 2.2.1.3.1.2.3, the client SHOULD locate the local RAIL window that corresponds to the WindowId reported in the Hdr field and apply the icon updates to the RAIL window. If no such window can be found, the client SHOULD ignore the order.

Upon receipt of a Window Information Order for a deleted window, as specified in section 2.2.1.3.1.2.4, the client SHOULD locate the local RAIL window that corresponds to the WindowId reported in the Hdr field and destroy it. If no such window can be found, the client SHOULD ignore the order.

Upon receipt of a Window Information Order for the registration of a window as an application desktop toolbar, the client SHOULD locate the local RAIL window that corresponds to the WindowId reported in the Hdr field and register it as an application desktop toolbar. If no such window can be found, the client SHOULD ignore the order.

Upon receipt of a Window Information Order for the deregistration of an application desktop toolbar window, the client SHOULD locate the local RAIL window that corresponds to the WindowId reported in the Hdr field and deregister the application desktop toolbar window. If no such window can be found, the client SHOULD ignore the order.

The boundaries of the window (defined by the WindowOffsetX, WindowOffsetY, WindowWidth and WindowHeight fields) only include the visible area of the window, and do not include any optional transparent hit-testable window margins ("resize margins"). However, the Client Window Move PDU (section 2.2.2.7.4) and Client Window Snap PDU (section 2.2.2.7.5) do include resize margins in the window boundaries. For this reason, clients SHOULD NOT expect the window boundaries reported in the Window Information Order (section 2.2.1.3.1.2.1) to match boundaries previously sent in a Window Move/Snap PDU. This applies even if margins were not sent in the Window Information Order.<27>

Upon receipt of a Window Information Order for the edge of an application desktop toolbar window, the client SHOULD locate the local RAIL window that corresponds to the WindowId reported in the Hdr field and update the edge to which the window is anchored. If no such window can be found, the client SHOULD ignore the order.