3.2.3.4.1 AsyncUIBalloon Notification

The AsyncUIBalloon notification MUST use unidirectional communication mode and MUST be delivered by way of an output parameter of an IRPCAsyncNotify_GetNotification call.

Before acting on a notification, the client SHOULD verify that the notification complies with the requirements for the AsyncUIBalloon type, but SHOULD accept as compliant the following inconsistencies with the AsyncUIBalloon specification:

  • Clients SHOULD accept XML-element names that differ in ASCII case from those specified in the XML schema.

  • Clients SHOULD accept values of the bidi and buttonID attributes that differ in ASCII case from those specified in the XML schema.

  • Where the XML schema specifies an ordering for sibling elements, clients SHOULD accept as compliant those elements in any order.

  • Clients SHOULD ignore and consider as compliant XML attributes with unrecognized names.

  • Where this specification calls for an integer to be encoded as a string, clients SHOULD accept any string as compliant, and SHOULD interpret the string as follows:

    • If leading, contiguous non-white-space characters of the string can be decoded as an integer, clients SHOULD accept the integer and discard remaining characters.

    • If no leading characters can be decoded as an integer, clients SHOULD treat the string as if it held the value "0".

  • Clients SHOULD accept as compliant any string for the value of the bidi attribute, and treat any value other than "true" as if it were "false".

  • Clients SHOULD accept as compliant a "messageBoxUI" or "balloonUI" element that lacks the required "body" element.

If a compliance error is detected, the client MUST NOT take any further action based on the notification data, but rather MUST continue with a subsequent call to IRPCAsyncNotify_GetNotification.

After validating the notification, an AsyncUI client MUST process the request as follows:

  • The client SHOULD format a display by using AsyncUI "title", "body", and "parameter" elements, as well as iconID and resourceDll attributes from the "balloonUI" element (sections 2.2.7.1.3, 2.2.7.1.4, and 2.2.7.1.5).

  • If an "action" element is specified, the client MUST call the method identified by the entrypoint and dll attributes of that element (section 2.2.7.1). If the method entry point cannot be called successfully for any reason, the client MUST ignore the error and continue with a subsequent call to IRPCAsyncNotify_GetNotification.