_SHELL_PostMessage


include shell.inc
VxDcall _SHELL_PostMessage, <hwnd, uMsg, wParam, lParam, \
    <OFFSET32 pfnCallback>, dwRefData>
or   eax, eax
jz   not_posted

Schedules a message for posting to the given window and optionally installs a callback procedure to be notified when the PostMessage function actually posts the message. Uses C calling conventions.

hwnd

Handle of a window. The upper 16 bits are reserved and must be zero.

uMsg

Message value in the lower 16-bits. The upper 16 bits contain scheduling information and can be one of these values:

SPM_UM_DoNotWaitForCrit

Do not wait for the critical section to become free before posting the message.

SPM_UM_AlwaysSchedule

Always schedule the postmessage event. See comments below.


If WM_NULL (0) is given in the lower 16 bits, the service does not post a message but does call the callback procedure indicating success.

wParam

16-bit message parameter in the lower 16-bits. The upper 16 bits are reserved and must be zero.

lParam

32-bit message parameter.

pfnCallback

Address of the callback procedure to call when the message has been posted. This parameter can be zero if no callback is needed. For more information about the procedure, see the comments below.

dwRefData

Reference data for the callback procedure.

The system calls the callback procedure when the PostMessage function successfully posts the message into the queue of the given window. The system calls the procedure using the C calling conventions as follows:


cCall [pfnCallback], <dwRc, dwRefData>

The dwRefData parameter is the same value as passed to _SHELL_PostMessage. The dwRc parameter is the value returned by the PostMessage function. If this parameter is nonzero, the message was posted; otherwise, it was not posted.

When the callback procedure receives control, the system VM has been boosted by High_Pri_Device_Boost.