[ros-diffs] [jimtabor] 32893: 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.

jimtabor at svn.reactos.org jimtabor at svn.reactos.org
Tue Apr 8 07:08:26 CEST 2008


Author: jimtabor
Date: Tue Apr  8 00:08:25 2008
New Revision: 32893

URL: http://svn.reactos.org/svn/reactos?rev=32893&view=rev
Log:
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.

Modified:
    trunk/reactos/dll/win32/user32/windows/message.c
    trunk/reactos/include/reactos/win32k/ntuser.h

Modified: trunk/reactos/dll/win32/user32/windows/message.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/user32/windows/message.c?rev=32893&r1=32892&r2=32893&view=diff
==============================================================================
--- trunk/reactos/dll/win32/user32/windows/message.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/user32/windows/message.c [iso-8859-1] Tue Apr  8 00:08:25 2008
@@ -1081,12 +1081,11 @@
 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 @@
 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;
 }
 

Modified: trunk/reactos/include/reactos/win32k/ntuser.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/reactos/win32k/ntuser.h?rev=32893&r1=32892&r2=32893&view=diff
==============================================================================
--- trunk/reactos/include/reactos/win32k/ntuser.h [iso-8859-1] (original)
+++ trunk/reactos/include/reactos/win32k/ntuser.h [iso-8859-1] Tue Apr  8 00:08:25 2008
@@ -181,8 +181,11 @@
 
 } W32PROCESSINFO, *PW32PROCESSINFO;
 
+#define CTI_INSENDMESSAGE 0x0002
+
 typedef struct _CLIENTTHREADINFO
 {
+    DWORD CTI_flags;
     DWORD dwcPumpHook;
 } CLIENTTHREADINFO, *PCLIENTTHREADINFO;
 



More information about the Ros-diffs mailing list