UINT MsgFilterMin,
UINT MsgFilterMax,
UINT RemoveMsg,
+ LONG_PTR *ExtraInfo,
BOOL bGMSG )
{
PTHREADINFO pti;
MsgFilterMin,
MsgFilterMax,
ProcessMask,
+ ExtraInfo,
Msg ))
{
return TRUE;
PTHREADINFO pti;
NTSTATUS Status = STATUS_SUCCESS;
MSG Msg;
+ LONG_PTR ExtraInfo = 0;
pti = PsGetCurrentThreadWin32Thread();
MsgFilterMin,
MsgFilterMax,
MAKELONG( PM_NOREMOVE, GetWakeMask( MsgFilterMin, MsgFilterMax)),
+ &ExtraInfo,
TRUE ) ) // act like GetMessage.
{
return TRUE;
PTHREADINFO pti;
BOOL Present = FALSE;
NTSTATUS Status;
+ LONG_PTR ExtraInfo = 0;
if ( hWnd == HWND_TOPMOST || hWnd == HWND_BROADCAST )
hWnd = HWND_BOTTOM;
MsgFilterMin,
MsgFilterMax,
RemoveMsg,
+ &ExtraInfo,
bGMSG );
if (Present)
{
PTHREADINFO pti;
MSG Message;
LARGE_INTEGER LargeTickCount;
+ LONG_PTR ExtraInfo = 0;
Message.hwnd = Wnd;
Message.message = Msg;
}
else
{
- MsqPostMessage(pti, &Message, FALSE, QS_POSTMESSAGE, 0, 0);
+ MsqPostMessage(pti, &Message, FALSE, QS_POSTMESSAGE, 0, ExtraInfo);
}
}
return TRUE;
IN UINT MsgFilterLow,
IN UINT MsgFilterHigh,
IN UINT QSflags,
+ OUT LONG_PTR *ExtraInfo,
OUT PMSG Message)
{
PUSER_MESSAGE CurrentMessage;
( ( ( MsgFilterLow == 0 && MsgFilterHigh == 0 ) && CurrentMessage->QS_Flags & QSflags ) ||
( MsgFilterLow <= CurrentMessage->Msg.message && MsgFilterHigh >= CurrentMessage->Msg.message ) ) )
{
- *Message = CurrentMessage->Msg;
- QS_Flags = CurrentMessage->QS_Flags;
+ *Message = CurrentMessage->Msg;
+ *ExtraInfo = CurrentMessage->ExtraInfo;
+ QS_Flags = CurrentMessage->QS_Flags;
if (Remove)
{