Good example how client thread info structure works. Only one flag was seen being...
authorJames Tabor <james.tabor@reactos.org>
Tue, 8 Apr 2008 05:08:25 +0000 (05:08 +0000)
committerJames Tabor <james.tabor@reactos.org>
Tue, 8 Apr 2008 05:08:25 +0000 (05:08 +0000)
svn path=/trunk/; revision=32893

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

index 7366bf6..40aae48 100644 (file)
@@ -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;
 }
 
index 5e5b7b6..b8d91a4 100644 (file)
@@ -181,8 +181,11 @@ typedef struct _W32PROCESSINFO
 
 } W32PROCESSINFO, *PW32PROCESSINFO;
 
+#define CTI_INSENDMESSAGE 0x0002
+
 typedef struct _CLIENTTHREADINFO
 {
+    DWORD CTI_flags;
     DWORD dwcPumpHook;
 } CLIENTTHREADINFO, *PCLIENTTHREADINFO;