ReactOS  0.4.15-dev-5459-gb85f005
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  if (UserIsIMMEnabled())
129  else
131 
132  Result = TRUE; // Always return TRUE.
133  break;
134 
135  default:
136  ERR("Calling invalid routine number 0x%x in NtUserCallNoParam\n", Routine);
138  break;
139  }
140 
141  TRACE("Leave NtUserCallNoParam, ret=%p\n",(PVOID)Result);
142  UserLeave();
143 
144  return Result;
145 }
146 
147 
148 /*
149  * @implemented
150  */
151 DWORD_PTR
152 APIENTRY
154  DWORD_PTR Param,
155  DWORD Routine)
156 {
158 
159  TRACE("Enter NtUserCallOneParam\n");
160 
162 
163  switch (Routine)
164  {
166  {
167  PTHREADINFO pti;
169  MsqPostQuitMessage(pti, Param);
170  Result = TRUE;
171  break;
172  }
173 
175  {
176  PSMWP psmwp;
177  HDWP hDwp = NULL;
178  INT count = (INT)Param;
179 
180  if (count < 0)
181  {
183  Result = 0;
184  break;
185  }
186 
187  /* Windows allows zero count, in which case it allocates context for 8 moves */
188  if (count == 0) count = 8;
189 
191  NULL,
192  NULL,
193  (PHANDLE)&hDwp,
195  sizeof(SMWP));
196  if (!psmwp)
197  {
198  Result = 0;
199  break;
200  }
201 
203  if (!psmwp->acvr)
204  {
206  Result = 0;
207  break;
208  }
209 
210  RtlZeroMemory(psmwp->acvr, count * sizeof(CVR));
211  psmwp->bHandle = TRUE;
212  psmwp->ccvr = 0; // actualCount
213  psmwp->ccvrAlloc = count; // suggestedCount
214  Result = (DWORD_PTR)hDwp;
215  break;
216  }
217 
219  Result = (DWORD_PTR)UserShowCursor((BOOL)Param);
220  break;
221 
223  {
224  PTHREADINFO ti;
225  ti = GetW32ThreadInfo();
226  if (ti != NULL)
227  {
228  /* Try convert the pointer to a user mode pointer if the desktop is
229  mapped into the process */
231  }
232  else
233  {
234  Result = 0;
235  }
236  break;
237  }
238 
240  Result = (DWORD_PTR)IntWindowFromDC((HDC)Param);
241  break;
242 
244  {
246  gspv.bMouseBtnSwap = Param ? TRUE : FALSE;
247  gpsi->aiSysMet[SM_SWAPBUTTON] = gspv.bMouseBtnSwap;
248  break;
249  }
250 
253  break;
254 
257  break;
258 
260  {
261  if (!(Result = (DWORD_PTR)IntCreateCurIconHandle((DWORD)Param)))
262  {
264  Result = 0;
265  }
266  break;
267  }
268 
270  {
271  BOOL Enable;
273 
274  if (Process != NULL)
275  {
276  Enable = (BOOL)(Param != 0);
277 
278  if (Enable)
279  {
280  Process->W32PF_flags &= ~W32PF_NOWINDOWGHOSTING;
281  }
282  else
283  {
284  Process->W32PF_flags |= W32PF_NOWINDOWGHOSTING;
285  }
286 
287  Result = TRUE;
288  break;
289  }
290 
291  Result = FALSE;
292  break;
293  }
294 
297  break;
298 
300  Result = UserGetKeyboardType(Param);
301  break;
302 
305  break;
306 
308  Result = UserReleaseDC(NULL, (HDC) Param, FALSE);
309  break;
310 
312  Result = UserRealizePalette((HDC) Param);
313  break;
314 
316  {
317  Result = IntGetQueueStatus((DWORD)Param);
318  break;
319  }
320 
322  /* FIXME: Should use UserEnterShared */
324  break;
325 
326  case ONEPARAM_ROUTINE_GETCURSORPOS:
327  {
328  PPOINTL pptl;
330  Result = TRUE;
331  if (pti->rpdesk != IntGetActiveDesktop())
332  {
333  Result = FALSE;
334  break;
335  }
336  _SEH2_TRY
337  {
338  ProbeForWrite((POINT*)Param,sizeof(POINT),1);
339  pptl = (PPOINTL)Param;
340  *pptl = gpsi->ptCursor;
341  }
343  {
344  Result = FALSE;
345  }
346  _SEH2_END;
347  break;
348  }
349 
351  {
352  PPROCESSINFO ppi;
353  if (Param & LAYOUT_ORIENTATIONMASK || Param == LAYOUT_LTR)
354  {
356  ppi->dwLayout = Param;
357  Result = TRUE;
358  break;
359  }
361  Result = FALSE;
362  break;
363  }
364 
366  {
367  PPROCESSINFO ppi;
368  PDWORD pdwLayout;
369  Result = TRUE;
370 
372  {
374  Result = FALSE;
375  break;
376  }
377 
379  _SEH2_TRY
380  {
381  pdwLayout = (PDWORD)Param;
382  *pdwLayout = ppi->dwLayout;
383  }
385  {
387  Result = FALSE;
388  }
389  _SEH2_END;
390  break;
391  }
392 
395  break;
396 
398  /* TODO: Implement sound sentry */
400  break;
401 
402  case ONEPARAM_ROUTINE_CREATESYSTEMTHREADS:
403  Result = UserSystemThreadProc(Param);
404  break;
405 
408  break;
409 
412  break;
413 
414  default:
415  ERR("Calling invalid routine number 0x%x in NtUserCallOneParam(), Param=0x%x\n",
416  Routine, Param);
418  Result = 0;
419  break;
420  }
421 
422  TRACE("Leave NtUserCallOneParam, ret=%p\n", (PVOID)Result);
423  UserLeave();
424 
425  return Result;
426 }
427 
428 
429 /*
430  * @implemented
431  */
432 DWORD_PTR
433 APIENTRY
435  DWORD_PTR Param1,
436  DWORD_PTR Param2,
437  DWORD Routine)
438 {
439  PWND Window;
440  DWORD_PTR Ret;
441  TRACE("Enter NtUserCallTwoParam\n");
443 
444  switch (Routine)
445  {
447  {
448  Window = UserGetWindowObject((HWND)Param1);
449  Ret = (DWORD_PTR)UserPaintCaption(Window, (INT)Param2);
450  break;
451  }
452 
454  {
455  PMENU MenuObject = IntGetMenuObject((HMENU)Param1);
456  if (!MenuObject)
457  {
458  Ret = 0;
459  break;
460  }
461 
462  if (Param2 > 0)
463  {
464  Ret = (MenuObject->cyMenu == (int)Param2);
465  MenuObject->cyMenu = (int)Param2;
466  }
467  else
468  Ret = (DWORD_PTR)MenuObject->cyMenu;
469  IntReleaseMenuObject(MenuObject);
470  break;
471  }
472 
474  {
476  ASSERT(pti->MessageQueue);
477  Ret = (DWORD_PTR)MsqSetStateWindow(pti, (ULONG)Param1, (HWND)Param2);
478  break;
479  }
480 
482  Ret = IntEnableWindow((HWND)Param1, (BOOL)Param2);
483  break;
484 
486  {
487  Window = UserGetWindowObject((HWND)Param1);
488  if (!Window)
489  {
490  Ret = 0;
491  break;
492  }
493 
494  Ret = (DWORD_PTR)IntShowOwnedPopups(Window, (BOOL)Param2);
495  break;
496  }
497 
499  {
500  WPARAM wParam;
501  Window = UserGetWindowObject((HWND)Param1);
502  if (!Window)
503  {
504  Ret = 0;
505  break;
506  }
507 
508  /* Unpack wParam */
509  wParam = MAKEWPARAM((Param2 >> 3) & 0x3,
510  Param2 & (UISF_HIDEFOCUS | UISF_HIDEACCEL | UISF_ACTIVE));
511 
513  break;
514  }
515 
517  {
518  HWND hwnd = (HWND)Param1;
519  BOOL fAltTab = (BOOL)Param2;
520  Ret = 0;
522  if (!Window)
523  break;
524 
525  if (gpqForeground && !fAltTab)
526  {
527  PWND pwndActive = gpqForeground->spwndActive;
528  if (pwndActive && !(pwndActive->ExStyle & WS_EX_TOPMOST))
529  {
530  co_WinPosSetWindowPos(pwndActive, HWND_BOTTOM, 0, 0, 0, 0,
533  }
534 
536  break;
537  }
538 
540 
541  if (fAltTab && (Window->style & WS_MINIMIZE))
542  {
543  MSG msg = { Window->head.h, WM_SYSCOMMAND, SC_RESTORE, 0 };
544  MsqPostMessage(Window->head.pti, &msg, FALSE, QS_POSTMESSAGE, 0, 0);
545  }
546  break;
547  }
548 
550  Ret = (DWORD_PTR)co_IntSetCaretPos((int)Param1, (int)Param2);
551  break;
552 
554  Ret = (DWORD_PTR)co_IntRegisterLogonProcess((HANDLE)Param1, (BOOL)Param2);
555  break;
556 
558  Ret = (DWORD_PTR)UserSetCursorPos((int)Param1, (int)Param2, 0, 0, FALSE);
559  break;
560 
562  Ret = IntUnhookWindowsHook((int)Param1, (HOOKPROC)Param2);
563  break;
564 
565  default:
566  ERR("Calling invalid routine number 0x%x in NtUserCallTwoParam(), Param1=0x%x Parm2=0x%x\n",
567  Routine, Param1, Param2);
569  Ret = 0;
570  }
571 
572 
573  TRACE("Leave NtUserCallTwoParam, ret=%p\n", (PVOID)Ret);
574  UserLeave();
575 
576  return Ret;
577 }
578 
579 
580 /*
581  * @unimplemented
582  */
583 BOOL
584 APIENTRY
586  HWND hWnd,
587  DWORD Routine)
588 {
589  BOOL Ret = FALSE;
590  PWND Window;
592 
593  TRACE("Enter NtUserCallHwndLock\n");
595 
596  if (!(Window = UserGetWindowObject(hWnd)))
597  {
598  Ret = FALSE;
599  goto Exit;
600  }
601 
602  UserRefObjectCo(Window, &Ref);
603 
604  /* FIXME: Routine can be 0x53 - 0x5E */
605  switch (Routine)
606  {
609  break;
610 
612  {
613  TRACE("HWNDLOCK_ROUTINE_DRAWMENUBAR\n");
614  Ret = TRUE;
615  if ((Window->style & (WS_CHILD | WS_POPUP)) != WS_CHILD)
617  HWND_DESKTOP,
618  0, 0, 0, 0,
619  SWP_NOSIZE |
620  SWP_NOMOVE |
621  SWP_NOZORDER |
624  break;
625  }
626 
629  HWND_DESKTOP,
630  0, 0, 0, 0,
631  SWP_NOSIZE |
632  SWP_NOMOVE |
633  SWP_NOZORDER |
636  Ret = TRUE;
637  break;
638 
641  HWND_DESKTOP,
642  0, 0, 0, 0,
643  SWP_NOSIZE |
644  SWP_NOMOVE |
645  SWP_NOZORDER |
648  if (!Window->spwndOwner && !IntGetParent(Window))
649  {
650  co_IntShellHookNotify(HSHELL_REDRAW, (WPARAM)hWnd, FALSE); // FIXME Flashing?
651  }
652  Ret = TRUE;
653  break;
654 
656  TRACE("co_IntSetForegroundWindow 1 0x%p\n", hWnd);
658  TRACE("co_IntSetForegroundWindow 2 0x%p\n", hWnd);
659  break;
660 
662  TRACE("co_IntSetForegroundWindow M 1 0x%p\n", hWnd);
664  TRACE("co_IntSetForegroundWindow M 2 0x%p\n", hWnd);
665  break;
666 
669  Ret = TRUE;
670  break;
671 
674  break;
675  }
676 
678 
679 Exit:
680  TRACE("Leave NtUserCallHwndLock, ret=%u\n", Ret);
681  UserLeave();
682 
683  return Ret;
684 }
685 
686 /*
687  * @unimplemented
688  */
689 HWND
690 APIENTRY
692  HWND hWnd,
693  DWORD Routine)
694 {
695  switch (Routine)
696  {
698  GetW32ThreadInfo()->pDeskInfo->hProgmanWindow = hWnd;
699  break;
700 
702  GetW32ThreadInfo()->pDeskInfo->hTaskManWindow = hWnd;
703  break;
704  }
705 
706  return hWnd;
707 }
708 
709 DWORD
710 APIENTRY
712  HWND hWnd,
713  DWORD Routine)
714 {
715  switch (Routine)
716  {
718  {
719  PWND Window;
720  DWORD HelpId;
721 
722  UserEnterShared();
723 
724  if (!(Window = UserGetWindowObject(hWnd)))
725  {
726  UserLeave();
727  return 0;
728  }
729 
731 
732  UserLeave();
733  return HelpId;
734  }
735 
737  if (IntIsWindow(hWnd))
739  return FALSE;
740  break;
741 
743  if (IntIsWindow(hWnd))
745  return FALSE;
746 
748  {
749  PWND Window;
752  {
753  Window->state |= WNDS_MSGBOX;
754  }
755  UserLeave();
756  return FALSE;
757  }
758  }
759 
760  STUB;
761 
762  return 0;
763 }
764 
765 DWORD
766 APIENTRY
768  HWND hWnd,
769  DWORD_PTR Param,
770  DWORD Routine)
771 {
772 
773  switch (Routine)
774  {
776  {
777  DWORD ret;
778 
781  UserLeave();
782  return ret;
783  }
784 
786  {
787  PWND Window;
788 
790  if (!(Window = UserGetWindowObject(hWnd)))
791  {
792  UserLeave();
793  return FALSE;
794  }
795 
796  if (Param)
797  UserSetProp(Window, gpsi->atomContextHelpIdProp, (HANDLE)Param, TRUE);
798  else
800 
801  UserLeave();
802  return TRUE;
803  }
804 
806  {
807  PWND pWnd;
809 
811 
812  if (!(pWnd = UserGetWindowObject(hWnd)))
813  {
814  UserLeave();
815  return 0;
816  }
817  UserRefObjectCo(pWnd, &Ref);
818 
819  if (pWnd->head.pti->ppi == PsGetCurrentProcessWin32Process() &&
820  pWnd->cbwndExtra >= DLGWINDOWEXTRA &&
821  !(pWnd->state & WNDS_SERVERSIDEWINDOWPROC))
822  {
823  pWnd->DialogPointer = (PVOID)Param;
824  if (Param)
825  {
826  if (!pWnd->fnid) pWnd->fnid = FNID_DIALOG;
827  pWnd->state |= WNDS_DIALOGWINDOW;
828  }
829  else
830  {
831  pWnd->fnid |= FNID_DESTROY;
832  pWnd->state &= ~WNDS_DIALOGWINDOW;
833  }
834  }
835 
836  UserDerefObjectCo(pWnd);
837  UserLeave();
838  return 0;
839  }
840 
842  {
843  PWND pWnd;
844  PNOTIFYEVENT pne;
846  pne = (PNOTIFYEVENT)Param;
847  if (hWnd)
848  pWnd = UserGetWindowObject(hWnd);
849  else
850  pWnd = NULL;
851  IntNotifyWinEvent(pne->event, pWnd, pne->idObject, pne->idChild, pne->flags);
852  UserLeave();
853  return 0;
854  }
855 
857  {
858  PWND pWnd;
860  pWnd = UserGetWindowObject(hWnd);
861  if (pWnd) IntClearWindowState(pWnd, (UINT)Param);
862  UserLeave();
863  return 0;
864  }
865 
867  {
868  PWND pWnd;
870  pWnd = UserGetWindowObject(hWnd);
871  if (pWnd) IntSetWindowState(pWnd, (UINT)Param);
872  UserLeave();
873  return 0;
874  }
875  }
876 
877  STUB;
878 
879  return 0;
880 }
881 
882 DWORD
883 APIENTRY
885  HWND hWnd,
886  DWORD_PTR Param,
887  DWORD Routine)
888 {
889  DWORD Ret = FALSE;
890  PWND Window;
892 
893  TRACE("Enter NtUserCallHwndParamLock\n");
895 
896  if (!(Window = UserGetWindowObject(hWnd)))
897  {
898  Ret = FALSE;
899  goto Exit;
900  }
901 
902  UserRefObjectCo(Window, &Ref);
903 
904  switch (Routine)
905  {
907  Ret = IntBroadcastImeShowStatusChange(Window, !!Param);
908  break;
909 
911  {
912  PREGION Rgn = REGION_LockRgn((HRGN)Param);
914  if (Rgn) REGION_UnlockRgn(Rgn);
915  break;
916  }
917  }
918 
920 
921 Exit:
922 
923  TRACE("Leave NtUserCallHwndParamLock, ret=%lu\n", Ret);
924  UserLeave();
925 
926  return Ret;
927 }
928 
929 /* EOF */
_SEH2_TRY
Definition: create.c:4226
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:238
BOOL FASTCALL UserPostMessage(HWND Wnd, UINT Msg, WPARAM wParam, LPARAM lParam)
Definition: message.c:1346
#define ONEPARAM_ROUTINE_ENABLEPROCWNDGHSTING
Definition: ntuser.h:3693
IN PLARGE_INTEGER IN PLARGE_INTEGER PEPROCESS ProcessId
Definition: fatprocs.h:2709
DWORD ExStyle
Definition: ntuser.h:699
BOOL FASTCALL UserDeleteObject(HANDLE h, HANDLE_TYPE type)
Definition: object.c:717
struct _POINTL * PPOINTL
#define MAKEWPARAM(l, h)
Definition: winuser.h:3999
LONG idChild
Definition: hook.h:39
#define SC_RESTORE
Definition: winuser.h:2588
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:1530
#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:434
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:1748
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:18
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:1260
#define ERROR_NOT_ENOUGH_MEMORY
Definition: dderror.h:7
BOOL FASTCALL IntShowOwnedPopups(PWND OwnerWnd, BOOL fShow)
Definition: window.c:4656
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
_SEH2_END
Definition: create.c:4400
#define FNID_DESTROY
Definition: ntuser.h:893
ATOM atomContextHelpIdProp
Definition: ntuser.h:1062
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:92
#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:2889
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:279
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:884
_In_ POINTL * pptl
Definition: winddi.h:3741
PMENU FASTCALL IntGetMenuObject(HMENU hMenu)
Definition: menu.c:194
#define LAYOUT_LTR
Definition: dc.c:36
#define LAYOUT_ORIENTATIONMASK
Definition: wingdi.h:1374
ULONG cbwndExtra
Definition: ntuser.h:733
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:1046
BOOL FASTCALL co_IntDestroyCaret(PTHREADINFO Win32Thread)
Definition: caret.c:159
#define WS_MINIMIZE
Definition: pedump.c:622
DWORD fnid
Definition: ntuser.h:704
#define TWOPARAM_ROUTINE_ROS_UPDATEUISTATE
Definition: ntuser.h:3706
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:864
BOOL IntRegisterShellHookWindow(HWND hWnd)
Definition: desktop.c:1752
BOOL FASTCALL UserUpdateUiState(PWND Wnd, WPARAM wParam)
Definition: window.c:38
ULONG cyMenu
Definition: ntuser.h:418
#define PsGetCurrentProcess
Definition: psfuncs.h:17
THRDESKHEAD head
Definition: ntuser.h:690
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:691
#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:2388
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:245
Status
Definition: gdiplustypes.h:24
HWND hwndSAS
Definition: winsta.c:24
struct _SMWP * PSMWP
#define HWNDPARAM_ROUTINE_ROS_NOTIFYWINEVENT
Definition: ntuser.h:3707
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:616
BOOL IntDeRegisterShellHookWindow(HWND hWnd)
Definition: desktop.c:1784
#define ASSERT(a)
Definition: mode.c:44
HKL FASTCALL UserGetKeyboardLayout(DWORD dwThreadId)
Definition: kbdlayout.c:857
VOID FASTCALL IntSetWindowState(PWND pWnd, UINT Flag)
Definition: misc.c:591
UINT FASTCALL co_WinPosArrangeIconicWindows(PWND parent)
Definition: winpos.c:730
#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:1572
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:3695
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:605
#define RDW_VALIDATE
Definition: winuser.h:1208
BOOL FASTCALL co_IntSetCaretPos(int X, int Y)
Definition: caret.c:193
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:767
#define DLGWINDOWEXTRA
Definition: winuser.h:2555
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
BOOL FASTCALL UserIsIMMEnabled(VOID)
Definition: metric.c:22
POINT ptLast
Definition: win32.h:129
#define SWP_NOSIZE
Definition: winuser.h:1235
#define ERR(fmt,...)
Definition: debug.h:110
Definition: ntuser.h:688
struct _USER_MESSAGE_QUEUE * MessageQueue
Definition: win32.h:89
VOID FASTCALL UserLeave(VOID)
Definition: ntuser.c:254
#define TWOPARAM_ROUTINE_SETGUITHRDHANDLE
Definition: ntuser.h:3696
#define ONEPARAM_ROUTINE_GETDESKTOPMAPPING
Definition: ntuser.h:3694
#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:696
#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:399
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:153
DWORD FASTCALL UserGetKeyboardType(DWORD dwTypeFlag)
Definition: keyboard.c:1560
#define HWNDLOCK_ROUTINE_SETFOREGROUNDWINDOWMOUSE
Definition: ntuser.h:3697
#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:944
PCVR acvr
Definition: winpos.h:27
BOOL APIENTRY NtUserCallHwndLock(HWND hWnd, DWORD Routine)
Definition: simplecall.c:585
BOOL FASTCALL IntAllowSetForegroundWindow(DWORD dwProcessId)
Definition: focus.c:1603
unsigned int ULONG
Definition: retypes.h:1
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262
#define SWP_NOMOVE
Definition: winuser.h:1234
VOID FASTCALL IntCheckImeShowStatusInThread(PWND pImeWnd)
Definition: ime.c:2399
LPARAM FASTCALL MsqSetMessageExtraInfo(LPARAM lParam)
Definition: msgqueue.c:2491
#define NOPARAM_ROUTINE_ISCONSOLEMODE
Definition: ntuser.h:3692
BOOL FASTCALL co_IntSetForegroundWindowMouse(PWND Window)
Definition: focus.c:1561
#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:120
DWORD APIENTRY NtUserCallHwnd(HWND hWnd, DWORD Routine)
Definition: simplecall.c:711
VOID FASTCALL IntClearWindowState(PWND pWnd, UINT Flag)
Definition: misc.c:612
HMENU FASTCALL UserCreateMenu(PDESKTOP Desktop, BOOL PopupMenu)
Definition: menu.c:5032
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:1550
PVOID DialogPointer
Definition: ntuser.h:761
PUSER_HANDLE_TABLE gHandleTable
Definition: object.c:13
#define WNDS_SERVERSIDEWINDOWPROC
Definition: ntuser.h:618
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:1731
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:183
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
Definition: typeof.h:31