ReactOS 0.4.16-dev-338-g34e76ad
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
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 */
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
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
241 break;
242
244 {
246 gspv.bMouseBtnSwap = Param ? TRUE : FALSE;
248 break;
249 }
250
253 break;
254
257 break;
258
260 {
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
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 {
318 break;
319 }
320
322 /* FIXME: Should use UserEnterShared */
324 break;
325
326 case ONEPARAM_ROUTINE_GETCURSORPOS:
327 {
330 Result = TRUE;
331 if (pti->rpdesk != IntGetActiveDesktop())
332 {
333 Result = FALSE;
334 break;
335 }
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
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:
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 */
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 {
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 {
488 if (!Window)
489 {
490 Ret = 0;
491 break;
492 }
493
494 Ret = (DWORD_PTR)IntShowOwnedPopups(Window, (BOOL)Param2);
495 break;
496 }
497
499 {
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 {
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 */
583BOOL
586 HWND hWnd,
587 DWORD Routine)
588{
589 BOOL Ret = FALSE;
590 PWND Window;
592
593 TRACE("Enter NtUserCallHwndLock\n");
595
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)
618 0, 0, 0, 0,
619 SWP_NOSIZE |
620 SWP_NOMOVE |
624 break;
625 }
626
630 0, 0, 0, 0,
631 SWP_NOSIZE |
632 SWP_NOMOVE |
636 Ret = TRUE;
637 break;
638
642 0, 0, 0, 0,
643 SWP_NOSIZE |
644 SWP_NOMOVE |
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
679Exit:
680 TRACE("Leave NtUserCallHwndLock, ret=%u\n", Ret);
681 UserLeave();
682
683 return Ret;
684}
685
686/*
687 * @unimplemented
688 */
689HWND
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
709DWORD
712 HWND hWnd,
713 DWORD Routine)
714{
715 switch (Routine)
716 {
718 {
719 PWND Window;
720 DWORD HelpId;
721
723
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
765DWORD
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
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 &&
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)
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;
861 if (pWnd) IntClearWindowState(pWnd, (UINT)Param);
862 UserLeave();
863 return 0;
864 }
865
867 {
868 PWND pWnd;
871 if (pWnd) IntSetWindowState(pWnd, (UINT)Param);
872 UserLeave();
873 return 0;
874 }
875 }
876
877 STUB;
878
879 return 0;
880}
881
882DWORD
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
897 {
898 Ret = FALSE;
899 goto Exit;
900 }
901
902 UserRefObjectCo(Window, &Ref);
903
904 switch (Routine)
905 {
908 break;
909
911 {
912 PREGION Rgn = REGION_LockRgn((HRGN)Param);
914 if (Rgn) REGION_UnlockRgn(Rgn);
915 break;
916 }
917 }
918
920
921Exit:
922
923 TRACE("Leave NtUserCallHwndParamLock, ret=%lu\n", Ret);
924 UserLeave();
925
926 return Ret;
927}
928
929/* EOF */
#define msg(x)
Definition: auth_time.c:54
HWND hWnd
Definition: settings.c:17
LONG NTSTATUS
Definition: precomp.h:26
#define ERR(fmt,...)
Definition: precomp.h:57
#define HandleToUlong(h)
Definition: basetsd.h:79
#define DBG_DEFAULT_CHANNEL(ch)
Definition: debug.h:106
WPARAM wParam
Definition: combotst.c:138
PEPROCESS gpepCSRSS
Definition: csr.c:15
DWORD UserSystemThreadProc(BOOL bRemoteProcess)
Definition: csr.c:207
HWND FASTCALL IntWindowFromDC(HDC hDc)
Definition: windc.c:894
#define ERROR_NOT_ENOUGH_MEMORY
Definition: dderror.h:7
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:33
#define APIENTRY
Definition: api.h:79
#define ERROR_INVALID_PARAMETER
Definition: compat.h:101
HANDLE HWND
Definition: compat.h:19
PSERVERINFO gpsi
Definition: imm.c:18
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
Definition: typeof.h:31
#define ExAllocatePoolWithTag(hernya, size, tag)
Definition: env_spec_w32.h:350
#define PsGetCurrentThread()
Definition: env_spec_w32.h:81
#define PagedPool
Definition: env_spec_w32.h:308
VOID NTAPI ProbeForWrite(IN PVOID Address, IN SIZE_T Length, IN ULONG Alignment)
Definition: exintrin.c:143
IN PLARGE_INTEGER IN PLARGE_INTEGER PEPROCESS ProcessId
Definition: fatprocs.h:2712
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
BOOL FASTCALL IntLockSetForegroundWindow(UINT uLockCode)
Definition: focus.c:1574
BOOL FASTCALL IntAllowSetForegroundWindow(DWORD dwProcessId)
Definition: focus.c:1605
BOOL FASTCALL UserSetActiveWindow(_In_opt_ PWND Wnd)
Definition: focus.c:1263
PUSER_MESSAGE_QUEUE gpqForeground
Definition: focus.c:13
BOOL FASTCALL co_IntSetForegroundWindow(PWND Window)
Definition: focus.c:1552
BOOL FASTCALL IntReleaseCapture(VOID)
Definition: focus.c:1532
BOOL FASTCALL co_IntSetForegroundWindowMouse(PWND Window)
Definition: focus.c:1563
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ PLARGE_INTEGER _In_ ULONG _In_ PFILE_OBJECT _In_ PVOID Process
Definition: fsrtlfuncs.h:223
UINT WINAPI UserRealizePalette(HDC hDC)
Definition: painting.c:2346
Status
Definition: gdiplustypes.h:25
GLuint GLuint GLsizei count
Definition: gl.h:1545
struct _NOTIFYEVENT * PNOTIFYEVENT
#define FNID_DESTROY
Definition: ntuser.h:898
#define TWOPARAM_ROUTINE_SETGUITHRDHANDLE
Definition: ntuser.h:3584
#define WNDS_SERVERSIDEWINDOWPROC
Definition: ntuser.h:623
#define UserHMGetHandle(obj)
Definition: ntuser.h:230
struct _THREADINFO * GetW32ThreadInfo(VOID)
Definition: misc.c:807
#define FNID_DIALOG
Definition: ntuser.h:869
#define HWNDPARAM_ROUTINE_ROS_NOTIFYWINEVENT
Definition: ntuser.h:3595
#define NOPARAM_ROUTINE_ISCONSOLEMODE
Definition: ntuser.h:3580
#define ONEPARAM_ROUTINE_ENABLEPROCWNDGHSTING
Definition: ntuser.h:3581
#define ONEPARAM_ROUTINE_GETDESKTOPMAPPING
Definition: ntuser.h:3582
#define TWOPARAM_ROUTINE_ROS_UPDATEUISTATE
Definition: ntuser.h:3594
@ TWOPARAM_ROUTINE_REGISTERLOGONPROCESS
Definition: ntuser.h:1655
@ TWOPARAM_ROUTINE_SHOWOWNEDPOPUPS
Definition: ntuser.h:1641
@ HWNDLOCK_ROUTINE_UPDATEWINDOW
Definition: ntuser.h:1637
@ TWOPARAM_ROUTINE_UNHOOKWINDOWSHOOK
Definition: ntuser.h:1669
@ NOPARAM_ROUTINE_INIT_MESSAGE_PUMP
Definition: ntuser.h:1544
@ NOPARAM_ROUTINE_ZAPACTIVEANDFOUS
Definition: ntuser.h:1529
@ TWOPARAM_ROUTINE_REDRAWTITLE
Definition: ntuser.h:1640
@ ONEPARAM_ROUTINE_GETKEYBOARDTYPE
Definition: ntuser.h:1567
@ TWOPARAM_ROUTINE_SWITCHTOTHISWINDOW
Definition: ntuser.h:1642
@ NOPARAM_ROUTINE_CREATEMENUPOPUP
Definition: ntuser.h:1499
@ HWNDPARAM_ROUTINE_SETDIALOGPOINTER
Definition: ntuser.h:1622
@ ONEPARAM_ROUTINE_WINDOWFROMDC
Definition: ntuser.h:1553
@ HWNDPARAM_ROUTINE_KILLSYSTEMTIMER
Definition: ntuser.h:1621
@ HWNDPARAM_ROUTINE_SETWNDCONTEXTHLPID
Definition: ntuser.h:1624
@ NOPARAM_ROUTINE_LOADUSERAPIHOOK
Definition: ntuser.h:1524
@ TWOPARAM_ROUTINE_ENABLEWINDOW
Definition: ntuser.h:1639
@ ONEPARAM_ROUTINE_MESSAGEBEEP
Definition: ntuser.h:1577
@ HWNDLOCK_ROUTINE_DRAWMENUBAR
Definition: ntuser.h:1628
@ ONEPARAM_ROUTINE_SETPROCDEFLAYOUT
Definition: ntuser.h:1601
@ ONEPARAM_ROUTINE_ENUMCLIPBOARDFORMATS
Definition: ntuser.h:1561
@ ONEPARAM_ROUTINE_BEGINDEFERWNDPOS
Definition: ntuser.h:1549
@ HWND_ROUTINE_REGISTERSHELLHOOKWINDOW
Definition: ntuser.h:1615
@ NOPARAM_ROUTINE_GETMSESSAGEPOS
Definition: ntuser.h:1515
@ ONEPARAM_ROUTINE_GETKEYBOARDLAYOUT
Definition: ntuser.h:1566
@ HWNDLOCK_ROUTINE_SETFOREGROUNDWINDOW
Definition: ntuser.h:1634
@ NOPARAM_ROUTINE_MSQCLEARWAKEMASK
Definition: ntuser.h:1502
@ ONEPARAM_ROUTINE_POSTQUITMESSAGE
Definition: ntuser.h:1579
@ HWND_ROUTINE_SETMSGBOX
Definition: ntuser.h:1616
@ HWNDPARAM_ROUTINE_CLEARWINDOWSTATE
Definition: ntuser.h:1620
@ NOPARAM_ROUTINE_CREATEMENU
Definition: ntuser.h:1498
@ ONEPARAM_ROUTINE_LOCKFOREGNDWINDOW
Definition: ntuser.h:1574
@ HWND_ROUTINE_GETWNDCONTEXTHLPID
Definition: ntuser.h:1614
@ ONEPARAM_ROUTINE_RELEASEDC
Definition: ntuser.h:1590
@ ONEPARAM_ROUTINE_SWAPMOUSEBUTTON
Definition: ntuser.h:1607
@ NOPARAM_ROUTINE_GETIMESHOWSTATUS
Definition: ntuser.h:1513
@ HWNDLOCK_ROUTINE_ARRANGEICONICWINDOWS
Definition: ntuser.h:1627
@ ONEPARAM_ROUTINE_SHOWCURSOR
Definition: ntuser.h:1605
@ ONEPARAM_ROUTINE_SETMESSAGEEXTRAINFO
Definition: ntuser.h:1600
@ ONEPARAM_ROUTINE_REALIZEPALETTE
Definition: ntuser.h:1583
@ HWNDLOCK_ROUTINE_REDRAWFRAMEANDHOOK
Definition: ntuser.h:1632
@ NOPARAM_ROUTINE_DESTROY_CARET
Definition: ntuser.h:1504
@ HWNDLOCK_ROUTINE_CHECKIMESHOWSTATUSINTHRD
Definition: ntuser.h:1629
@ HWND_ROUTINE_DEREGISTERSHELLHOOKWINDOW
Definition: ntuser.h:1612
@ ONEPARAM_ROUTINE_REPLYMESSAGE
Definition: ntuser.h:1594
@ HWNDLOCK_ROUTINE_REDRAWFRAME
Definition: ntuser.h:1631
@ ONEPARAM_ROUTINE_GETQUEUESTATUS
Definition: ntuser.h:1569
@ HWNDOPT_ROUTINE_SETTASKMANWINDOW
Definition: ntuser.h:1618
@ NOPARAM_ROUTINE_RELEASECAPTURE
Definition: ntuser.h:1527
@ ONEPARAM_ROUTINE_CREATEEMPTYCUROBJECT
Definition: ntuser.h:1555
@ NOPARAM_ROUTINE_UNINIT_MESSAGE_PUMP
Definition: ntuser.h:1545
@ NOPARAM_ROUTINE_UPDATEPERUSERIMMENABLING
Definition: ntuser.h:1539
@ ONEPARAM_ROUTINE_SETCARETBLINKTIME
Definition: ntuser.h:1595
@ TWOPARAM_ROUTINE_VALIDATERGN
Definition: ntuser.h:1644
@ TWOPARAM_ROUTINE_SETCARETPOS
Definition: ntuser.h:1664
@ TWOPARAM_ROUTINE_IMESHOWSTATUSCHANGE
Definition: ntuser.h:1638
@ ONEPARAM_ROUTINE_GETPROCDEFLAYOUT
Definition: ntuser.h:1568
@ HWNDOPT_ROUTINE_SETPROGMANWINDOW
Definition: ntuser.h:1617
@ ONEPARAM_ROUTINE_GETINPUTEVENT
Definition: ntuser.h:1565
@ ONEPARAM_ROUTINE_ALLOWSETFOREGND
Definition: ntuser.h:1554
@ HWNDPARAM_ROUTINE_SETWINDOWSTATE
Definition: ntuser.h:1625
@ TWOPARAM_ROUTINE_SETCURSORPOS
Definition: ntuser.h:1665
#define WNDS_MSGBOX
Definition: ntuser.h:610
#define HWNDLOCK_ROUTINE_SETFOREGROUNDWINDOWMOUSE
Definition: ntuser.h:3585
@ TYPE_SETWINDOWPOS
Definition: ntuser.h:44
#define WNDS_DIALOGWINDOW
Definition: ntuser.h:621
#define SRVINFO_IMM32
Definition: ntuser.h:949
#define TWOPARAM_ROUTINE_SETMENUBARHEIGHT
Definition: ntuser.h:3583
NTSYSAPI ULONG WINAPI RtlNtStatusToDosError(NTSTATUS)
#define EXCEPTION_EXECUTE_HANDLER
Definition: excpt.h:90
#define STUB
Definition: kernel32.h:27
#define IntReleaseMenuObject(MenuObj)
Definition: menu.h:130
#define ASSERT(a)
Definition: mode.c:44
static HDC
Definition: imagelist.c:88
#define LAYOUT_LTR
Definition: dc.c:36
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
Definition: ordinal.c:63
VOID FASTCALL MsqPostQuitMessage(PTHREADINFO pti, ULONG ExitCode)
Definition: msgqueue.c:1381
HWND FASTCALL MsqSetStateWindow(PTHREADINFO pti, ULONG Type, HWND hWnd)
Definition: msgqueue.c:2501
int UserShowCursor(BOOL bShow)
Definition: msgqueue.c:168
BOOL FASTCALL IntMsqClearWakeMask(VOID)
Definition: msgqueue.c:392
VOID FASTCALL MsqPostMessage(PTHREADINFO pti, MSG *Msg, BOOLEAN HardwareMessage, DWORD MessageBits, DWORD dwQEvent, LONG_PTR ExtraInfo)
Definition: msgqueue.c:1337
LPARAM FASTCALL MsqSetMessageExtraInfo(LPARAM lParam)
Definition: msgqueue.c:2441
BOOL FASTCALL co_MsqReplyMessage(LRESULT lResult)
Definition: msgqueue.c:2478
HANDLE FASTCALL IntMsqSetWakeMask(DWORD WakeMask)
Definition: msgqueue.c:362
unsigned __int3264 UINT_PTR
Definition: mstsclib_h.h:274
unsigned int UINT
Definition: ndis.h:50
#define BOOL
Definition: nt_native.h:43
#define FASTCALL
Definition: nt_native.h:50
#define DWORD
Definition: nt_native.h:44
_In_ ULONGLONG _In_ ULONGLONG _In_ BOOLEAN Enable
Definition: ntddpcm.h:142
NTSTATUS NTAPI PsLookupProcessByProcessId(IN HANDLE ProcessId, OUT PEPROCESS *Process)
Definition: process.c:919
PVOID NTAPI PsGetCurrentProcessWin32Process(VOID)
Definition: process.c:1183
PVOID NTAPI PsGetCurrentThreadWin32Thread(VOID)
Definition: thread.c:805
PVOID *typedef PHANDLE
Definition: ntsecpkg.h:455
BOOL UserPaintCaption(PWND pWnd, INT Flags)
Definition: defwnd.c:398
BOOL FASTCALL UserLoadApiHook(VOID)
Definition: hook.c:131
BOOL FASTCALL IntUnhookWindowsHook(int HookId, HOOKPROC pfnFilterProc)
Definition: hook.c:1319
UINT FASTCALL co_WinPosArrangeIconicWindows(PWND parent)
Definition: winpos.c:737
BOOLEAN FASTCALL co_WinPosSetWindowPos(PWND Window, HWND WndInsertAfter, INT x, INT y, INT cx, INT cy, UINT flags)
Definition: winpos.c:1792
HWND hwndSAS
Definition: winsta.c:24
VOID FASTCALL UserLeave(VOID)
Definition: ntuser.c:258
VOID FASTCALL UserEnterShared(VOID)
Definition: ntuser.c:242
VOID FASTCALL UserEnterExclusive(VOID)
Definition: ntuser.c:249
struct _THREADINFO * PTHREADINFO
Definition: ntwin32.h:6
static __inline VOID UserDerefObjectCo(PVOID obj)
Definition: object.h:43
static __inline VOID UserRefObjectCo(PVOID obj, PUSER_REFERENCE_ENTRY UserReferenceEntry)
Definition: object.h:27
#define WS_CHILD
Definition: pedump.c:617
#define WS_POPUP
Definition: pedump.c:616
#define WS_MINIMIZE
Definition: pedump.c:622
DWORD * PDWORD
Definition: pedump.c:68
#define WS_EX_TOPMOST
Definition: pedump.c:647
#define INT
Definition: polytest.cpp:20
HANDLE FASTCALL UserRemoveProp(_In_ PWND Window, _In_ ATOM Atom, _In_ BOOLEAN SystemProp)
#define _SEH2_GetExceptionCode()
Definition: pseh2_64.h:165
#define _SEH2_EXCEPT(...)
Definition: pseh2_64.h:66
#define _SEH2_END
Definition: pseh2_64.h:155
#define _SEH2_TRY
Definition: pseh2_64.h:55
BOOL FASTCALL co_IntRegisterLogonProcess(HANDLE ProcessId, BOOL Register)
Definition: simplecall.c:18
DWORD_PTR APIENTRY NtUserCallNoParam(DWORD Routine)
Definition: simplecall.c:59
DWORD_PTR APIENTRY NtUserCallOneParam(DWORD_PTR Param, DWORD Routine)
Definition: simplecall.c:153
HWND APIENTRY NtUserCallHwndOpt(HWND hWnd, DWORD Routine)
Definition: simplecall.c:691
DWORD APIENTRY NtUserCallHwndParam(HWND hWnd, DWORD_PTR Param, DWORD Routine)
Definition: simplecall.c:767
BOOL APIENTRY NtUserCallHwndLock(HWND hWnd, DWORD Routine)
Definition: simplecall.c:585
DWORD APIENTRY NtUserCallHwnd(HWND hWnd, DWORD Routine)
Definition: simplecall.c:711
DWORD APIENTRY NtUserCallHwndParamLock(HWND hWnd, DWORD_PTR Param, DWORD Routine)
Definition: simplecall.c:884
DWORD_PTR APIENTRY NtUserCallTwoParam(DWORD_PTR Param1, DWORD_PTR Param2, DWORD Routine)
Definition: simplecall.c:434
HANDLE gpidLogon
Definition: simplecall.c:15
static void Exit(void)
Definition: sock.c:1330
#define TRACE(s)
Definition: solgame.cpp:4
Definition: window.c:28
Definition: winpos.h:4
LONG idChild
Definition: hook.h:39
DWORD flags
Definition: hook.h:40
LONG idObject
Definition: hook.h:38
DWORD event
Definition: hook.h:37
DWORD dwLayout
Definition: win32.h:280
Definition: region.h:8
Definition: winpos.h:21
PCVR acvr
Definition: winpos.h:27
INT ccvr
Definition: winpos.h:25
UINT bHandle
Definition: winpos.h:24
INT ccvrAlloc
Definition: winpos.h:26
BOOL bMouseBtnSwap
Definition: sysparams.h:82
POINT ptLast
Definition: win32.h:129
struct _DESKTOP * rpdesk
Definition: win32.h:92
struct _USER_MESSAGE_QUEUE * MessageQueue
Definition: win32.h:89
Definition: object.h:4
Definition: ntuser.h:694
DWORD ExStyle
Definition: ntuser.h:704
THRDESKHEAD head
Definition: ntuser.h:695
DWORD fnid
Definition: ntuser.h:709
DWORD state
Definition: ntuser.h:701
PVOID DialogPointer
Definition: ntuser.h:766
ULONG cbwndExtra
Definition: ntuser.h:738
ULONG cyMenu
Definition: ntuser.h:423
long y
Definition: polytest.cpp:48
long x
Definition: polytest.cpp:48
ATOM atomContextHelpIdProp
Definition: ntuser.h:1067
DWORD dwSRVIFlags
Definition: ntuser.h:1051
#define DWORD_PTR
Definition: treelist.c:76
TW_UINT32 TW_UINT16 TW_UINT16 MSG
Definition: twain.h:1829
uint32_t DWORD_PTR
Definition: typedefs.h:65
void * PVOID
Definition: typedefs.h:50
int32_t INT
Definition: typedefs.h:58
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262
#define MAKELONG(a, b)
Definition: typedefs.h:249
uint32_t ULONG
Definition: typedefs.h:59
#define WM_LOGONNOTIFY
Definition: undocuser.h:37
#define LN_MESSAGE_BEEP
Definition: undocuser.h:120
BOOL FASTCALL co_UserRedrawWindow(PWND Window, const RECTL *UpdateRect, PREGION UpdateRgn, ULONG Flags)
Definition: painting.c:895
VOID FASTCALL co_IntUpdateWindows(PWND Wnd, ULONG Flags, BOOL Recurse)
Definition: painting.c:519
PWND FASTCALL UserGetWindowObject(HWND hWnd)
Definition: window.c:124
INT FASTCALL UserReleaseDC(PWND Window, HDC hDc, BOOL EndPaint)
Definition: windc.c:918
int ret
#define W32PF_NOWINDOWGHOSTING
Definition: win32.h:32
VOID FASTCALL SetLastNtError(_In_ NTSTATUS Status)
Definition: error.c:31
PREGION FASTCALL REGION_LockRgn(_In_ HRGN hrgn)
Definition: region.c:2358
VOID FASTCALL REGION_UnlockRgn(_In_ PREGION prgn)
Definition: region.c:2373
BOOL FASTCALL IntSetCaretBlinkTime(UINT uMSeconds)
Definition: caret.c:183
BOOL FASTCALL co_IntSetCaretPos(int X, int Y)
Definition: caret.c:193
BOOL FASTCALL co_IntDestroyCaret(PTHREADINFO Win32Thread)
Definition: caret.c:159
UINT APIENTRY UserEnumClipboardFormats(UINT fmt)
Definition: clipboard.c:443
HANDLE IntCreateCurIconHandle(BOOLEAN Animated)
Definition: cursoricon.c:285
BOOL UserSetCursorPos(INT x, INT y, DWORD flags, ULONG_PTR dwExtraInfo, BOOL Hook)
Definition: cursoricon.c:238
PDESKTOP FASTCALL IntGetActiveDesktop(VOID)
Definition: desktop.c:1279
HDC ScreenDeviceContext
Definition: desktop.c:53
BOOL IntDeRegisterShellHookWindow(HWND hWnd)
Definition: desktop.c:1801
BOOL IntRegisterShellHookWindow(HWND hWnd)
Definition: desktop.c:1769
VOID co_IntShellHookNotify(WPARAM Message, WPARAM wParam, LPARAM lParam)
Definition: desktop.c:1709
static __inline PVOID DesktopHeapAddressToUser(PVOID lpMem)
Definition: desktop.h:308
VOID FASTCALL IntNotifyWinEvent(DWORD Event, PWND pWnd, LONG idObject, LONG idChild, DWORD flags)
Definition: event.c:178
BOOL gfIMEShowStatus
Definition: ime.c:29
VOID FASTCALL IntCheckImeShowStatusInThread(PWND pImeWnd)
Definition: ime.c:2394
BOOL FASTCALL IntBroadcastImeShowStatusChange(PWND pImeWnd, BOOL bShow)
Definition: ime.c:2383
HKL FASTCALL UserGetKeyboardLayout(DWORD dwThreadId)
Definition: kbdlayout.c:995
DWORD FASTCALL UserGetKeyboardType(DWORD dwTypeFlag)
Definition: keyboard.c:1684
PMENU FASTCALL IntGetMenuObject(HMENU hMenu)
Definition: menu.c:192
HMENU FASTCALL UserCreateMenu(PDESKTOP Desktop, BOOL PopupMenu)
Definition: menu.c:5048
DWORD APIENTRY IntGetQueueStatus(DWORD Changes)
Definition: message.c:2139
BOOL APIENTRY IntInitMessagePumpHook(VOID)
Definition: message.c:2160
BOOL FASTCALL UserPostMessage(HWND Wnd, UINT Msg, WPARAM wParam, LPARAM lParam)
Definition: message.c:1395
BOOL APIENTRY IntUninitMessagePumpHook(VOID)
Definition: message.c:2173
BOOL FASTCALL UserIsIMMEnabled(VOID)
Definition: metric.c:22
VOID FASTCALL IntClearWindowState(PWND pWnd, UINT Flag)
Definition: misc.c:618
VOID FASTCALL IntSetWindowState(PWND pWnd, UINT Flag)
Definition: misc.c:597
BOOL FASTCALL UserDeleteObject(HANDLE h, HANDLE_TYPE type)
Definition: object.c:717
PUSER_HANDLE_TABLE gHandleTable
Definition: object.c:13
PVOID FASTCALL UserCreateObject(PUSER_HANDLE_TABLE ht, PDESKTOP pDesktop, PTHREADINFO pti, HANDLE *h, HANDLE_TYPE type, ULONG size)
Definition: object.c:568
HANDLE FASTCALL UserGetProp(_In_ PWND Window, _In_ ATOM Atom, _In_ BOOLEAN SystemProp)
Definition: prop.c:46
SPIVALUES gspv
Definition: sysparams.c:17
#define USERTAG_SWP
Definition: tags.h:281
BOOL FASTCALL IntKillTimer(PWND Window, UINT_PTR IDEvent, BOOL SystemTimer)
Definition: timer.c:579
PWND FASTCALL IntGetParent(PWND Wnd)
Definition: window.c:206
BOOL FASTCALL IntEnableWindow(HWND hWnd, BOOL bEnable)
Definition: window.c:222
BOOL FASTCALL IntShowOwnedPopups(PWND OwnerWnd, BOOL fShow)
Definition: window.c:4654
BOOL FASTCALL IntIsWindow(HWND hWnd)
Definition: window.c:178
BOOL FASTCALL UserUpdateUiState(PWND Wnd, WPARAM wParam)
Definition: window.c:40
_In_ POINTL * pptl
Definition: winddi.h:3741
ENGAPI VOID APIENTRY EngSetLastError(_In_ ULONG iError)
Definition: error.c:22
_In_ LONG _In_ HWND hwnd
Definition: winddi.h:4023
struct _POINTL * PPOINTL
LONG_PTR LPARAM
Definition: windef.h:208
LONG_PTR LRESULT
Definition: windef.h:209
UINT_PTR WPARAM
Definition: windef.h:207
#define ERROR_INVALID_ACCESS
Definition: winerror.h:115
#define LAYOUT_ORIENTATIONMASK
Definition: wingdi.h:1374
struct _SMWP SMWP
struct _SMWP * PSMWP
#define DLGWINDOWEXTRA
Definition: winuser.h:2568
#define MAKEWPARAM(l, h)
Definition: winuser.h:4012
LRESULT(CALLBACK * HOOKPROC)(int, WPARAM, LPARAM)
Definition: winuser.h:2902
#define SWP_NOACTIVATE
Definition: winuser.h:1245
#define WM_SYSCOMMAND
Definition: winuser.h:1744
#define SWP_FRAMECHANGED
Definition: winuser.h:1243
#define SWP_NOMOVE
Definition: winuser.h:1247
#define SWP_NOSIZE
Definition: winuser.h:1248
#define SWP_ASYNCWINDOWPOS
Definition: winuser.h:1256
#define HWND_DESKTOP
Definition: winuser.h:1212
#define RDW_ALLCHILDREN
Definition: winuser.h:1224
#define QS_POSTMESSAGE
Definition: winuser.h:880
#define SM_SWAPBUTTON
Definition: winuser.h:987
#define SWP_NOZORDER
Definition: winuser.h:1250
#define RDW_VALIDATE
Definition: winuser.h:1221
#define SC_RESTORE
Definition: winuser.h:2601
#define HWND_BOTTOM
Definition: winuser.h:1208
_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:409
#define ObDereferenceObject
Definition: obfuncs.h:203
#define PsGetCurrentProcess
Definition: psfuncs.h:17