ReactOS  0.4.15-dev-4610-g11e0ed3
simplecall.c
Go to the documentation of this file.
1 /*
2  * COPYRIGHT: See COPYING in the top level directory
3  * PROJECT: ReactOS kernel
4  * PURPOSE: NtUserCallXxx call stubs
5  * FILE: win32ss/user/ntuser/simplecall.c
6  * PROGRAMERS: Ge van Geldorp (ge@gse.nl)
7  * Katayama Hirofumi MZ (katayama.hirofumi.mz@gmail.com)
8  */
9 
10 #include <win32k.h>
11 
12 DBG_DEFAULT_CHANNEL(UserMisc);
13 
14 /* Registered logon process ID */
16 
19 {
22 
24  if (!NT_SUCCESS(Status))
25  {
27  return FALSE;
28  }
29 
30  ProcessId = Process->UniqueProcessId;
31 
33 
34  if (Register)
35  {
36  /* Register the logon process */
37  if (gpidLogon != 0)
38  return FALSE;
39 
41  }
42  else
43  {
44  /* Deregister the logon process */
45  if (gpidLogon != ProcessId)
46  return FALSE;
47 
48  gpidLogon = 0;
49  }
50 
51  return TRUE;
52 }
53 
54 /*
55  * @unimplemented
56  */
60 {
61  DWORD_PTR Result = 0;
62 
63  TRACE("Enter NtUserCallNoParam\n");
65 
66  switch (Routine)
67  {
70  break;
71 
74  break;
75 
78  break;
79 
82  break;
83 
86  break;
87 
90  break;
91 
93  {
95  Result = (DWORD_PTR)MAKELONG(pti->ptLast.x, pti->ptLast.y);
96  break;
97  }
98 
101  break;
102 
105  break;
106 
108  {
110  TRACE("Zapping the Active and Focus window out of the Queue!\n");
111  pti->MessageQueue->spwndFocus = NULL;
112  pti->MessageQueue->spwndActive = NULL;
113  Result = 0;
114  break;
115  }
116 
119  break;
120 
121  /* this is a ReactOS only case and is needed for gui-on-demand */
124  break;
125 
127  gpsi->dwSRVIFlags |= SRVINFO_IMM32; // Always set.
128  Result = TRUE; // Always return TRUE.
129  break;
130 
131  default:
132  ERR("Calling invalid routine number 0x%x in NtUserCallNoParam\n", Routine);
134  break;
135  }
136 
137  TRACE("Leave NtUserCallNoParam, ret=%p\n",(PVOID)Result);
138  UserLeave();
139 
140  return Result;
141 }
142 
143 
144 /*
145  * @implemented
146  */
147 DWORD_PTR
148 APIENTRY
150  DWORD_PTR Param,
151  DWORD Routine)
152 {
154 
155  TRACE("Enter NtUserCallOneParam\n");
156 
158 
159  switch (Routine)
160  {
162  {
163  PTHREADINFO pti;
165  MsqPostQuitMessage(pti, Param);
166  Result = TRUE;
167  break;
168  }
169 
171  {
172  PSMWP psmwp;
173  HDWP hDwp = NULL;
174  INT count = (INT)Param;
175 
176  if (count < 0)
177  {
179  Result = 0;
180  break;
181  }
182 
183  /* Windows allows zero count, in which case it allocates context for 8 moves */
184  if (count == 0) count = 8;
185 
187  NULL,
188  NULL,
189  (PHANDLE)&hDwp,
191  sizeof(SMWP));
192  if (!psmwp)
193  {
194  Result = 0;
195  break;
196  }
197 
199  if (!psmwp->acvr)
200  {
202  Result = 0;
203  break;
204  }
205 
206  RtlZeroMemory(psmwp->acvr, count * sizeof(CVR));
207  psmwp->bHandle = TRUE;
208  psmwp->ccvr = 0; // actualCount
209  psmwp->ccvrAlloc = count; // suggestedCount
210  Result = (DWORD_PTR)hDwp;
211  break;
212  }
213 
215  Result = (DWORD_PTR)UserShowCursor((BOOL)Param);
216  break;
217 
219  {
220  PTHREADINFO ti;
221  ti = GetW32ThreadInfo();
222  if (ti != NULL)
223  {
224  /* Try convert the pointer to a user mode pointer if the desktop is
225  mapped into the process */
227  }
228  else
229  {
230  Result = 0;
231  }
232  break;
233  }
234 
236  Result = (DWORD_PTR)IntWindowFromDC((HDC)Param);
237  break;
238 
240  {
242  gspv.bMouseBtnSwap = Param ? TRUE : FALSE;
243  gpsi->aiSysMet[SM_SWAPBUTTON] = gspv.bMouseBtnSwap;
244  break;
245  }
246 
249  break;
250 
253  break;
254 
256  {
257  if (!(Result = (DWORD_PTR)IntCreateCurIconHandle((DWORD)Param)))
258  {
260  Result = 0;
261  }
262  break;
263  }
264 
266  {
267  BOOL Enable;
269 
270  if (Process != NULL)
271  {
272  Enable = (BOOL)(Param != 0);
273 
274  if (Enable)
275  {
276  Process->W32PF_flags &= ~W32PF_NOWINDOWGHOSTING;
277  }
278  else
279  {
280  Process->W32PF_flags |= W32PF_NOWINDOWGHOSTING;
281  }
282 
283  Result = TRUE;
284  break;
285  }
286 
287  Result = FALSE;
288  break;
289  }
290 
293  break;
294 
296  Result = UserGetKeyboardType(Param);
297  break;
298 
301  break;
302 
304  Result = UserReleaseDC(NULL, (HDC) Param, FALSE);
305  break;
306 
308  Result = UserRealizePalette((HDC) Param);
309  break;
310 
312  {
313  Result = IntGetQueueStatus((DWORD)Param);
314  break;
315  }
316 
318  /* FIXME: Should use UserEnterShared */
320  break;
321 
322  case ONEPARAM_ROUTINE_GETCURSORPOS:
323  {
324  PPOINTL pptl;
326  Result = TRUE;
327  if (pti->rpdesk != IntGetActiveDesktop())
328  {
329  Result = FALSE;
330  break;
331  }
332  _SEH2_TRY
333  {
334  ProbeForWrite((POINT*)Param,sizeof(POINT),1);
335  pptl = (PPOINTL)Param;
336  *pptl = gpsi->ptCursor;
337  }
339  {
340  Result = FALSE;
341  }
342  _SEH2_END;
343  break;
344  }
345 
347  {
348  PPROCESSINFO ppi;
349  if (Param & LAYOUT_ORIENTATIONMASK || Param == LAYOUT_LTR)
350  {
352  ppi->dwLayout = Param;
353  Result = TRUE;
354  break;
355  }
357  Result = FALSE;
358  break;
359  }
360 
362  {
363  PPROCESSINFO ppi;
364  PDWORD pdwLayout;
365  Result = TRUE;
366 
368  {
370  Result = FALSE;
371  break;
372  }
373 
375  _SEH2_TRY
376  {
377  pdwLayout = (PDWORD)Param;
378  *pdwLayout = ppi->dwLayout;
379  }
381  {
383  Result = FALSE;
384  }
385  _SEH2_END;
386  break;
387  }
388 
391  break;
392 
394  /* TODO: Implement sound sentry */
396  break;
397 
398  case ONEPARAM_ROUTINE_CREATESYSTEMTHREADS:
399  Result = UserSystemThreadProc(Param);
400  break;
401 
404  break;
405 
408  break;
409 
410  default:
411  ERR("Calling invalid routine number 0x%x in NtUserCallOneParam(), Param=0x%x\n",
412  Routine, Param);
414  Result = 0;
415  break;
416  }
417 
418  TRACE("Leave NtUserCallOneParam, ret=%p\n", (PVOID)Result);
419  UserLeave();
420 
421  return Result;
422 }
423 
424 
425 /*
426  * @implemented
427  */
428 DWORD_PTR
429 APIENTRY
431  DWORD_PTR Param1,
432  DWORD_PTR Param2,
433  DWORD Routine)
434 {
435  PWND Window;
436  DWORD_PTR Ret;
437  TRACE("Enter NtUserCallTwoParam\n");
439 
440  switch (Routine)
441  {
443  {
444  Window = UserGetWindowObject((HWND)Param1);
445  Ret = (DWORD_PTR)UserPaintCaption(Window, (INT)Param2);
446  break;
447  }
448 
450  {
451  PMENU MenuObject = IntGetMenuObject((HMENU)Param1);
452  if (!MenuObject)
453  {
454  Ret = 0;
455  break;
456  }
457 
458  if (Param2 > 0)
459  {
460  Ret = (MenuObject->cyMenu == (int)Param2);
461  MenuObject->cyMenu = (int)Param2;
462  }
463  else
464  Ret = (DWORD_PTR)MenuObject->cyMenu;
465  IntReleaseMenuObject(MenuObject);
466  break;
467  }
468 
470  {
472  ASSERT(pti->MessageQueue);
473  Ret = (DWORD_PTR)MsqSetStateWindow(pti, (ULONG)Param1, (HWND)Param2);
474  break;
475  }
476 
478  Ret = IntEnableWindow((HWND)Param1, (BOOL)Param2);
479  break;
480 
482  {
483  Window = UserGetWindowObject((HWND)Param1);
484  if (!Window)
485  {
486  Ret = 0;
487  break;
488  }
489 
490  Ret = (DWORD_PTR)IntShowOwnedPopups(Window, (BOOL)Param2);
491  break;
492  }
493 
495  {
496  WPARAM wParam;
497  Window = UserGetWindowObject((HWND)Param1);
498  if (!Window)
499  {
500  Ret = 0;
501  break;
502  }
503 
504  /* Unpack wParam */
505  wParam = MAKEWPARAM((Param2 >> 3) & 0x3,
506  Param2 & (UISF_HIDEFOCUS | UISF_HIDEACCEL | UISF_ACTIVE));
507 
509  break;
510  }
511 
513  {
514  HWND hwnd = (HWND)Param1;
515  BOOL fAltTab = (BOOL)Param2;
516  Ret = 0;
518  if (!Window)
519  break;
520 
521  if (gpqForeground && !fAltTab)
522  {
523  PWND pwndActive = gpqForeground->spwndActive;
524  if (pwndActive && !(pwndActive->ExStyle & WS_EX_TOPMOST))
525  {
526  co_WinPosSetWindowPos(pwndActive, HWND_BOTTOM, 0, 0, 0, 0,
529  }
530 
532  break;
533  }
534 
536 
537  if (fAltTab && (Window->style & WS_MINIMIZE))
538  {
539  MSG msg = { Window->head.h, WM_SYSCOMMAND, SC_RESTORE, 0 };
540  MsqPostMessage(Window->head.pti, &msg, FALSE, QS_POSTMESSAGE, 0, 0);
541  }
542  break;
543  }
544 
546  Ret = (DWORD_PTR)co_IntSetCaretPos((int)Param1, (int)Param2);
547  break;
548 
550  Ret = (DWORD_PTR)co_IntRegisterLogonProcess((HANDLE)Param1, (BOOL)Param2);
551  break;
552 
554  Ret = (DWORD_PTR)UserSetCursorPos((int)Param1, (int)Param2, 0, 0, FALSE);
555  break;
556 
558  Ret = IntUnhookWindowsHook((int)Param1, (HOOKPROC)Param2);
559  break;
560 
561  default:
562  ERR("Calling invalid routine number 0x%x in NtUserCallTwoParam(), Param1=0x%x Parm2=0x%x\n",
563  Routine, Param1, Param2);
565  Ret = 0;
566  }
567 
568 
569  TRACE("Leave NtUserCallTwoParam, ret=%p\n", (PVOID)Ret);
570  UserLeave();
571 
572  return Ret;
573 }
574 
575 
576 /*
577  * @unimplemented
578  */
579 BOOL
580 APIENTRY
582  HWND hWnd,
583  DWORD Routine)
584 {
585  BOOL Ret = FALSE;
586  PWND Window;
588 
589  TRACE("Enter NtUserCallHwndLock\n");
591 
592  if (!(Window = UserGetWindowObject(hWnd)))
593  {
594  Ret = FALSE;
595  goto Exit;
596  }
597 
598  UserRefObjectCo(Window, &Ref);
599 
600  /* FIXME: Routine can be 0x53 - 0x5E */
601  switch (Routine)
602  {
605  break;
606 
608  {
609  TRACE("HWNDLOCK_ROUTINE_DRAWMENUBAR\n");
610  Ret = TRUE;
611  if ((Window->style & (WS_CHILD | WS_POPUP)) != WS_CHILD)
613  HWND_DESKTOP,
614  0, 0, 0, 0,
615  SWP_NOSIZE |
616  SWP_NOMOVE |
617  SWP_NOZORDER |
620  break;
621  }
622 
625  HWND_DESKTOP,
626  0, 0, 0, 0,
627  SWP_NOSIZE |
628  SWP_NOMOVE |
629  SWP_NOZORDER |
632  Ret = TRUE;
633  break;
634 
637  HWND_DESKTOP,
638  0, 0, 0, 0,
639  SWP_NOSIZE |
640  SWP_NOMOVE |
641  SWP_NOZORDER |
644  if (!Window->spwndOwner && !IntGetParent(Window))
645  {
646  co_IntShellHookNotify(HSHELL_REDRAW, (WPARAM)hWnd, FALSE); // FIXME Flashing?
647  }
648  Ret = TRUE;
649  break;
650 
652  TRACE("co_IntSetForegroundWindow 1 0x%p\n", hWnd);
654  TRACE("co_IntSetForegroundWindow 2 0x%p\n", hWnd);
655  break;
656 
658  TRACE("co_IntSetForegroundWindow M 1 0x%p\n", hWnd);
660  TRACE("co_IntSetForegroundWindow M 2 0x%p\n", hWnd);
661  break;
662 
665  Ret = TRUE;
666  break;
667 
669  // TODO:
670  break;
671  }
672 
674 
675 Exit:
676  TRACE("Leave NtUserCallHwndLock, ret=%u\n", Ret);
677  UserLeave();
678 
679  return Ret;
680 }
681 
682 /*
683  * @unimplemented
684  */
685 HWND
686 APIENTRY
688  HWND hWnd,
689  DWORD Routine)
690 {
691  switch (Routine)
692  {
694  GetW32ThreadInfo()->pDeskInfo->hProgmanWindow = hWnd;
695  break;
696 
698  GetW32ThreadInfo()->pDeskInfo->hTaskManWindow = hWnd;
699  break;
700  }
701 
702  return hWnd;
703 }
704 
705 DWORD
706 APIENTRY
708  HWND hWnd,
709  DWORD Routine)
710 {
711  switch (Routine)
712  {
714  {
715  PWND Window;
716  DWORD HelpId;
717 
718  UserEnterShared();
719 
720  if (!(Window = UserGetWindowObject(hWnd)))
721  {
722  UserLeave();
723  return 0;
724  }
725 
727 
728  UserLeave();
729  return HelpId;
730  }
731 
733  if (IntIsWindow(hWnd))
735  return FALSE;
736  break;
737 
739  if (IntIsWindow(hWnd))
741  return FALSE;
742 
744  {
745  PWND Window;
748  {
749  Window->state |= WNDS_MSGBOX;
750  }
751  UserLeave();
752  return FALSE;
753  }
754  }
755 
756  STUB;
757 
758  return 0;
759 }
760 
761 DWORD
762 APIENTRY
764  HWND hWnd,
765  DWORD_PTR Param,
766  DWORD Routine)
767 {
768 
769  switch (Routine)
770  {
772  {
773  DWORD ret;
774 
777  UserLeave();
778  return ret;
779  }
780 
782  {
783  PWND Window;
784 
786  if (!(Window = UserGetWindowObject(hWnd)))
787  {
788  UserLeave();
789  return FALSE;
790  }
791 
792  if (Param)
793  UserSetProp(Window, gpsi->atomContextHelpIdProp, (HANDLE)Param, TRUE);
794  else
796 
797  UserLeave();
798  return TRUE;
799  }
800 
802  {
803  PWND pWnd;
805 
807 
808  if (!(pWnd = UserGetWindowObject(hWnd)))
809  {
810  UserLeave();
811  return 0;
812  }
813  UserRefObjectCo(pWnd, &Ref);
814 
815  if (pWnd->head.pti->ppi == PsGetCurrentProcessWin32Process() &&
816  pWnd->cbwndExtra >= DLGWINDOWEXTRA &&
817  !(pWnd->state & WNDS_SERVERSIDEWINDOWPROC))
818  {
819  pWnd->DialogPointer = (PVOID)Param;
820  if (Param)
821  {
822  if (!pWnd->fnid) pWnd->fnid = FNID_DIALOG;
823  pWnd->state |= WNDS_DIALOGWINDOW;
824  }
825  else
826  {
827  pWnd->fnid |= FNID_DESTROY;
828  pWnd->state &= ~WNDS_DIALOGWINDOW;
829  }
830  }
831 
832  UserDerefObjectCo(pWnd);
833  UserLeave();
834  return 0;
835  }
836 
838  {
839  PWND pWnd;
840  PNOTIFYEVENT pne;
842  pne = (PNOTIFYEVENT)Param;
843  if (hWnd)
844  pWnd = UserGetWindowObject(hWnd);
845  else
846  pWnd = NULL;
847  IntNotifyWinEvent(pne->event, pWnd, pne->idObject, pne->idChild, pne->flags);
848  UserLeave();
849  return 0;
850  }
851 
853  {
854  PWND pWnd;
856  pWnd = UserGetWindowObject(hWnd);
857  if (pWnd) IntClearWindowState(pWnd, (UINT)Param);
858  UserLeave();
859  return 0;
860  }
861 
863  {
864  PWND pWnd;
866  pWnd = UserGetWindowObject(hWnd);
867  if (pWnd) IntSetWindowState(pWnd, (UINT)Param);
868  UserLeave();
869  return 0;
870  }
871  }
872 
873  STUB;
874 
875  return 0;
876 }
877 
878 DWORD
879 APIENTRY
881  HWND hWnd,
882  DWORD_PTR Param,
883  DWORD Routine)
884 {
885  DWORD Ret = FALSE;
886  PWND Window;
888 
889  TRACE("Enter NtUserCallHwndParamLock\n");
891 
892  if (!(Window = UserGetWindowObject(hWnd)))
893  {
894  Ret = FALSE;
895  goto Exit;
896  }
897 
898  UserRefObjectCo(Window, &Ref);
899 
900  switch (Routine)
901  {
903  Ret = IntBroadcastImeShowStatusChange(Window, !!Param);
904  break;
905 
907  {
908  PREGION Rgn = REGION_LockRgn((HRGN)Param);
910  if (Rgn) REGION_UnlockRgn(Rgn);
911  break;
912  }
913  }
914 
916 
917 Exit:
918 
919  TRACE("Leave NtUserCallHwndParamLock, ret=%lu\n", Ret);
920  UserLeave();
921 
922  return Ret;
923 }
924 
925 /* EOF */
PUSER_MESSAGE_QUEUE gpqForeground
Definition: focus.c:13
#define ERROR_INVALID_PARAMETER
Definition: compat.h:101
struct _SMWP SMWP
VOID FASTCALL UserEnterShared(VOID)
Definition: ntuser.c:242
BOOL FASTCALL UserPostMessage(HWND Wnd, UINT Msg, WPARAM wParam, LPARAM lParam)
Definition: message.c:1346
#define ONEPARAM_ROUTINE_ENABLEPROCWNDGHSTING
Definition: ntuser.h:3660
IN PLARGE_INTEGER IN PLARGE_INTEGER PEPROCESS ProcessId
Definition: fatprocs.h:2709
DWORD ExStyle
Definition: ntuser.h:683
BOOL FASTCALL UserDeleteObject(HANDLE h, HANDLE_TYPE type)
Definition: object.c:717
struct _POINTL * PPOINTL
#define MAKEWPARAM(l, h)
Definition: winuser.h:3989
LONG idChild
Definition: hook.h:39
#define SC_RESTORE
Definition: winuser.h:2578
long y
Definition: polytest.cpp:48
#define DWORD_PTR
Definition: treelist.c:76
#define PsGetCurrentThread()
Definition: env_spec_w32.h:81
long x
Definition: polytest.cpp:48
BOOL FASTCALL IntReleaseCapture(VOID)
Definition: focus.c:1525
#define TRUE
Definition: types.h:120
BOOL bMouseBtnSwap
Definition: sysparams.h:82
BOOL FASTCALL co_IntRegisterLogonProcess(HANDLE ProcessId, BOOL Register)
Definition: simplecall.c:18
GLuint GLuint GLsizei count
Definition: gl.h:1545
TW_UINT32 TW_UINT16 TW_UINT16 MSG
Definition: twain.h:1827
HANDLE FASTCALL IntMsqSetWakeMask(DWORD WakeMask)
Definition: msgqueue.c:362
VOID FASTCALL IntNotifyWinEvent(DWORD Event, PWND pWnd, LONG idObject, LONG idChild, DWORD flags)
Definition: event.c:179
DWORD_PTR APIENTRY NtUserCallTwoParam(DWORD_PTR Param1, DWORD_PTR Param2, DWORD Routine)
Definition: simplecall.c:430
UINT WINAPI UserRealizePalette(HDC hDC)
Definition: painting.c:2351
PEPROCESS gpepCSRSS
Definition: csr.c:15
PVOID NTAPI PsGetCurrentThreadWin32Thread(VOID)
Definition: thread.c:805
BOOLEAN FASTCALL co_WinPosSetWindowPos(PWND Window, HWND WndInsertAfter, INT x, INT y, INT cx, INT cy, UINT flags)
Definition: winpos.c:1721
BOOL FASTCALL IntKillTimer(PWND Window, UINT_PTR IDEvent, BOOL SystemTimer)
Definition: timer.c:573
LONG NTSTATUS
Definition: precomp.h:26
DBG_DEFAULT_CHANNEL(UserMisc)
#define INT
Definition: polytest.cpp:20
_In_ ULONGLONG _In_ ULONGLONG _In_ BOOLEAN Enable
Definition: ntddpcm.h:140
static HDC
Definition: imagelist.c:92
PSERVERINFO gpsi
Definition: imm.c:17
HWND hWnd
Definition: settings.c:17
static __inline VOID UserRefObjectCo(PVOID obj, PUSER_REFERENCE_ENTRY UserReferenceEntry)
Definition: object.h:27
UINT APIENTRY UserEnumClipboardFormats(UINT fmt)
Definition: clipboard.c:443
HANDLE HWND
Definition: compat.h:19
BOOL FASTCALL UserSetActiveWindow(_In_opt_ PWND Wnd)
Definition: focus.c:1255
#define ERROR_NOT_ENOUGH_MEMORY
Definition: dderror.h:7
BOOL FASTCALL IntShowOwnedPopups(PWND OwnerWnd, BOOL fShow)
Definition: window.c:4647
int UserShowCursor(BOOL bShow)
Definition: msgqueue.c:168
UINT_PTR WPARAM
Definition: windef.h:207
#define WS_CHILD
Definition: pedump.c:617
#define SWP_NOZORDER
Definition: winuser.h:1237
#define FNID_DESTROY
Definition: ntuser.h:877
ATOM atomContextHelpIdProp
Definition: ntuser.h:1038
PREGION FASTCALL REGION_LockRgn(_In_ HRGN hrgn)
Definition: region.c:2377
#define BOOL
Definition: nt_native.h:43
#define FASTCALL
Definition: nt_native.h:50
BOOL UserSetCursorPos(INT x, INT y, DWORD flags, ULONG_PTR dwExtraInfo, BOOL Hook)
Definition: cursoricon.c:238
struct _DESKTOP * rpdesk
Definition: win32.h:93
#define DWORD
Definition: nt_native.h:44
int32_t INT
Definition: typedefs.h:58
VOID NTAPI ProbeForWrite(IN PVOID Address, IN SIZE_T Length, IN ULONG Alignment)
Definition: exintrin.c:143
WPARAM wParam
Definition: combotst.c:138
LRESULT(CALLBACK * HOOKPROC)(int, WPARAM, LPARAM)
Definition: winuser.h:2879
PVOID FASTCALL UserCreateObject(PUSER_HANDLE_TABLE ht, PDESKTOP pDesktop, PTHREADINFO pti, HANDLE *h, HANDLE_TYPE type, ULONG size)
Definition: object.c:568
DWORD dwLayout
Definition: win32.h:275
_SEH2_TRY
Definition: create.c:4226
static __inline PVOID DesktopHeapAddressToUser(PVOID lpMem)
Definition: desktop.h:308
struct _THREADINFO * GetW32ThreadInfo(VOID)
Definition: misc.c:801
BOOL APIENTRY IntUninitMessagePumpHook(VOID)
Definition: message.c:2120
DWORD APIENTRY NtUserCallHwndParamLock(HWND hWnd, DWORD_PTR Param, DWORD Routine)
Definition: simplecall.c:880
_In_ POINTL * pptl
Definition: winddi.h:3741
PMENU FASTCALL IntGetMenuObject(HMENU hMenu)
Definition: menu.c:192
#define LAYOUT_LTR
Definition: dc.c:36
#define LAYOUT_ORIENTATIONMASK
Definition: wingdi.h:1374
ULONG cbwndExtra
Definition: ntuser.h:717
Definition: window.c:28
NTSYSAPI ULONG WINAPI RtlNtStatusToDosError(NTSTATUS)
BOOL FASTCALL UserLoadApiHook(VOID)
Definition: hook.c:132
#define FALSE
Definition: types.h:117
DWORD dwSRVIFlags
Definition: ntuser.h:1022
BOOL FASTCALL co_IntDestroyCaret(PTHREADINFO Win32Thread)
Definition: caret.c:164
#define WS_MINIMIZE
Definition: pedump.c:622
DWORD fnid
Definition: ntuser.h:688
#define TWOPARAM_ROUTINE_ROS_UPDATEUISTATE
Definition: ntuser.h:3673
INT ccvr
Definition: winpos.h:25
unsigned int BOOL
Definition: ntddk_ex.h:94
DWORD UserSystemThreadProc(BOOL bRemoteProcess)
Definition: csr.c:207
static __inline VOID UserDerefObjectCo(PVOID obj)
Definition: object.h:40
BOOL FASTCALL co_MsqReplyMessage(LRESULT lResult)
Definition: msgqueue.c:2528
#define FNID_DIALOG
Definition: ntuser.h:848
BOOL IntRegisterShellHookWindow(HWND hWnd)
Definition: desktop.c:1752
BOOL FASTCALL UserUpdateUiState(PWND Wnd, WPARAM wParam)
Definition: window.c:38
ULONG cyMenu
Definition: ntuser.h:406
#define PsGetCurrentProcess
Definition: psfuncs.h:17
THRDESKHEAD head
Definition: ntuser.h:674
Definition: object.h:3
#define MAKELONG(a, b)
Definition: typedefs.h:249
DWORD APIENTRY IntGetQueueStatus(DWORD Changes)
Definition: message.c:2086
HWND APIENTRY NtUserCallHwndOpt(HWND hWnd, DWORD Routine)
Definition: simplecall.c:687
#define SWP_ASYNCWINDOWPOS
Definition: winuser.h:1243
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO
Definition: wsk.h:426
BOOL FASTCALL IntBroadcastImeShowStatusChange(PWND pImeWnd, BOOL bShow)
Definition: ime.c:2363
LONG_PTR LPARAM
Definition: windef.h:208
HWND FASTCALL IntWindowFromDC(HDC hDc)
Definition: windc.c:894
Definition: region.h:7
void * PVOID
Definition: retypes.h:9
PWND FASTCALL UserGetWindowObject(HWND hWnd)
Definition: window.c:126
VOID FASTCALL UserEnterExclusive(VOID)
Definition: ntuser.c:249
Status
Definition: gdiplustypes.h:24
HWND hwndSAS
Definition: winsta.c:24
struct _SMWP * PSMWP
#define HWNDPARAM_ROUTINE_ROS_NOTIFYWINEVENT
Definition: ntuser.h:3674
HWND FASTCALL MsqSetStateWindow(PTHREADINFO pti, ULONG Type, HWND hWnd)
Definition: msgqueue.c:2551
#define HWND_BOTTOM
Definition: winuser.h:1195
#define TRACE(s)
Definition: solgame.cpp:4
struct _THREADINFO * PTHREADINFO
Definition: ntwin32.h:6
#define WNDS_DIALOGWINDOW
Definition: ntuser.h:604
BOOL IntDeRegisterShellHookWindow(HWND hWnd)
Definition: desktop.c:1784
#define ASSERT(a)
Definition: mode.c:44
HKL FASTCALL UserGetKeyboardLayout(DWORD dwThreadId)
Definition: kbdlayout.c:506
VOID FASTCALL IntSetWindowState(PWND pWnd, UINT Flag)
Definition: misc.c:591
UINT FASTCALL co_WinPosArrangeIconicWindows(PWND parent)
Definition: winpos.c:729
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
#define EXCEPTION_EXECUTE_HANDLER
Definition: excpt.h:85
#define SWP_NOACTIVATE
Definition: winuser.h:1232
static void Exit(void)
Definition: sock.c:1331
BOOL FASTCALL IntLockSetForegroundWindow(UINT uLockCode)
Definition: focus.c:1567
Definition: winpos.h:3
UINT bHandle
Definition: winpos.h:24
HANDLE FASTCALL UserGetProp(_In_ PWND Window, _In_ ATOM Atom, _In_ BOOLEAN SystemProp)
Definition: prop.c:46
#define ObDereferenceObject
Definition: obfuncs.h:203
#define W32PF_NOWINDOWGHOSTING
Definition: win32.h:32
SPIVALUES gspv
Definition: sysparams.c:17
unsigned long DWORD
Definition: ntddk_ex.h:95
VOID FASTCALL co_IntUpdateWindows(PWND Wnd, ULONG Flags, BOOL Recurse)
Definition: painting.c:519
Definition: winpos.h:20
VOID FASTCALL MsqPostMessage(PTHREADINFO pti, MSG *Msg, BOOLEAN HardwareMessage, DWORD MessageBits, DWORD dwQEvent, LONG_PTR ExtraInfo)
Definition: msgqueue.c:1337
#define TWOPARAM_ROUTINE_SETMENUBARHEIGHT
Definition: ntuser.h:3662
unsigned __int3264 UINT_PTR
Definition: mstsclib_h.h:274
BOOL FASTCALL IntIsWindow(HWND hWnd)
Definition: window.c:180
int Window
Definition: x11stubs.h:26
#define ExAllocatePoolWithTag(hernya, size, tag)
Definition: env_spec_w32.h:350
#define WNDS_MSGBOX
Definition: ntuser.h:593
#define RDW_VALIDATE
Definition: winuser.h:1208
BOOL FASTCALL co_IntSetCaretPos(int X, int Y)
Definition: caret.c:205
NTSTATUS NTAPI PsLookupProcessByProcessId(IN HANDLE ProcessId, OUT PEPROCESS *Process)
Definition: process.c:919
int ret
DWORD_PTR APIENTRY NtUserCallNoParam(DWORD Routine)
Definition: simplecall.c:59
DWORD event
Definition: hook.h:37
DWORD APIENTRY NtUserCallHwndParam(HWND hWnd, DWORD_PTR Param, DWORD Routine)
Definition: simplecall.c:763
#define DLGWINDOWEXTRA
Definition: winuser.h:2545
BOOL gfIMEShowStatus
Definition: ime.c:44
PVOID *typedef PHANDLE
Definition: ntsecpkg.h:454
BOOL APIENTRY IntInitMessagePumpHook(VOID)
Definition: message.c:2107
#define SWP_FRAMECHANGED
Definition: winuser.h:1230
#define WS_EX_TOPMOST
Definition: pedump.c:647
#define ERROR_INVALID_ACCESS
Definition: winerror.h:115
#define WM_LOGONNOTIFY
Definition: undocuser.h:37
uint32_t DWORD_PTR
Definition: typedefs.h:65
VOID FASTCALL SetLastNtError(NTSTATUS Status)
Definition: error.c:37
BOOL FASTCALL IntEnableWindow(HWND hWnd, BOOL bEnable)
Definition: window.c:224
POINT ptLast
Definition: win32.h:130
#define SWP_NOSIZE
Definition: winuser.h:1235
#define ERR(fmt,...)
Definition: debug.h:110
Definition: ntuser.h:672
struct _USER_MESSAGE_QUEUE * MessageQueue
Definition: win32.h:90
VOID FASTCALL UserLeave(VOID)
Definition: ntuser.c:258
_SEH2_END
Definition: create.c:4400
#define TWOPARAM_ROUTINE_SETGUITHRDHANDLE
Definition: ntuser.h:3663
#define ONEPARAM_ROUTINE_GETDESKTOPMAPPING
Definition: ntuser.h:3661
#define STUB
Definition: kernel32.h:27
BOOL FASTCALL co_UserRedrawWindow(PWND Window, const RECTL *UpdateRect, PREGION UpdateRgn, ULONG Flags)
Definition: painting.c:888
#define RDW_ALLCHILDREN
Definition: winuser.h:1211
INT ccvrAlloc
Definition: winpos.h:26
PWND FASTCALL IntGetParent(PWND Wnd)
Definition: window.c:208
DWORD state
Definition: ntuser.h:680
#define QS_POSTMESSAGE
Definition: winuser.h:871
#define HWND_DESKTOP
Definition: winuser.h:1199
#define WS_POPUP
Definition: pedump.c:616
unsigned int UINT
Definition: ndis.h:50
#define NULL
Definition: types.h:112
PVOID NTAPI PsGetCurrentProcessWin32Process(VOID)
Definition: process.c:1183
BOOL UserPaintCaption(PWND pWnd, INT Flags)
Definition: defwnd.c:396
HANDLE IntCreateCurIconHandle(BOOLEAN Animated)
Definition: cursoricon.c:281
BOOL FASTCALL IntMsqClearWakeMask(VOID)
Definition: msgqueue.c:392
INT FASTCALL UserReleaseDC(PWND Window, HDC hDc, BOOL EndPaint)
Definition: windc.c:918
VOID co_IntShellHookNotify(WPARAM Message, WPARAM wParam, LPARAM lParam)
Definition: desktop.c:1692
BOOL FASTCALL IntUnhookWindowsHook(int HookId, HOOKPROC pfnFilterProc)
Definition: hook.c:1320
DWORD * PDWORD
Definition: pedump.c:68
#define USERTAG_SWP
Definition: tags.h:281
DWORD_PTR APIENTRY NtUserCallOneParam(DWORD_PTR Param, DWORD Routine)
Definition: simplecall.c:149
DWORD FASTCALL UserGetKeyboardType(DWORD dwTypeFlag)
Definition: keyboard.c:1551
#define HWNDLOCK_ROUTINE_SETFOREGROUNDWINDOWMOUSE
Definition: ntuser.h:3664
#define msg(x)
Definition: auth_time.c:54
VOID FASTCALL REGION_UnlockRgn(_In_ PREGION prgn)
Definition: region.c:2392
#define SM_SWAPBUTTON
Definition: winuser.h:978
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ PLARGE_INTEGER _In_ ULONG _In_ PFILE_OBJECT _In_ PVOID Process
Definition: fsrtlfuncs.h:219
VOID FASTCALL MsqPostQuitMessage(PTHREADINFO pti, ULONG ExitCode)
Definition: msgqueue.c:1379
#define SRVINFO_IMM32
Definition: ntuser.h:928
PCVR acvr
Definition: winpos.h:27
BOOL APIENTRY NtUserCallHwndLock(HWND hWnd, DWORD Routine)
Definition: simplecall.c:581
BOOL FASTCALL IntAllowSetForegroundWindow(DWORD dwProcessId)
Definition: focus.c:1598
unsigned int ULONG
Definition: retypes.h:1
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262
#define SWP_NOMOVE
Definition: winuser.h:1234
LPARAM FASTCALL MsqSetMessageExtraInfo(LPARAM lParam)
Definition: msgqueue.c:2491
#define NOPARAM_ROUTINE_ISCONSOLEMODE
Definition: ntuser.h:3659
BOOL FASTCALL co_IntSetForegroundWindowMouse(PWND Window)
Definition: focus.c:1556
#define _SEH2_EXCEPT(...)
Definition: pseh2_64.h:40
PDESKTOP FASTCALL IntGetActiveDesktop(VOID)
Definition: desktop.c:1262
HDC ScreenDeviceContext
Definition: desktop.c:36
#define _SEH2_GetExceptionCode()
Definition: pseh2_64.h:165
#define LN_MESSAGE_BEEP
Definition: undocuser.h:119
DWORD APIENTRY NtUserCallHwnd(HWND hWnd, DWORD Routine)
Definition: simplecall.c:707
VOID FASTCALL IntClearWindowState(PWND pWnd, UINT Flag)
Definition: misc.c:612
HMENU FASTCALL UserCreateMenu(PDESKTOP Desktop, BOOL PopupMenu)
Definition: menu.c:5030
LONG_PTR LRESULT
Definition: windef.h:209
_In_ LONG _In_ HWND hwnd
Definition: winddi.h:4022
BOOL FASTCALL co_IntSetForegroundWindow(PWND Window)
Definition: focus.c:1545
PVOID DialogPointer
Definition: ntuser.h:745
PUSER_HANDLE_TABLE gHandleTable
Definition: object.c:13
#define WNDS_SERVERSIDEWINDOWPROC
Definition: ntuser.h:606
HANDLE FASTCALL UserRemoveProp(_In_ PWND Window, _In_ ATOM Atom, _In_ BOOLEAN SystemProp)
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
Definition: ordinal.c:60
#define WM_SYSCOMMAND
Definition: winuser.h:1728
DWORD flags
Definition: hook.h:40
struct _NOTIFYEVENT * PNOTIFYEVENT
ENGAPI VOID APIENTRY EngSetLastError(_In_ ULONG iError)
Definition: error.c:28
LONG idObject
Definition: hook.h:38
HANDLE gpidLogon
Definition: simplecall.c:15
#define APIENTRY
Definition: api.h:79
BOOL FASTCALL IntSetCaretBlinkTime(UINT uMSeconds)
Definition: caret.c:188
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
Definition: typeof.h:31