3.2.3.4.2 AsyncUIMessageBox Notification

The AsyncUIMessageBox notification MUST use bidirectional communication mode and MUST be delivered by way of an output parameter of an IRPCAsyncNotify_GetNotificationSendResponse call. Once the notification has been processed, a client MUST NOT make an additional call to IRPCAsyncNotify_GetNotificationSendResponse by using the same pChannel parameter and MUST send a response using a call to IRPCAsyncNotify_CloseChannel.

Before acting on a notification, a client SHOULD verify that the notification complies with the requirements specified for AsyncUIMessageBox (section 2.2.7.3), but SHOULD accept as compliant any of the inconsistencies described in section 3.2.3.4.1.

If a compliance error is detected, the client MUST NOT send any further response on the same notification channel and MUST close the channel by calling IRPCAsyncNotify_CloseChannel with its pInNotificationType parameter holding NOTIFICATION_RELEASE.

After successfully validating the notification:

  • The client SHOULD format a display by using AsyncUI title, body, parameter, button, and bitmap elements and wait for the user to select one of the buttons.

  • The client MUST:

    • Identify a selected button.

    • Construct an AsyncUIMessageBoxReply string. The buttonID element MUST specify the buttonID attribute of the button element that was selected (section 2.2.7.3).

    • Send the AsyncUIMessageBoxReply to the server in the pReason parameter of an IRPCAsyncNotify_CloseChannel call.