include shell.inc
mov ebx, Handle ; virtual machine handle
mov eax, Flags ; message box flags
mov ecx, OFFSET32 Message ; address of message text
mov edi, OFFSET32 Caption ; address of caption text
mov esi, OFFSET32 Callback ; address of callback
mov edx, ReferenceData ; reference data for callback
VxDcall SHELL_Message
jc error
or eax, eax ; nonzero if success
Displays a message box using the Windows shell. Uses EAX and Flags.
The strings pointed to by the ECX and EDI registers must remain valid until the callback procedure is called. In other words, the memory for those strings should not be freed until the callback is made.
The system calls the callback procedure after the user closes the message box. The callback receives the following input parameters:
mov eax, Response ; response code from the message box
mov edx, ReferenceData ; points to reference data
call [Callback]
The response code in the EAX register is one of the ID symbols defined in the SHELL.INC file. The EBX register may or may not contain the current virtual machine handle when the callback is called. The callback must not rely on its value. If this service returns an error, a virtual device can use the SHELL_SYSMODAL_Message service to force the system to display a message.