Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

STA outgoing calls & message filtering

0 views
Skip to first unread message

Duncan Lees

unread,
Feb 10, 1999, 3:00:00 AM2/10/99
to
Does anybody know about the message dispatching done by COM during an
outgoing call from a STA? It seems to be filtering out paint messages
which should be generated while the main thread is waiting for calls
to return. I am getting some standard windows messages, just not the
paint ones I want!

Also, I've implemented and registered my IMessageFilter interface
which is getting calls to HandleInComingCall (which is returning
SERVERCALL_ISHANDLED), but nothing on MessagePending.

The result I'm getting in a locked UI on my client which is making the
calls which I was hoping would remain responsive. Has any one had any
similar experience like this or know what I'm doing wrong?

Thanks in advance,

Duncan

-Duncan

Microsoft News

unread,
Feb 15, 1999, 3:00:00 AM2/15/99
to
OK, hello Duncan ...

I just had a nice elaborate version of this mail, but my Windows 2000 IE5
Pre-Beta freaking News Client blew on me!!!! Sorry! Here is the short
version:

Replace your version of MessagePendingProc with this one (you may want to
include some filtering, which I did not since I log every message for
research (sounds grand, doesn't it???)) and remove all occurences of NOYIELD
(those were the 16-bit times) in the msgfiltr.c file. That's it. Good luck,

J.


BOOL FAR PASCAL EXPORT MessagePendingProc(MSG FAR *lpMsg)
{

if(!g_bProcessingPleaseWait)
{

// Dispatch all messages (so far, we are only researching!!!)

g_bProcessingPleaseWait = TRUE;

while(PeekMessage(lpMsg, NULL, 0, 0, PM_REMOVE))
{
TranslateMessage (lpMsg);
DispatchMessage(lpMsg);
}

g_bProcessingPleaseWait = FALSE;

return TRUE;
}

P.S.: Don't forget to define the global variable, which is supposed to avoid re-entrance while I dispatch. Seems like IE5 still got some problems with that (:-) ... the application error looked just too darn familiar.

return FALSE; //return PENDING_WAITDEFPROCESS for MessagePending (to OLE Process)
}
Duncan Lees <Duncan@snsys-dot-com> wrote in message news:36c1b3ec...@msnews.microsoft.com...

Duncan Lees

unread,
Feb 16, 1999, 3:00:00 AM2/16/99
to
Hi,

<snip>

>Replace your version of MessagePendingProc with this one (you may want to
>include some filtering, which I did not since I log every message for
>research (sounds grand, doesn't it???)) and remove all occurences of NOYIELD
>(those were the 16-bit times) in the msgfiltr.c file. That's it. Good luck,

<snip>

Thanks but I'm not really sure how to apply that with my ATL project.
After a bit of searching it seems to relate to the OLE Standard
Utility Library stuff in the SDK. I'm not really sure how that code
works, but it seems to be faking up a v-table which is definately
bigger than the IMessageFilter interface definition I'm using. Is
there an extended interface which I should use instead of the standard
IMessageFilter?

Thanks,

-Duncan

0 new messages