mirror of
https://github.com/reactos/reactos.git
synced 2025-07-30 21:51:47 +00:00
Good example how client thread info structure works. Only one flag was seen being set and cleared when multi-thread messages are sent. Researched back in 2001.
svn path=/trunk/; revision=32893
This commit is contained in:
parent
9da1cd7532
commit
4f409ee040
2 changed files with 12 additions and 7 deletions
|
@ -1081,12 +1081,11 @@ BOOL
|
|||
STDCALL
|
||||
InSendMessage(VOID)
|
||||
{
|
||||
static DWORD ShowNotImplemented = TRUE;
|
||||
if (ShowNotImplemented)
|
||||
{
|
||||
DbgPrint("InSendMessage is unimplemented\n");
|
||||
ShowNotImplemented = FALSE;
|
||||
}
|
||||
PCLIENTTHREADINFO pcti = ((PW32CLIENTINFO)GetWin32ClientInfo())->pClientThreadInfo;
|
||||
|
||||
if ( pcti )
|
||||
return (pcti->CTI_flags & CTI_INSENDMESSAGE);
|
||||
else
|
||||
/* return(NtUserGetThreadState(THREADSTATE_INSENDMESSAGE) != ISMEX_NOSEND); */
|
||||
return FALSE;
|
||||
}
|
||||
|
@ -1100,8 +1099,11 @@ STDCALL
|
|||
InSendMessageEx(
|
||||
LPVOID lpReserved)
|
||||
{
|
||||
PCLIENTTHREADINFO pcti = ((PW32CLIENTINFO)GetWin32ClientInfo())->pClientThreadInfo;
|
||||
|
||||
if (pcti && !(pcti->CTI_flags & CTI_INSENDMESSAGE)) return ISMEX_NOSEND;
|
||||
else
|
||||
/* return NtUserGetThreadState(THREADSTATE_INSENDMESSAGE); */
|
||||
UNIMPLEMENTED;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -181,8 +181,11 @@ typedef struct _W32PROCESSINFO
|
|||
|
||||
} W32PROCESSINFO, *PW32PROCESSINFO;
|
||||
|
||||
#define CTI_INSENDMESSAGE 0x0002
|
||||
|
||||
typedef struct _CLIENTTHREADINFO
|
||||
{
|
||||
DWORD CTI_flags;
|
||||
DWORD dwcPumpHook;
|
||||
} CLIENTTHREADINFO, *PCLIENTTHREADINFO;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue