BOOL xxxRealInternalGetMessage(
LPMSG lpMsg,
HWND hwndFilter,
UINT msgMin,
UINT msgMax,
UINT flags,
BOOL fGetMessage)
{
while (TRUE) {
if (ptiCurrent->pcti->fsWakeBits & fsWakeMask & QS_SENDMESSAGE) {
xxxReceiveMessages(ptiCurrent); A部分:xxxReceiveMessages
} else if (ptiCurrent->pcti->fsWakeBits & QS_SENDMESSAGE) {
RIPMSG2(RIP_WARNING, "xxxInternalGetMessage:(1st test) sendmsgs pending. Bits:%#lx Mask:%#lx",
ptiCurrent->pcti->fsWakeBits, fsWakeMask);
goto NoMessages;
}
/*
* Check to see if we have any input we want.
*/
if ((ptiCurrent->pcti->fsWakeBits & fsWakeMask) == 0) {
PATHTAKEN(8);
goto NoMessages;
}
fsWakeBits = ptiCurrent->pcti->fsWakeBits;
/*
* If the queue lock is != NULL (ptiSysLock) and it is this thread that
* locked it, then go get the message from the system queue. This is
* to prevent messages posted after a PeekMessage/no-remove from being
* seen before the original message from the system queue. (Aldus
* Pagemaker requires this) (bobgu 8/5/87).
*/
if (ptiCurrent->pq->ptiSysLock == ptiCurrent &&
(ptiCurrent->pq->QF_flags & QF_LOCKNOREMOVE)) {
/*
* Does the caller