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.