- Un-implement NtUserDispatchMessage.
[reactos.git] / reactos / include / reactos / win32k / ntuser.h
1 #ifndef __WIN32K_NTUSER_H
2 #define __WIN32K_NTUSER_H
3
4 struct _W32PROCESSINFO;
5 struct _W32THREADINFO;
6 struct _WINDOW;
7
8 typedef struct _LARGE_UNICODE_STRING
9 {
10 ULONG Length;
11 ULONG MaximumLength:31;
12 ULONG bAnsi:1;
13 PWSTR Buffer;
14 } LARGE_UNICODE_STRING, *PLARGE_UNICODE_STRING;
15
16 typedef struct _LARGE_STRING
17 {
18 ULONG Length;
19 ULONG MaximumLength:31;
20 ULONG bAnsi:1;
21 PVOID Buffer;
22 } LARGE_STRING, *PLARGE_STRING;
23 //
24 // Based on ANSI_STRING
25 //
26 typedef struct _LARGE_ANSI_STRING
27 {
28 ULONG Length;
29 ULONG MaximumLength:31;
30 ULONG bAnsi:1;
31 PCHAR Buffer;
32 } LARGE_ANSI_STRING, *PLARGE_ANSI_STRING;
33
34 VOID NTAPI RtlInitLargeAnsiString(IN OUT PLARGE_ANSI_STRING,IN PCSZ,IN INT);
35 VOID NTAPI RtlInitLargeUnicodeString(IN OUT PLARGE_UNICODE_STRING,IN PCWSTR,IN INT);
36 BOOL NTAPI RtlLargeStringToUnicodeString( PUNICODE_STRING, PLARGE_STRING);
37
38 /* FIXME: UserHMGetHandle needs to be updated once the new handle manager is implemented */
39 #define UserHMGetHandle(obj) ((obj)->hdr.Handle)
40
41 typedef struct _REGISTER_SYSCLASS
42 {
43 /* This is a reactos specific class used to initialize the
44 system window classes during user32 initialization */
45 UNICODE_STRING ClassName;
46 UINT Style;
47 WNDPROC ProcW;
48 WNDPROC ProcA;
49 UINT ExtraBytes;
50 HICON hCursor;
51 HBRUSH hBrush;
52 UINT ClassId;
53 } REGISTER_SYSCLASS, *PREGISTER_SYSCLASS;
54
55 typedef struct _CLSMENUNAME
56 {
57 LPSTR pszClientAnsiMenuName;
58 LPWSTR pwszClientUnicodeMenuName;
59 PUNICODE_STRING pusMenuName;
60 } CLSMENUNAME, *PCLSMENUNAME;
61
62 typedef struct _USER_OBJHDR
63 {
64 /* This is the common header for all user handle objects */
65 HANDLE Handle;
66 } USER_OBJHDR, PUSER_OBJHDR;
67
68 typedef struct _DESKTOPINFO
69 {
70 PVOID pvDesktopBase;
71 PVOID pvDesktopLimit;
72
73 HANDLE hKernelHeap;
74 ULONG_PTR HeapLimit;
75 HWND hTaskManWindow;
76 HWND hProgmanWindow;
77 HWND hShellWindow;
78 struct _WINDOW *Wnd;
79
80 union
81 {
82 UINT Dummy;
83 struct
84 {
85 UINT LastInputWasKbd : 1;
86 };
87 };
88
89 WCHAR szDesktopName[1];
90 } DESKTOPINFO, *PDESKTOPINFO;
91
92 typedef struct _CALLPROC
93 {
94 USER_OBJHDR hdr; /* FIXME: Move out of the structure once new handle manager is implemented */
95 struct _W32PROCESSINFO *pi;
96 WNDPROC WndProc;
97 struct _CALLPROC *Next;
98 UINT Unicode : 1;
99 } CALLPROC, *PCALLPROC;
100
101 typedef struct _WINDOWCLASS
102 {
103 struct _WINDOWCLASS *Next;
104 struct _WINDOWCLASS *Clone;
105 struct _WINDOWCLASS *Base;
106 struct _DESKTOP *rpdeskParent;
107 RTL_ATOM Atom;
108 ULONG Windows;
109
110 UINT Style;
111 WNDPROC WndProc;
112 union
113 {
114 WNDPROC WndProcExtra;
115 PCALLPROC CallProc;
116 };
117 PCALLPROC CallProcList;
118 INT ClsExtra;
119 INT WndExtra;
120 PVOID Dce;
121 DWORD fnID; // New ClassId
122 HINSTANCE hInstance;
123 HANDLE hIcon; /* FIXME - Use pointer! */
124 HANDLE hIconSm; /* FIXME - Use pointer! */
125 HANDLE hCursor; /* FIXME - Use pointer! */
126 HBRUSH hbrBackground;
127 HANDLE hMenu; /* FIXME - Use pointer! */
128 PWSTR MenuName;
129 PSTR AnsiMenuName;
130
131 UINT Destroying : 1;
132 UINT Unicode : 1;
133 UINT System : 1;
134 UINT Global : 1;
135 UINT MenuNameIsString : 1;
136 UINT NotUsed : 27;
137 } WINDOWCLASS, *PWINDOWCLASS;
138
139 typedef struct _WINDOW
140 {
141 USER_OBJHDR hdr; /* FIXME: Move out of the structure once new handle manager is implemented */
142
143 /* NOTE: This structure is located in the desktop heap and will
144 eventually replace WINDOW_OBJECT. Right now WINDOW_OBJECT
145 keeps a reference to this structure until all the information
146 is moved to this structure */
147 struct _W32PROCESSINFO *pi; /* FIXME: Move to object header some day */
148 struct _W32THREADINFO *ti;
149 struct _DESKTOP *pdesktop;
150 RECT WindowRect;
151 RECT ClientRect;
152
153 WNDPROC WndProc;
154 union
155 {
156 /* Pointer to a call procedure handle */
157 PCALLPROC CallProc;
158 /* Extra Wnd proc (windows of system classes) */
159 WNDPROC WndProcExtra;
160 };
161
162 struct _WINDOW *Parent;
163 struct _WINDOW *Owner;
164
165 /* Size of the extra data associated with the window. */
166 ULONG ExtraDataSize;
167 /* Style. */
168 DWORD Style;
169 /* Extended style. */
170 DWORD ExStyle;
171 /* Handle of the module that created the window. */
172 HINSTANCE Instance;
173 /* Window menu handle or window id */
174 UINT IDMenu;
175 LONG UserData;
176 /* Pointer to the window class. */
177 PWINDOWCLASS Class;
178 /* Window name. */
179 UNICODE_STRING WindowName;
180 /* Context help id */
181 DWORD ContextHelpId;
182
183 HWND hWndLastActive;
184 /* Property list head.*/
185 LIST_ENTRY PropListHead;
186 ULONG PropListItems;
187
188 struct
189 {
190 RECT NormalRect;
191 POINT IconPos;
192 POINT MaxPos;
193 } InternalPos;
194
195 UINT Unicode : 1;
196 /* Indicates whether the window is derived from a system class */
197 UINT IsSystem : 1;
198 UINT InternalPosInitialized : 1;
199 UINT HideFocus : 1;
200 UINT HideAccel : 1;
201 } WINDOW, *PWINDOW;
202
203 typedef struct _PFNCLIENT
204 {
205 PROC pfnScrollBarC;
206 PROC pfnDefWndC;
207 PROC pfnMenuC;
208 PROC pfnDesktopC;
209 PROC pfnDefWnd1C;
210 PROC pfnDefWnd2C;
211 PROC pfnDefWnd3C;
212 PROC pfnButtomC;
213 PROC pfnComboBoxC;
214 PROC pfnComboListBoxC;
215 PROC pfnDefDlgC;
216 PROC pfnEditC;
217 PROC pfnListBoxC;
218 PROC pfnMDIClientC;
219 PROC pfnStaticC;
220 PROC pfnImeC;
221 PROC pfnHkINLPCWPSTRUCT;
222 PROC pfnHkINLPCWPRETSTRUCT;
223 PROC pfnDispatchHookC;
224 PROC pfnDispatchDefC;
225 } PFNCLIENT, *PPFNCLIENT;
226
227 typedef struct _PFNCLIENTWORKER
228 {
229 PROC pfnButtonCW;
230 PROC pfnComboBoxCW;
231 PROC pfnComboListBoxCW;
232 PROC pfnDefDlgCW;
233 PROC pfnEditCW;
234 PROC pfnListBoxCW;
235 PROC pfnMDIClientCW;
236 PROC pfnStaticCW;
237 PROC pfnImeCW;
238 } PFNCLIENTWORKER, *PPFNCLIENTWORKER;
239
240
241 // FNID's for NtUserSetWindowFNID, NtUserMessageCall
242 #define FNID_SCROLLBAR 0x029A
243 #define FNID_ICONTITLE 0x029B
244 #define FNID_MENU 0x029C
245 #define FNID_DESKTOP 0x029D
246 #define FNID_DEFWINDOWPROC 0x029E
247 #define FNID_SWITCH 0x02A0
248 #define FNID_BUTTON 0x02A1
249 #define FNID_COMBOBOX 0x02A2
250 #define FNID_COMBOLBOX 0x02A3
251 #define FNID_DIALOG 0x02A4
252 #define FNID_EDIT 0x02A5
253 #define FNID_LISTBOX 0x02A6
254 #define FNID_MDICLIENT 0x02A7
255 #define FNID_STATIC 0x02A8
256 #define FNID_IME 0x02A9
257 #define FNID_CALLWNDPROC 0x02AA
258 #define FNID_CALLWNDPROCRET 0x02AB
259 #define FNID_SENDMESSAGE 0x02B0
260 // Kernel has option to use TimeOut or normal msg send, based on type of msg.
261 #define FNID_SENDMESSAGEWTOOPTION 0x02B1
262 #define FNID_SENDMESSAGETIMEOUT 0x02B2
263 #define FNID_BROADCASTSYSTEMMESSAGE 0x02B4
264 #define FNID_TOOLTIPS 0x02B5
265 #define FNID_UNKNOWN 0x02B6
266 #define FNID_SENDNOTIFYMESSAGE 0x02B7
267 #define FNID_SENDMESSAGECALLBACK 0x02B8
268
269
270 #define FNID_DDEML 0x2000 // Registers DDEML
271 #define FNID_DESTROY 0x4000 // This is sent when WM_NCDESTROY or in the support routine.
272 // Seen during WM_CREATE on error exit too.
273
274 // ICLS's for NtUserGetClassName FNID to ICLS, NtUserInitializeClientPfnArrays
275 #define ICLS_BUTTON 0
276 #define ICLS_EDIT 1
277 #define ICLS_STATIC 2
278 #define ICLS_LISTBOX 3
279 #define ICLS_SCROLLBAR 4
280 #define ICLS_COMBOBOX 5
281 #define ICLS_MDICLIENT 6
282 #define ICLS_COMBOLBOX 7
283 #define ICLS_DDEMLEVENT 8
284 #define ICLS_DDEMLMOTHER 9
285 #define ICLS_DDEML16BIT 10
286 #define ICLS_DDEMLCLIENTA 11
287 #define ICLS_DDEMLCLIENTW 12
288 #define ICLS_DDEMLSERVERA 13
289 #define ICLS_DDEMLSERVERW 14
290 #define ICLS_IME 15
291 #define ICLS_DESKTOP 16
292 #define ICLS_DIALOG 17
293 #define ICLS_MENU 18
294 #define ICLS_SWITCH 19
295 #define ICLS_ICONTITLE 20
296 #define ICLS_TOOLTIPS 21
297 #define ICLS_UNKNOWN 22
298 #define ICLS_NOTUSED 23
299 #define ICLS_END 31
300
301 #define SRVINFO_METRICS 0x0020
302
303 typedef struct _SERVERINFO
304 {
305 DWORD SRVINFO_Flags;
306 DWORD SystemMetrics[SM_CMETRICS]; // System Metrics
307 COLORREF SysColors[COLOR_MENUBAR+1]; // GetSysColor
308 HBRUSH SysColorBrushes[COLOR_MENUBAR+1]; // GetSysColorBrush
309 HPEN SysColorPens[COLOR_MENUBAR+1]; // ReactOS exclusive
310 HBRUSH hbrGray;
311 POINTL ptCursor;
312 //
313 DWORD cxSysFontChar;
314 DWORD cySysFontChar;
315 DWORD cxMsgFontChar;
316 DWORD cyMsgFontChar;
317 TEXTMETRICW tmSysFont;
318 //
319 RECTL rcScreen;
320 WORD BitCount;
321 WORD dmLogPixels;
322 BYTE BitsPixel;
323 BYTE Planes;
324 WORD reserved;
325 DWORD PUSIFlags; // PERUSERSERVERINFO Flags.
326 ULONG uCaretWidth;
327 LANGID UILangID;
328 UINT LastRITWasKeyboard : 1;
329 UINT bKeyboardPref : 1;
330 DWORD TimeTick;
331 DWORD SrvEventActivity;
332 } SERVERINFO, *PSERVERINFO;
333
334 typedef struct _W32PROCESSINFO
335 {
336 PVOID UserHandleTable;
337 HANDLE hUserHeap;
338 ULONG_PTR UserHeapDelta;
339 HINSTANCE hModUser;
340 PWINDOWCLASS LocalClassList;
341 PWINDOWCLASS GlobalClassList;
342 PWINDOWCLASS SystemClassList;
343
344 UINT RegisteredSysClasses : 1;
345
346 PSERVERINFO psi;
347
348 } W32PROCESSINFO, *PW32PROCESSINFO;
349
350 #define CTI_INSENDMESSAGE 0x0002
351
352 typedef struct _CLIENTTHREADINFO
353 {
354 DWORD CTI_flags;
355 WORD fsChangeBits;
356 WORD fsWakeBits;
357 WORD fsWakeBitsJournal;
358 WORD fsWakeMask;
359 LONG timeLastRead;
360 DWORD dwcPumpHook;
361 } CLIENTTHREADINFO, *PCLIENTTHREADINFO;
362
363 typedef struct _W32THREADINFO
364 {
365 PW32PROCESSINFO pi; /* [USER] */
366 PW32PROCESSINFO kpi; /* [KERNEL] */
367 PDESKTOPINFO Desktop;
368 // PVOID DesktopHeapBase;
369 // ULONG_PTR DesktopHeapLimit;
370 /* A mask of what hooks are currently active */
371 ULONG Hooks;
372 CLIENTTHREADINFO ClientThreadInfo;
373 } W32THREADINFO, *PW32THREADINFO;
374
375 /* Window Client Information structure */
376 struct _ETHREAD;
377
378
379 typedef struct tagHOOK
380 {
381 LIST_ENTRY Chain; /* Hook chain entry */
382 HHOOK Self; /* user handle for this hook */
383 struct _ETHREAD* Thread; /* Thread owning the hook */
384 int HookId; /* Hook table index */
385 HOOKPROC Proc; /* Hook function */
386 BOOLEAN Ansi; /* Is it an Ansi hook? */
387 ULONG Flags; /* Some internal flags */
388 UNICODE_STRING ModuleName; /* Module name for global hooks */
389 } HOOK, *PHOOK;
390
391 typedef struct _CALLBACKWND
392 {
393 HWND hWnd;
394 PVOID pvWnd;
395 } CALLBACKWND, *PCALLBACKWND;
396
397 #define CI_CURTHPRHOOK 0x00000010
398
399 typedef struct _CLIENTINFO
400 {
401 ULONG CI_flags;
402 ULONG cSpins;
403 DWORD dwExpWinVer;
404 DWORD dwCompatFlags;
405 DWORD dwCompatFlags2;
406 DWORD dwTIFlags;
407 PDESKTOPINFO pDeskInfo;
408 ULONG_PTR ulClientDelta;
409 PHOOK phkCurrent;
410 ULONG fsHooks;
411 CALLBACKWND CallbackWnd;
412 ULONG Win32ClientInfo;
413 DWORD dwHookCurrent;
414 INT cInDDEMLCallback;
415 PCLIENTTHREADINFO pClientThreadInfo;
416 ULONG_PTR dwHookData;
417 DWORD dwKeyCache;
418 DWORD afKeyState[2];
419 DWORD dwAsyncKeyCache;
420 DWORD afAsyncKeyState[2];
421 DWORD afAsyncKeyStateRecentDow[2];
422 HKL hKL;
423 USHORT CodePage;
424 USHORT achDbcsCF;
425 ULONG Win32ClientInfo3[35];
426 } CLIENTINFO, *PCLIENTINFO;
427
428 /* Make sure it fits exactly into the TEB */
429 C_ASSERT(sizeof(CLIENTINFO) == FIELD_OFFSET(TEB, glDispatchTable) - FIELD_OFFSET(TEB, Win32ClientInfo));
430
431 #define GetWin32ClientInfo() ((PCLIENTINFO)(NtCurrentTeb()->Win32ClientInfo))
432
433 // Server event activity bits.
434 #define SRV_EVENT_MENU 0x0001
435 #define SRV_EVENT_END_APPLICATION 0x0002
436 #define SRV_EVENT_RUNNING 0x0004
437 #define SRV_EVENT_NAMECHANGE 0x0008
438 #define SRV_EVENT_VALUECHANGE 0x0010
439 #define SRV_EVENT_STATECHANGE 0x0020
440 #define SRV_EVENT_LOCATIONCHANGE 0x0040
441 #define SRV_EVENT_CREATE 0x8000
442
443 typedef struct _PROPLISTITEM
444 {
445 ATOM Atom;
446 HANDLE Data;
447 } PROPLISTITEM, *PPROPLISTITEM;
448
449 typedef struct _PROPERTY
450 {
451 LIST_ENTRY PropListEntry;
452 HANDLE Data;
453 ATOM Atom;
454 } PROPERTY, *PPROPERTY;
455
456 typedef struct _BROADCASTPARM
457 {
458 DWORD flags;
459 DWORD recipients;
460 HDESK hDesk;
461 HWND hWnd;
462 LUID luid;
463 } BROADCASTPARM, *PBROADCASTPARM;
464
465 PW32THREADINFO GetW32ThreadInfo(VOID);
466 PW32PROCESSINFO GetW32ProcessInfo(VOID);
467
468 typedef struct _WNDMSG
469 {
470 DWORD maxMsgs;
471 DWORD abMsgs;
472 } WNDMSG, *PWNDMSG;
473
474 typedef struct _SHAREDINFO
475 {
476 PSERVERINFO psi; // global Server Info
477 PVOID aheList; // Handle Entry List
478 PVOID pDispInfo; // global PDISPLAYINFO pointer
479 ULONG_PTR ulSharedDelta; // Heap delta
480 WNDMSG awmControl[31];
481 WNDMSG DefWindowMsgs;
482 WNDMSG DefWindowSpecMsgs;
483 } SHAREDINFO, *PSHAREDINFO;
484
485 typedef struct _USERCONNECT
486 {
487 ULONG ulVersion;
488 ULONG ulCurrentVersion;
489 DWORD dwDispatchCount;
490 SHAREDINFO siClient;
491 } USERCONNECT, *PUSERCONNECT;
492
493 //
494 // Non SDK Window Message types.
495 //
496 #define WM_SYSTIMER 280
497 #define WM_POPUPSYSTEMMENU 787
498
499 //
500 // Non SDK DCE types.
501 //
502 #define DCX_USESTYLE 0x00010000
503 #define DCX_KEEPCLIPRGN 0x00040000
504
505 DWORD
506 NTAPI
507 NtUserAssociateInputContext(
508 DWORD dwUnknown1,
509 DWORD dwUnknown2,
510 DWORD dwUnknown3);
511
512 DWORD
513 NTAPI
514 NtUserBuildHimcList(
515 DWORD dwUnknown1,
516 DWORD dwUnknown2,
517 DWORD dwUnknown3,
518 DWORD dwUnknown4);
519
520 DWORD
521 NTAPI
522 NtUserCalcMenuBar(
523 DWORD dwUnknown1,
524 DWORD dwUnknown2,
525 DWORD dwUnknown3,
526 DWORD dwUnknown4,
527 DWORD dwUnknown5);
528
529 DWORD
530 NTAPI
531 NtUserCheckMenuItem(
532 HMENU hmenu,
533 UINT uIDCheckItem,
534 UINT uCheck);
535
536 DWORD
537 NTAPI
538 NtUserCtxDisplayIOCtl(
539 DWORD dwUnknown1,
540 DWORD dwUnknown2,
541 DWORD dwUnknown3);
542
543 BOOL
544 NTAPI
545 NtUserDeleteMenu(
546 HMENU hMenu,
547 UINT uPosition,
548 UINT uFlags);
549
550 BOOL
551 NTAPI
552 NtUserDestroyMenu(
553 HMENU hMenu);
554
555 DWORD
556 NTAPI
557 NtUserDrawMenuBarTemp(
558 HWND hWnd,
559 HDC hDC,
560 PRECT hRect,
561 HMENU hMenu,
562 HFONT hFont);
563
564 UINT
565 NTAPI
566 NtUserEnableMenuItem(
567 HMENU hMenu,
568 UINT uIDEnableItem,
569 UINT uEnable);
570
571 BOOL
572 NTAPI
573 NtUserEndMenu(VOID);
574
575 BOOL
576 NTAPI
577 NtUserGetMenuBarInfo(
578 HWND hwnd,
579 LONG idObject,
580 LONG idItem,
581 PMENUBARINFO pmbi);
582
583 UINT
584 NTAPI
585 NtUserGetMenuIndex(
586 HMENU hMenu,
587 UINT wID);
588
589 BOOL
590 NTAPI
591 NtUserGetMenuItemRect(
592 HWND hWnd,
593 HMENU hMenu,
594 UINT uItem,
595 LPRECT lprcItem);
596
597 HMENU
598 NTAPI
599 NtUserGetSystemMenu(
600 HWND hWnd,
601 BOOL bRevert);
602
603 BOOL
604 NTAPI
605 NtUserHiliteMenuItem(
606 HWND hwnd,
607 HMENU hmenu,
608 UINT uItemHilite,
609 UINT uHilite);
610
611 int
612 NTAPI
613 NtUserMenuItemFromPoint(
614 HWND hWnd,
615 HMENU hMenu,
616 DWORD X,
617 DWORD Y);
618
619 BOOL
620 NTAPI
621 NtUserRemoveMenu(
622 HMENU hMenu,
623 UINT uPosition,
624 UINT uFlags);
625
626 BOOL
627 NTAPI
628 NtUserSetMenu(
629 HWND hWnd,
630 HMENU hMenu,
631 BOOL bRepaint);
632
633 BOOL
634 NTAPI
635 NtUserSetMenuContextHelpId(
636 HMENU hmenu,
637 DWORD dwContextHelpId);
638
639 BOOL
640 NTAPI
641 NtUserSetMenuDefaultItem(
642 HMENU hMenu,
643 UINT uItem,
644 UINT fByPos);
645
646 BOOL
647 NTAPI
648 NtUserSetMenuFlagRtoL(
649 HMENU hMenu);
650
651 BOOL
652 NTAPI
653 NtUserSetSystemMenu(
654 HWND hWnd,
655 HMENU hMenu);
656
657 DWORD
658 NTAPI
659 NtUserThunkedMenuInfo(
660 HMENU hMenu,
661 LPCMENUINFO lpcmi);
662
663 DWORD
664 NTAPI
665 NtUserThunkedMenuItemInfo(
666 HMENU hMenu,
667 UINT uItem,
668 BOOL fByPosition,
669 BOOL bInsert,
670 LPMENUITEMINFOW lpmii,
671 PUNICODE_STRING lpszCaption);
672
673 BOOL
674 NTAPI
675 NtUserTrackPopupMenuEx(
676 HMENU hmenu,
677 UINT fuFlags,
678 int x,
679 int y,
680 HWND hwnd,
681 LPTPMPARAMS lptpm);
682
683 HKL
684 NTAPI
685 NtUserActivateKeyboardLayout(
686 HKL hKl,
687 ULONG Flags);
688
689 DWORD
690 NTAPI
691 NtUserAlterWindowStyle(
692 DWORD Unknown0,
693 DWORD Unknown1,
694 DWORD Unknown2);
695
696 BOOL
697 NTAPI
698 NtUserAttachThreadInput(
699 IN DWORD idAttach,
700 IN DWORD idAttachTo,
701 IN BOOL fAttach);
702
703 HDC NTAPI
704 NtUserBeginPaint(HWND hWnd, PAINTSTRUCT* lPs);
705
706 BOOL
707 NTAPI
708 NtUserBitBltSysBmp(
709 HDC hdc,
710 INT nXDest,
711 INT nYDest,
712 INT nWidth,
713 INT nHeight,
714 INT nXSrc,
715 INT nYSrc,
716 DWORD dwRop );
717
718 BOOL
719 NTAPI
720 NtUserBlockInput(
721 BOOL BlockIt);
722
723 NTSTATUS
724 NTAPI
725 NtUserBuildHwndList(
726 HDESK hDesktop,
727 HWND hwndParent,
728 BOOLEAN bChildren,
729 ULONG dwThreadId,
730 ULONG lParam,
731 HWND* pWnd,
732 ULONG* pBufSize);
733
734 NTSTATUS NTAPI
735 NtUserBuildNameList(
736 HWINSTA hWinSta,
737 ULONG dwSize,
738 PVOID lpBuffer,
739 PULONG pRequiredSize);
740
741 NTSTATUS
742 NTAPI
743 NtUserBuildPropList(
744 HWND hWnd,
745 LPVOID Buffer,
746 DWORD BufferSize,
747 DWORD *Count);
748
749 /* apfnSimpleCall indices from Windows XP SP 2 */
750 /* TODO: Check for differences in Windows 2000, 2003 and 2008 */
751 #define WIN32K_VERSION NTDDI_WINXPSP2 // FIXME: this should go somewhere else
752
753 enum SimpleCallRoutines
754 {
755 NOPARAM_ROUTINE_CREATEMENU,
756 NOPARAM_ROUTINE_CREATEMENUPOPUP,
757 #if (WIN32K_VERSION >= NTDDI_VISTA)
758 NOPARAM_ROUTINE_ALLOWFOREGNDACTIVATION,
759 NOPARAM_ROUTINE_MSQCLEARWAKEMASK,
760 NOPARAM_ROUTINE_CREATESYSTEMTHREADS,
761 NOPARAM_ROUTINE_DESTROY_CARET,
762 #endif
763 NOPARAM_ROUTINE_ENABLEPROCWNDGHSTING,
764 #if (WIN32K_VERSION < NTDDI_VISTA)
765 NOPARAM_ROUTINE_MSQCLEARWAKEMASK,
766 NOPARAM_ROUTINE_ALLOWFOREGNDACTIVATION,
767 NOPARAM_ROUTINE_DESTROY_CARET,
768 #endif
769 NOPARAM_ROUTINE_GETDEVICECHANGEINFO,
770 NOPARAM_ROUTINE_GETIMESHOWSTATUS,
771 NOPARAM_ROUTINE_GETINPUTDESKTOP,
772 NOPARAM_ROUTINE_GETMSESSAGEPOS,
773 #if (WIN32K_VERSION >= NTDDI_VISTA)
774 NOPARAM_ROUTINE_HANDLESYSTHRDCREATFAIL,
775 #else
776 NOPARAM_ROUTINE_GETREMOTEPROCID,
777 #endif
778 NOPARAM_ROUTINE_HIDECURSORNOCAPTURE,
779 NOPARAM_ROUTINE_LOADCURSANDICOS,
780 #if (WIN32K_VERSION >= NTDDI_VISTA)
781 NOPARAM_ROUTINE_LOADUSERAPIHOOK,
782 NOPARAM_ROUTINE_PREPAREFORLOGOFF, /* 0x0f */
783 #endif
784 NOPARAM_ROUTINE_RELEASECAPTURE,
785 NOPARAM_ROUTINE_RESETDBLCLICK,
786 NOPARAM_ROUTINE_ZAPACTIVEANDFOUS,
787 NOPARAM_ROUTINE_REMOTECONSHDWSTOP,
788 NOPARAM_ROUTINE_REMOTEDISCONNECT,
789 NOPARAM_ROUTINE_REMOTELOGOFF,
790 NOPARAM_ROUTINE_REMOTENTSECURITY,
791 NOPARAM_ROUTINE_REMOTESHDWSETUP,
792 NOPARAM_ROUTINE_REMOTESHDWSTOP,
793 NOPARAM_ROUTINE_REMOTEPASSTHRUENABLE,
794 NOPARAM_ROUTINE_REMOTEPASSTHRUDISABLE,
795 NOPARAM_ROUTINE_REMOTECONNECTSTATE,
796 NOPARAM_ROUTINE_UPDATEPERUSERIMMENABLING,
797 NOPARAM_ROUTINE_USERPWRCALLOUTWORKER,
798 #if (WIN32K_VERSION >= NTDDI_VISTA)
799 NOPARAM_ROUTINE_WAKERITFORSHTDWN,
800 #endif
801 NOPARAM_ROUTINE_INIT_MESSAGE_PUMP,
802 NOPARAM_ROUTINE_UNINIT_MESSAGE_PUMP,
803 #if (WIN32K_VERSION < NTDDI_VISTA)
804 NOPARAM_ROUTINE_LOADUSERAPIHOOK,
805 #endif
806 ONEPARAM_ROUTINE_BEGINDEFERWNDPOS,
807 #if (WIN32K_VERSION >= NTDDI_VISTA)
808 ONEPARAM_ROUTINE_GETSENDMSGRECVR,
809 #endif
810 ONEPARAM_ROUTINE_WINDOWFROMDC,
811 ONEPARAM_ROUTINE_ALLOWSETFOREGND,
812 ONEPARAM_ROUTINE_CREATEEMPTYCUROBJECT,
813 #if (WIN32K_VERSION < NTDDI_VISTA)
814 ONEPARAM_ROUTINE_CREATESYSTEMTHREADS,
815 #endif
816 ONEPARAM_ROUTINE_CSDDEUNINITIALIZE,
817 ONEPARAM_ROUTINE_DIRECTEDYIELD,
818 ONEPARAM_ROUTINE_ENUMCLIPBOARDFORMATS,
819 #if (WIN32K_VERSION < NTDDI_VISTA)
820 ONEPARAM_ROUTINE_GETCURSORPOS,
821 #endif
822 ONEPARAM_ROUTINE_GETINPUTEVENT,
823 ONEPARAM_ROUTINE_GETKEYBOARDLAYOUT,
824 ONEPARAM_ROUTINE_GETKEYBOARDTYPE,
825 ONEPARAM_ROUTINE_GETPROCDEFLAYOUT,
826 ONEPARAM_ROUTINE_GETQUEUESTATUS,
827 ONEPARAM_ROUTINE_GETWINSTAINFO,
828 #if (WIN32K_VERSION < NTDDI_VISTA)
829 ONEPARAM_ROUTINE_HANDLESYSTHRDCREATFAIL,
830 #endif
831 ONEPARAM_ROUTINE_LOCKFOREGNDWINDOW,
832 ONEPARAM_ROUTINE_LOADFONTS,
833 ONEPARAM_ROUTINE_MAPDEKTOPOBJECT,
834 ONEPARAM_ROUTINE_MESSAGEBEEP,
835 ONEPARAM_ROUTINE_PLAYEVENTSOUND,
836 ONEPARAM_ROUTINE_POSTQUITMESSAGE,
837 #if (WIN32K_VERSION < NTDDI_VISTA)
838 ONEPARAM_ROUTINE_PREPAREFORLOGOFF,
839 #endif
840 ONEPARAM_ROUTINE_REALIZEPALETTE,
841 ONEPARAM_ROUTINE_REGISTERLPK,
842 #if (WIN32K_VERSION >= NTDDI_VISTA)
843 ONEPARAM_ROUTINE_REGISTERSYSTEMTHREAD,
844 #endif
845 ONEPARAM_ROUTINE_REMOTERECONNECT,
846 ONEPARAM_ROUTINE_REMOTETHINWIRESTATUS,
847 ONEPARAM_ROUTINE_RELEASEDC,
848 #if (WIN32K_VERSION >= NTDDI_VISTA)
849 ONEPARAM_ROUTINE_REMOTENOTIFY,
850 #endif
851 ONEPARAM_ROUTINE_REPLYMESSAGE,
852 ONEPARAM_ROUTINE_SETCARETBLINKTIME,
853 ONEPARAM_ROUTINE_SETDBLCLICKTIME,
854 #if (WIN32K_VERSION < NTDDI_VISTA)
855 ONEPARAM_ROUTINE_SETIMESHOWSTATUS,
856 #endif
857 ONEPARAM_ROUTINE_SETMESSAGEEXTRAINFO,
858 ONEPARAM_ROUTINE_SETPROCDEFLAYOUT,
859 #if (WIN32K_VERSION >= NTDDI_VISTA)
860 ONEPARAM_ROUTINE_SETWATERMARKSTRINGS,
861 #endif
862 ONEPARAM_ROUTINE_SHOWCURSOR,
863 ONEPARAM_ROUTINE_SHOWSTARTGLASS,
864 ONEPARAM_ROUTINE_SWAPMOUSEBUTTON,
865 X_ROUTINE_WOWMODULEUNLOAD,
866 #if (WIN32K_VERSION < NTDDI_VISTA)
867 X_ROUTINE_REMOTENOTIFY,
868 #endif
869 HWND_ROUTINE_DEREGISTERSHELLHOOKWINDOW,
870 HWND_ROUTINE_DWP_GETENABLEDPOPUP,
871 HWND_ROUTINE_GETWNDCONTEXTHLPID,
872 HWND_ROUTINE_REGISTERSHELLHOOKWINDOW,
873 HWND_ROUTINE_SETMSGBOX,
874 HWNDOPT_ROUTINE_SETPROGMANWINDOW,
875 HWNDOPT_ROUTINE_SETTASKMANWINDOW,
876 HWNDPARAM_ROUTINE_GETCLASSICOCUR,
877 HWNDPARAM_ROUTINE_CLEARWINDOWSTATE,
878 HWNDPARAM_ROUTINE_KILLSYSTEMTIMER,
879 HWNDPARAM_ROUTINE_SETDIALOGPOINTER,
880 HWNDPARAM_ROUTINE_SETVISIBLE,
881 HWNDPARAM_ROUTINE_SETWNDCONTEXTHLPID,
882 HWNDPARAM_ROUTINE_SETWINDOWSTATE,
883 HWNDLOCK_ROUTINE_WINDOWHASSHADOW, /* correct prefix ? */
884 HWNDLOCK_ROUTINE_ARRANGEICONICWINDOWS,
885 HWNDLOCK_ROUTINE_DRAWMENUBAR,
886 HWNDLOCK_ROUTINE_CHECKIMESHOWSTATUSINTHRD,
887 HWNDLOCK_ROUTINE_GETSYSMENUHANDLE,
888 HWNDLOCK_ROUTINE_REDRAWFRAME,
889 HWNDLOCK_ROUTINE_REDRAWFRAMEANDHOOK,
890 HWNDLOCK_ROUTINE_SETDLGSYSMENU,
891 HWNDLOCK_ROUTINE_SETFOREGROUNDWINDOW,
892 HWNDLOCK_ROUTINE_SETSYSMENU,
893 HWNDLOCK_ROUTINE_UPDATECKIENTRECT,
894 HWNDLOCK_ROUTINE_UPDATEWINDOW,
895 X_ROUTINE_IMESHOWSTATUSCHANGE,
896 TWOPARAM_ROUTINE_ENABLEWINDOW,
897 TWOPARAM_ROUTINE_REDRAWTITLE,
898 TWOPARAM_ROUTINE_SHOWOWNEDPOPUPS,
899 TWOPARAM_ROUTINE_SWITCHTOTHISWINDOW,
900 TWOPARAM_ROUTINE_UPDATEWINDOWS,
901 TWOPARAM_ROUTINE_VALIDATERGN,
902 #if (WIN32K_VERSION >= NTDDI_VISTA)
903 TWOPARAM_ROUTINE_CHANGEWNDMSGFILTER,
904 TWOPARAM_ROUTINE_GETCURSORPOS,
905 #endif
906 TWOPARAM_ROUTINE_GETHDEVNAME,
907 TWOPARAM_ROUTINE_INITANSIOEM,
908 TWOPARAM_ROUTINE_NLSSENDIMENOTIFY,
909 #if (WIN32K_VERSION >= NTDDI_VISTA)
910 TWOPARAM_ROUTINE_REGISTERGHSTWND,
911 #endif
912 TWOPARAM_ROUTINE_REGISTERLOGONPROCESS,
913 #if (WIN32K_VERSION >= NTDDI_VISTA)
914 TWOPARAM_ROUTINE_REGISTERSBLFROSTWND,
915 #else
916 TWOPARAM_ROUTINE_REGISTERSYSTEMTHREAD,
917 #endif
918 TWOPARAM_ROUTINE_REGISTERUSERHUNGAPPHANDLERS,
919 TWOPARAM_ROUTINE_SHADOWCLEANUP,
920 TWOPARAM_ROUTINE_REMOTESHADOWSTART,
921 TWOPARAM_ROUTINE_SETCARETPOS,
922 TWOPARAM_ROUTINE_SETCURSORPOS,
923 #if (WIN32K_VERSION >= NTDDI_VISTA)
924 TWOPARAM_ROUTINE_SETPHYSCURSORPOS,
925 #endif
926 TWOPARAM_ROUTINE_UNHOOKWINDOWSHOOK,
927 TWOPARAM_ROUTINE_WOWCLEANUP
928 };
929
930 DWORD
931 NTAPI
932 NtUserCallHwnd(
933 HWND hWnd,
934 DWORD Routine);
935
936 BOOL
937 NTAPI
938 NtUserCallHwndLock(
939 HWND hWnd,
940 DWORD Routine);
941
942 HWND
943 NTAPI
944 NtUserCallHwndOpt(
945 HWND hWnd,
946 DWORD Routine);
947
948 DWORD
949 NTAPI
950 NtUserCallHwndParam(
951 HWND hWnd,
952 DWORD Param,
953 DWORD Routine);
954
955 DWORD
956 NTAPI
957 NtUserCallHwndParamLock(
958 HWND hWnd,
959 DWORD Param,
960 DWORD Routine);
961
962 BOOL
963 NTAPI
964 NtUserCallMsgFilter(
965 LPMSG msg,
966 INT code);
967
968 LRESULT
969 NTAPI
970 NtUserCallNextHookEx(
971 int Code,
972 WPARAM wParam,
973 LPARAM lParam,
974 BOOL Ansi);
975
976 DWORD
977 NTAPI
978 NtUserCallNoParam(
979 DWORD Routine);
980
981 DWORD
982 NTAPI
983 NtUserCallOneParam(
984 DWORD Param,
985 DWORD Routine);
986
987 DWORD
988 NTAPI
989 NtUserCallTwoParam(
990 DWORD Param1,
991 DWORD Param2,
992 DWORD Routine);
993
994 BOOL
995 NTAPI
996 NtUserChangeClipboardChain(
997 HWND hWndRemove,
998 HWND hWndNewNext);
999
1000 LONG
1001 NTAPI
1002 NtUserChangeDisplaySettings(
1003 PUNICODE_STRING lpszDeviceName,
1004 LPDEVMODEW lpDevMode,
1005 HWND hwnd,
1006 DWORD dwflags,
1007 LPVOID lParam);
1008
1009 DWORD
1010 NTAPI
1011 NtUserCheckImeHotKey(
1012 DWORD dwUnknown1,
1013 DWORD dwUnknown2);
1014
1015 HWND NTAPI
1016 NtUserChildWindowFromPointEx(
1017 HWND Parent,
1018 LONG x,
1019 LONG y,
1020 UINT Flags);
1021
1022 BOOL
1023 NTAPI
1024 NtUserClipCursor(
1025 RECT *lpRect);
1026
1027 BOOL
1028 NTAPI
1029 NtUserCloseClipboard(VOID);
1030
1031 BOOL
1032 NTAPI
1033 NtUserCloseDesktop(
1034 HDESK hDesktop);
1035
1036 BOOL
1037 NTAPI
1038 NtUserCloseWindowStation(
1039 HWINSTA hWinSta);
1040
1041 DWORD
1042 NTAPI
1043 NtUserConsoleControl(
1044 DWORD dwUnknown1,
1045 DWORD dwUnknown2,
1046 DWORD dwUnknown3);
1047
1048 DWORD
1049 NTAPI
1050 NtUserConvertMemHandle(
1051 DWORD Unknown0,
1052 DWORD Unknown1);
1053
1054 int
1055 NTAPI
1056 NtUserCopyAcceleratorTable(
1057 HACCEL Table,
1058 LPACCEL Entries,
1059 int EntriesCount);
1060
1061 DWORD
1062 NTAPI
1063 NtUserCountClipboardFormats(VOID);
1064
1065 HACCEL
1066 NTAPI
1067 NtUserCreateAcceleratorTable(
1068 LPACCEL Entries,
1069 SIZE_T EntriesCount);
1070
1071 BOOL
1072 NTAPI
1073 NtUserCreateCaret(
1074 HWND hWnd,
1075 HBITMAP hBitmap,
1076 int nWidth,
1077 int nHeight);
1078
1079 HDESK
1080 NTAPI
1081 NtUserCreateDesktop(
1082 PUNICODE_STRING lpszDesktopName,
1083 DWORD dwFlags,
1084 ACCESS_MASK dwDesiredAccess,
1085 LPSECURITY_ATTRIBUTES lpSecurity,
1086 HWINSTA hWindowStation);
1087
1088 DWORD
1089 NTAPI
1090 NtUserCreateInputContext(
1091 DWORD dwUnknown1);
1092
1093 DWORD
1094 NTAPI
1095 NtUserCreateLocalMemHandle(
1096 DWORD Unknown0,
1097 DWORD Unknown1,
1098 DWORD Unknown2,
1099 DWORD Unknown3);
1100
1101 HWND
1102 NTAPI
1103 NtUserCreateWindowEx(
1104 DWORD dwExStyle,
1105 PUNICODE_STRING lpClassName,
1106 PUNICODE_STRING lpWindowName,
1107 DWORD dwStyle,
1108 LONG x,
1109 LONG y,
1110 LONG nWidth,
1111 LONG nHeight,
1112 HWND hWndParent,
1113 HMENU hMenu,
1114 HINSTANCE hInstance,
1115 LPVOID lpParam,
1116 DWORD dwShowMode,
1117 BOOL bUnicodeWindow,
1118 DWORD dwUnknown);
1119 #if 0
1120 HWND
1121 NTAPI
1122 NtUserCreateWindowEx(
1123 DWORD dwExStyle,
1124 PLARGE_STRING plstrClassName,
1125 PLARGE_STRING plstrClsVesrion,
1126 PLARGE_STRING plstrWindowName,
1127 DWORD dwStyle,
1128 int x,
1129 int y,
1130 int nWidth,
1131 int nHeight,
1132 HWND hWndParent,
1133 HMENU hMenu,
1134 HINSTANCE hInstance,
1135 LPVOID lpParam,
1136 DWORD dwFlags,
1137 PVOID acbiBuffer);
1138 #endif
1139
1140 HWINSTA
1141 NTAPI
1142 NtUserCreateWindowStation(
1143 PUNICODE_STRING lpszWindowStationName,
1144 ACCESS_MASK dwDesiredAccess,
1145 LPSECURITY_ATTRIBUTES lpSecurity,
1146 DWORD Unknown3,
1147 DWORD Unknown4,
1148 DWORD Unknown5,
1149 DWORD Unknown6);
1150
1151 BOOL
1152 NTAPI
1153 NtUserDdeGetQualityOfService(
1154 IN HWND hwndClient,
1155 IN HWND hWndServer,
1156 OUT PSECURITY_QUALITY_OF_SERVICE pqosPrev);
1157
1158 DWORD
1159 NTAPI
1160 NtUserDdeInitialize(
1161 DWORD Unknown0,
1162 DWORD Unknown1,
1163 DWORD Unknown2,
1164 DWORD Unknown3,
1165 DWORD Unknown4);
1166
1167 BOOL
1168 NTAPI
1169 NtUserDdeSetQualityOfService(
1170 IN HWND hwndClient,
1171 IN PSECURITY_QUALITY_OF_SERVICE pqosNew,
1172 OUT PSECURITY_QUALITY_OF_SERVICE pqosPrev);
1173
1174 HDWP NTAPI
1175 NtUserDeferWindowPos(HDWP WinPosInfo,
1176 HWND Wnd,
1177 HWND WndInsertAfter,
1178 int x,
1179 int y,
1180 int cx,
1181 int cy,
1182 UINT Flags);
1183 BOOL NTAPI
1184 NtUserDefSetText(HWND WindowHandle, PLARGE_STRING WindowText);
1185
1186 BOOLEAN
1187 NTAPI
1188 NtUserDestroyAcceleratorTable(
1189 HACCEL Table);
1190
1191 BOOL
1192 NTAPI
1193 NtUserDestroyCursor(
1194 HANDLE Handle,
1195 DWORD Unknown);
1196
1197 DWORD
1198 NTAPI
1199 NtUserDestroyInputContext(
1200 DWORD dwUnknown1);
1201
1202 BOOLEAN NTAPI
1203 NtUserDestroyWindow(HWND Wnd);
1204
1205 DWORD
1206 NTAPI
1207 NtUserDisableThreadIme(
1208 DWORD dwUnknown1);
1209
1210 LRESULT
1211 NTAPI
1212 NtUserDispatchMessage(PMSG pMsg);
1213
1214 BOOL
1215 NTAPI
1216 NtUserDragDetect(
1217 HWND hWnd,
1218 POINT pt);
1219
1220 DWORD
1221 NTAPI
1222 NtUserDragObject(
1223 HWND hwnd1,
1224 HWND hwnd2,
1225 UINT u1,
1226 DWORD dw1,
1227 HCURSOR hc1);
1228
1229 BOOL
1230 NTAPI
1231 NtUserDrawAnimatedRects(
1232 HWND hwnd,
1233 INT idAni,
1234 RECT *lprcFrom,
1235 RECT *lprcTo);
1236
1237 BOOL
1238 NTAPI
1239 NtUserDrawCaption(
1240 HWND hWnd,
1241 HDC hDc,
1242 LPCRECT lpRc,
1243 UINT uFlags);
1244
1245 BOOL
1246 NTAPI
1247 NtUserDrawCaptionTemp(
1248 HWND hWnd,
1249 HDC hDC,
1250 LPCRECT lpRc,
1251 HFONT hFont,
1252 HICON hIcon,
1253 const PUNICODE_STRING str,
1254 UINT uFlags);
1255
1256 BOOL
1257 NTAPI
1258 NtUserDrawIconEx(
1259 HDC hdc,
1260 int xLeft,
1261 int yTop,
1262 HICON hIcon,
1263 int cxWidth,
1264 int cyWidth,
1265 UINT istepIfAniCur,
1266 HBRUSH hbrFlickerFreeDraw,
1267 UINT diFlags,
1268 DWORD Unknown0,
1269 DWORD Unknown1);
1270
1271 DWORD
1272 NTAPI
1273 NtUserEmptyClipboard(VOID);
1274
1275 BOOL
1276 NTAPI
1277 NtUserEnableScrollBar(
1278 HWND hWnd,
1279 UINT wSBflags,
1280 UINT wArrows);
1281
1282 DWORD
1283 NTAPI
1284 NtUserEndDeferWindowPosEx(
1285 DWORD Unknown0,
1286 DWORD Unknown1);
1287
1288 BOOL NTAPI
1289 NtUserEndPaint(HWND hWnd, CONST PAINTSTRUCT* lPs);
1290
1291 BOOL
1292 NTAPI
1293 NtUserEnumDisplayDevices (
1294 PUNICODE_STRING lpDevice, /* device name */
1295 DWORD iDevNum, /* display device */
1296 PDISPLAY_DEVICEW lpDisplayDevice, /* device information */
1297 DWORD dwFlags ); /* reserved */
1298
1299 /*BOOL
1300 NTAPI
1301 NtUserEnumDisplayMonitors (
1302 HDC hdc,
1303 LPCRECT lprcClip,
1304 MONITORENUMPROC lpfnEnum,
1305 LPARAM dwData );*/
1306 /* FIXME: The call below is ros-specific and should be rewritten to use the same params as the correct call above. */
1307 INT
1308 NTAPI
1309 NtUserEnumDisplayMonitors(
1310 OPTIONAL IN HDC hDC,
1311 OPTIONAL IN LPCRECT pRect,
1312 OPTIONAL OUT HMONITOR *hMonitorList,
1313 OPTIONAL OUT LPRECT monitorRectList,
1314 OPTIONAL IN DWORD listSize );
1315
1316
1317 NTSTATUS
1318 NTAPI
1319 NtUserEnumDisplaySettings(
1320 PUNICODE_STRING lpszDeviceName,
1321 DWORD iModeNum,
1322 LPDEVMODEW lpDevMode, /* FIXME is this correct? */
1323 DWORD dwFlags );
1324
1325 DWORD
1326 NTAPI
1327 NtUserEvent(
1328 DWORD Unknown0);
1329
1330 DWORD
1331 NTAPI
1332 NtUserExcludeUpdateRgn(
1333 HDC hDC,
1334 HWND hWnd);
1335
1336 BOOL
1337 NTAPI
1338 NtUserFillWindow(
1339 HWND hWndPaint,
1340 HWND hWndPaint1,
1341 HDC hDC,
1342 HBRUSH hBrush);
1343
1344 HICON
1345 NTAPI
1346 NtUserFindExistingCursorIcon(
1347 HMODULE hModule,
1348 HRSRC hRsrc,
1349 LONG cx,
1350 LONG cy);
1351
1352 HWND
1353 NTAPI
1354 NtUserFindWindowEx(
1355 HWND hwndParent,
1356 HWND hwndChildAfter,
1357 PUNICODE_STRING ucClassName,
1358 PUNICODE_STRING ucWindowName,
1359 DWORD dwUnknown
1360 );
1361
1362 BOOL
1363 NTAPI
1364 NtUserFlashWindowEx(
1365 IN PFLASHWINFO pfwi);
1366
1367 BOOL
1368 NTAPI
1369 NtUserGetAltTabInfo(
1370 HWND hwnd,
1371 INT iItem,
1372 PALTTABINFO pati,
1373 LPWSTR pszItemText,
1374 UINT cchItemText,
1375 BOOL Ansi);
1376
1377 HWND NTAPI
1378 NtUserGetAncestor(HWND hWnd, UINT Flags);
1379
1380 DWORD
1381 NTAPI
1382 NtUserGetAppImeLevel(
1383 DWORD dwUnknown1);
1384
1385 SHORT
1386 NTAPI
1387 NtUserGetAsyncKeyState(
1388 INT Key);
1389
1390 DWORD
1391 NTAPI
1392 NtUserGetAtomName(
1393 ATOM nAtom,
1394 LPWSTR lpBuffer);
1395
1396 UINT
1397 NTAPI
1398 NtUserGetCaretBlinkTime(VOID);
1399
1400 BOOL
1401 NTAPI
1402 NtUserGetCaretPos(
1403 LPPOINT lpPoint);
1404
1405 BOOL NTAPI
1406 NtUserGetClassInfo(HINSTANCE hInstance,
1407 PUNICODE_STRING ClassName,
1408 LPWNDCLASSEXW wcex,
1409 LPWSTR *ppszMenuName,
1410 BOOL Ansi);
1411
1412 INT
1413 NTAPI
1414 NtUserGetClassName(HWND hWnd,
1415 PUNICODE_STRING ClassName,
1416 BOOL Ansi);
1417 #if 0 // Real NtUserGetClassName
1418 INT
1419 NTAPI
1420 NtUserGetClassName(HWND hWnd,
1421 BOOL Real, // 0 GetClassNameW, 1 RealGetWindowClassA/W
1422 PUNICODE_STRING ClassName);
1423 #endif
1424
1425 HANDLE
1426 NTAPI
1427 NtUserGetClipboardData(
1428 UINT uFormat,
1429 PVOID pBuffer);
1430
1431 INT
1432 NTAPI
1433 NtUserGetClipboardFormatName(
1434 UINT format,
1435 PUNICODE_STRING FormatName,
1436 INT cchMaxCount);
1437
1438 HWND
1439 NTAPI
1440 NtUserGetClipboardOwner(VOID);
1441
1442 DWORD
1443 NTAPI
1444 NtUserGetClipboardSequenceNumber(VOID);
1445
1446 HWND
1447 NTAPI
1448 NtUserGetClipboardViewer(VOID);
1449
1450 BOOL
1451 NTAPI
1452 NtUserGetClipCursor(
1453 RECT *lpRect);
1454
1455 BOOL
1456 NTAPI
1457 NtUserGetComboBoxInfo(
1458 HWND hWnd,
1459 PCOMBOBOXINFO pcbi);
1460
1461 HBRUSH
1462 NTAPI
1463 NtUserGetControlBrush(
1464 HWND hwnd,
1465 HDC hdc,
1466 UINT ctlType);
1467
1468 HBRUSH
1469 NTAPI
1470 NtUserGetControlColor(
1471 HWND hwndParent,
1472 HWND hwnd,
1473 HDC hdc,
1474 UINT CtlMsg);
1475
1476 DWORD
1477 NTAPI
1478 NtUserGetCPD(
1479 DWORD Unknown0,
1480 DWORD Unknown1,
1481 DWORD Unknown2);
1482
1483 DWORD
1484 NTAPI
1485 NtUserGetCursorFrameInfo(
1486 DWORD Unknown0,
1487 DWORD Unknown1,
1488 DWORD Unknown2,
1489 DWORD Unknown3);
1490
1491 BOOL
1492 NTAPI
1493 NtUserGetCursorInfo(
1494 PCURSORINFO pci);
1495
1496 HDC
1497 NTAPI
1498 NtUserGetDC(
1499 HWND hWnd);
1500
1501 HDC
1502 NTAPI
1503 NtUserGetDCEx(
1504 HWND hWnd,
1505 HANDLE hRegion,
1506 ULONG Flags);
1507
1508 UINT
1509 NTAPI
1510 NtUserGetDoubleClickTime(VOID);
1511
1512 HWND
1513 NTAPI
1514 NtUserGetForegroundWindow(VOID);
1515
1516 DWORD
1517 NTAPI
1518 NtUserGetGuiResources(
1519 HANDLE hProcess,
1520 DWORD uiFlags);
1521
1522 BOOL
1523 NTAPI
1524 NtUserGetGUIThreadInfo(
1525 DWORD idThread,
1526 LPGUITHREADINFO lpgui);
1527
1528 BOOL
1529 NTAPI
1530 NtUserGetIconInfo(
1531 HANDLE hCurIcon,
1532 PICONINFO IconInfo,
1533 PUNICODE_STRING lpInstName,
1534 PUNICODE_STRING lpResName,
1535 LPDWORD pbpp,
1536 BOOL bInternal);
1537
1538 BOOL
1539 NTAPI
1540 NtUserGetIconSize(
1541 HANDLE Handle,
1542 UINT istepIfAniCur,
1543 LONG *plcx,
1544 LONG *plcy);
1545
1546 DWORD
1547 NTAPI
1548 NtUserGetImeHotKey(
1549 DWORD Unknown0,
1550 DWORD Unknown1,
1551 DWORD Unknown2,
1552 DWORD Unknown3);
1553
1554 DWORD
1555 NTAPI
1556 NtUserGetImeInfoEx(
1557 DWORD dwUnknown1,
1558 DWORD dwUnknown2);
1559
1560 DWORD
1561 NTAPI
1562 NtUserGetInternalWindowPos(
1563 HWND hwnd,
1564 LPRECT rectWnd,
1565 LPPOINT ptIcon);
1566
1567 HKL
1568 NTAPI
1569 NtUserGetKeyboardLayout(
1570 DWORD dwThreadid);
1571
1572 UINT
1573 NTAPI
1574 NtUserGetKeyboardLayoutList(
1575 INT nItems,
1576 HKL *pHklBuff);
1577
1578 BOOL
1579 NTAPI
1580 NtUserGetKeyboardLayoutName(
1581 LPWSTR lpszName);
1582
1583 DWORD
1584 NTAPI
1585 NtUserGetKeyboardState(
1586 LPBYTE Unknown0);
1587
1588 DWORD
1589 NTAPI
1590 NtUserGetKeyboardType(
1591 DWORD TypeFlag);
1592
1593 DWORD
1594 NTAPI
1595 NtUserGetKeyNameText( LONG lParam, LPWSTR lpString, int nSize );
1596
1597 SHORT
1598 NTAPI
1599 NtUserGetKeyState(
1600 INT VirtKey);
1601
1602 BOOL
1603 NTAPI
1604 NtUserGetLayeredWindowAttributes(
1605 HWND hwnd,
1606 COLORREF *pcrKey,
1607 BYTE *pbAlpha,
1608 DWORD *pdwFlags);
1609
1610 DWORD
1611 NTAPI
1612 NtUserGetListBoxInfo(
1613 HWND hWnd);
1614
1615 typedef struct tagNTUSERGETMESSAGEINFO
1616 {
1617 MSG Msg;
1618 ULONG LParamSize;
1619 } NTUSERGETMESSAGEINFO, *PNTUSERGETMESSAGEINFO;
1620
1621 BOOL
1622 NTAPI
1623 NtUserGetMessage(
1624 PNTUSERGETMESSAGEINFO MsgInfo,
1625 HWND hWnd,
1626 UINT wMsgFilterMin,
1627 UINT wMsgFilterMax);
1628
1629 DWORD
1630 NTAPI
1631 NtUserGetMouseMovePointsEx(
1632 UINT cbSize,
1633 LPMOUSEMOVEPOINT lppt,
1634 LPMOUSEMOVEPOINT lpptBuf,
1635 int nBufPoints,
1636 DWORD resolution);
1637
1638 BOOL
1639 NTAPI
1640 NtUserGetObjectInformation(
1641 HANDLE hObject,
1642 DWORD nIndex,
1643 PVOID pvInformation,
1644 DWORD nLength,
1645 PDWORD nLengthNeeded);
1646
1647 HWND
1648 NTAPI
1649 NtUserGetOpenClipboardWindow(VOID);
1650
1651 INT
1652 NTAPI
1653 NtUserGetPriorityClipboardFormat(
1654 UINT *paFormatPriorityList,
1655 INT cFormats);
1656
1657 HWINSTA
1658 NTAPI
1659 NtUserGetProcessWindowStation(VOID);
1660
1661 DWORD
1662 NTAPI
1663 NtUserGetRawInputBuffer(
1664 PRAWINPUT pData,
1665 PUINT pcbSize,
1666 UINT cbSizeHeader);
1667
1668 DWORD
1669 NTAPI
1670 NtUserGetRawInputData(
1671 HRAWINPUT hRawInput,
1672 UINT uiCommand,
1673 LPVOID pData,
1674 PUINT pcbSize,
1675 UINT cbSizeHeader);
1676
1677 DWORD
1678 NTAPI
1679 NtUserGetRawInputDeviceInfo(
1680 HANDLE hDevice,
1681 UINT uiCommand,
1682 LPVOID pData,
1683 PUINT pcbSize);
1684
1685 DWORD
1686 NTAPI
1687 NtUserGetRawInputDeviceList(
1688 PRAWINPUTDEVICELIST pRawInputDeviceList,
1689 PUINT puiNumDevices,
1690 UINT cbSize);
1691
1692 DWORD
1693 NTAPI
1694 NtUserGetRegisteredRawInputDevices(
1695 PRAWINPUTDEVICE pRawInputDevices,
1696 PUINT puiNumDevices,
1697 UINT cbSize);
1698
1699 BOOL
1700 NTAPI
1701 NtUserGetScrollBarInfo(
1702 HWND hWnd,
1703 LONG idObject,
1704 PSCROLLBARINFO psbi);
1705
1706 HDESK
1707 NTAPI
1708 NtUserGetThreadDesktop(
1709 DWORD dwThreadId,
1710 DWORD Unknown1);
1711
1712
1713 enum ThreadStateRoutines
1714 {
1715 THREADSTATE_GETTHREADINFO,
1716 THREADSTATE_INSENDMESSAGE,
1717 THREADSTATE_FOCUSWINDOW,
1718 THREADSTATE_ACTIVEWINDOW,
1719 THREADSTATE_CAPTUREWINDOW,
1720 THREADSTATE_PROGMANWINDOW,
1721 THREADSTATE_TASKMANWINDOW
1722 };
1723
1724 DWORD
1725 NTAPI
1726 NtUserGetThreadState(
1727 DWORD Routine);
1728
1729 BOOLEAN
1730 NTAPI
1731 NtUserGetTitleBarInfo(
1732 HWND hwnd,
1733 PTITLEBARINFO pti);
1734
1735 BOOL NTAPI
1736 NtUserGetUpdateRect(HWND hWnd, LPRECT lpRect, BOOL fErase);
1737
1738 int
1739 NTAPI
1740 NtUserGetUpdateRgn(
1741 HWND hWnd,
1742 HRGN hRgn,
1743 BOOL bErase);
1744
1745 HDC
1746 NTAPI
1747 NtUserGetWindowDC(
1748 HWND hWnd);
1749
1750 BOOL
1751 NTAPI
1752 NtUserGetWindowPlacement(
1753 HWND hWnd,
1754 WINDOWPLACEMENT *lpwndpl);
1755
1756 DWORD
1757 NTAPI
1758 NtUserGetWOWClass(
1759 DWORD Unknown0,
1760 DWORD Unknown1);
1761
1762 DWORD
1763 NTAPI
1764 NtUserHardErrorControl(
1765 DWORD dwUnknown1,
1766 DWORD dwUnknown2,
1767 DWORD dwUnknown3);
1768
1769 BOOL
1770 NTAPI
1771 NtUserImpersonateDdeClientWindow(
1772 HWND hWndClient,
1773 HWND hWndServer);
1774
1775 NTSTATUS
1776 NTAPI
1777 NtUserInitialize(
1778 DWORD dwWinVersion,
1779 HANDLE hPowerRequestEvent,
1780 HANDLE hMediaRequestEvent);
1781
1782 NTSTATUS
1783 NTAPI
1784 NtUserInitializeClientPfnArrays(
1785 PPFNCLIENT pfnClientA,
1786 PPFNCLIENT pfnClientW,
1787 PPFNCLIENTWORKER pfnClientWorker,
1788 HINSTANCE hmodUser);
1789
1790 DWORD
1791 NTAPI
1792 NtUserInitTask(
1793 DWORD Unknown0,
1794 DWORD Unknown1,
1795 DWORD Unknown2,
1796 DWORD Unknown3,
1797 DWORD Unknown4,
1798 DWORD Unknown5,
1799 DWORD Unknown6,
1800 DWORD Unknown7,
1801 DWORD Unknown8,
1802 DWORD Unknown9,
1803 DWORD Unknown10,
1804 DWORD Unknown11);
1805
1806 INT
1807 NTAPI
1808 NtUserInternalGetWindowText(
1809 HWND hWnd,
1810 LPWSTR lpString,
1811 INT nMaxCount);
1812
1813 BOOL
1814 NTAPI
1815 NtUserInvalidateRect(
1816 HWND hWnd,
1817 CONST RECT *lpRect,
1818 BOOL bErase);
1819
1820 BOOL
1821 NTAPI
1822 NtUserInvalidateRgn(
1823 HWND hWnd,
1824 HRGN hRgn,
1825 BOOL bErase);
1826
1827 BOOL
1828 NTAPI
1829 NtUserIsClipboardFormatAvailable(
1830 UINT format);
1831
1832 BOOL
1833 NTAPI
1834 NtUserKillTimer
1835 (
1836 HWND hWnd,
1837 UINT_PTR uIDEvent
1838 );
1839
1840 HKL
1841 NTAPI
1842 NtUserLoadKeyboardLayoutEx(
1843 IN HANDLE Handle,
1844 IN DWORD offTable,
1845 IN PUNICODE_STRING puszKeyboardName,
1846 IN HKL hKL,
1847 IN PUNICODE_STRING puszKLID,
1848 IN DWORD dwKLID,
1849 IN UINT Flags);
1850
1851 BOOL
1852 NTAPI
1853 NtUserLockWindowStation(
1854 HWINSTA hWindowStation);
1855
1856 BOOL
1857 NTAPI
1858 NtUserLockWindowUpdate(
1859 HWND hWnd);
1860
1861 BOOL
1862 NTAPI
1863 NtUserLockWorkStation(VOID);
1864
1865 UINT
1866 NTAPI
1867 NtUserMapVirtualKeyEx( UINT keyCode,
1868 UINT transType,
1869 DWORD keyboardId,
1870 HKL dwhkl );
1871 LRESULT
1872 NTAPI
1873 NtUserMessageCall(
1874 HWND hWnd,
1875 UINT Msg,
1876 WPARAM wParam,
1877 LPARAM lParam,
1878 ULONG_PTR ResultInfo,
1879 DWORD dwType, // FNID_XX types
1880 BOOL Ansi);
1881
1882 DWORD
1883 NTAPI
1884 NtUserMinMaximize(
1885 HWND hWnd,
1886 UINT cmd, // Wine SW_ commands
1887 BOOL Hide);
1888
1889 DWORD
1890 NTAPI
1891 NtUserMNDragLeave(VOID);
1892
1893 DWORD
1894 NTAPI
1895 NtUserMNDragOver(
1896 DWORD Unknown0,
1897 DWORD Unknown1);
1898
1899 DWORD
1900 NTAPI
1901 NtUserModifyUserStartupInfoFlags(
1902 DWORD Unknown0,
1903 DWORD Unknown1);
1904
1905 BOOL
1906 NTAPI
1907 NtUserMoveWindow(
1908 HWND hWnd,
1909 int X,
1910 int Y,
1911 int nWidth,
1912 int nHeight,
1913 BOOL bRepaint
1914 );
1915
1916 DWORD
1917 NTAPI
1918 NtUserNotifyIMEStatus(
1919 DWORD Unknown0,
1920 DWORD Unknown1,
1921 DWORD Unknown2);
1922
1923 DWORD
1924 NTAPI
1925 NtUserNotifyProcessCreate(
1926 DWORD dwUnknown1,
1927 DWORD dwUnknown2,
1928 DWORD dwUnknown3,
1929 DWORD dwUnknown4);
1930
1931 VOID
1932 NTAPI
1933 NtUserNotifyWinEvent(
1934 DWORD Event,
1935 HWND hWnd,
1936 LONG idObject,
1937 LONG idChild);
1938
1939 BOOL
1940 NTAPI
1941 NtUserOpenClipboard(
1942 HWND hWnd,
1943 DWORD Unknown1);
1944
1945 HDESK
1946 NTAPI
1947 NtUserOpenDesktop(
1948 PUNICODE_STRING lpszDesktopName,
1949 DWORD dwFlags,
1950 ACCESS_MASK dwDesiredAccess);
1951
1952 HDESK
1953 NTAPI
1954 NtUserOpenInputDesktop(
1955 DWORD dwFlags,
1956 BOOL fInherit,
1957 ACCESS_MASK dwDesiredAccess);
1958
1959 HWINSTA
1960 NTAPI
1961 NtUserOpenWindowStation(
1962 PUNICODE_STRING lpszWindowStationName,
1963 ACCESS_MASK dwDesiredAccess);
1964
1965 BOOL
1966 NTAPI
1967 NtUserPaintDesktop(
1968 HDC hDC);
1969
1970 DWORD
1971 NTAPI
1972 NtUserPaintMenuBar(
1973 DWORD dwUnknown1,
1974 DWORD dwUnknown2,
1975 DWORD dwUnknown3,
1976 DWORD dwUnknown4,
1977 DWORD dwUnknown5,
1978 DWORD dwUnknown6);
1979
1980 BOOL
1981 NTAPI
1982 NtUserPeekMessage(
1983 PNTUSERGETMESSAGEINFO MsgInfo,
1984 HWND hWnd,
1985 UINT wMsgFilterMin,
1986 UINT wMsgFilterMax,
1987 UINT wRemoveMsg);
1988
1989 BOOL
1990 NTAPI
1991 NtUserPostMessage(
1992 HWND hWnd,
1993 UINT Msg,
1994 WPARAM wParam,
1995 LPARAM lParam);
1996
1997 BOOL
1998 NTAPI
1999 NtUserPostThreadMessage(
2000 DWORD idThread,
2001 UINT Msg,
2002 WPARAM wParam,
2003 LPARAM lParam);
2004
2005 BOOL
2006 NTAPI
2007 NtUserPrintWindow(
2008 HWND hwnd,
2009 HDC hdcBlt,
2010 UINT nFlags);
2011
2012 NTSTATUS
2013 NTAPI
2014 NtUserProcessConnect(
2015 IN HANDLE Process,
2016 OUT PUSERCONNECT pUserConnect,
2017 IN DWORD dwSize); // sizeof(USERCONNECT)
2018
2019 DWORD
2020 NTAPI
2021 NtUserQueryInformationThread(
2022 DWORD dwUnknown1,
2023 DWORD dwUnknown2,
2024 DWORD dwUnknown3,
2025 DWORD dwUnknown4,
2026 DWORD dwUnknown5);
2027
2028 DWORD
2029 NTAPI
2030 NtUserQueryInputContext(
2031 DWORD dwUnknown1,
2032 DWORD dwUnknown2);
2033
2034 DWORD
2035 NTAPI
2036 NtUserQuerySendMessage(
2037 DWORD Unknown0);
2038
2039 DWORD
2040 NTAPI
2041 NtUserQueryUserCounters(
2042 DWORD Unknown0,
2043 DWORD Unknown1,
2044 DWORD Unknown2,
2045 DWORD Unknown3,
2046 DWORD Unknown4);
2047
2048 #define QUERY_WINDOW_UNIQUE_PROCESS_ID 0x00
2049 #define QUERY_WINDOW_UNIQUE_THREAD_ID 0x01
2050 #define QUERY_WINDOW_ACTIVE 0x02
2051 #define QUERY_WINDOW_FOCUS 0x03
2052 #define QUERY_WINDOW_ISHUNG 0x04
2053 DWORD
2054 NTAPI
2055 NtUserQueryWindow(
2056 HWND hWnd,
2057 DWORD Index);
2058
2059 DWORD
2060 NTAPI
2061 NtUserRealInternalGetMessage(
2062 DWORD dwUnknown1,
2063 DWORD dwUnknown2,
2064 DWORD dwUnknown3,
2065 DWORD dwUnknown4,
2066 DWORD dwUnknown5,
2067 DWORD dwUnknown6);
2068
2069 DWORD
2070 NTAPI
2071 NtUserRealChildWindowFromPoint(
2072 DWORD Unknown0,
2073 DWORD Unknown1,
2074 DWORD Unknown2);
2075
2076 DWORD
2077 NTAPI
2078 NtUserRealWaitMessageEx(
2079 DWORD dwUnknown1,
2080 DWORD dwUnknown2);
2081
2082 BOOL
2083 NTAPI
2084 NtUserRedrawWindow
2085 (
2086 HWND hWnd,
2087 CONST RECT *lprcUpdate,
2088 HRGN hrgnUpdate,
2089 UINT flags
2090 );
2091
2092 RTL_ATOM
2093 NTAPI
2094 NtUserRegisterClassExWOW(
2095 WNDCLASSEXW* lpwcx,
2096 PUNICODE_STRING pustrClassName,
2097 PUNICODE_STRING pustrCNVersion,
2098 PCLSMENUNAME pClassMenuName,
2099 DWORD fnID,
2100 DWORD Flags,
2101 LPDWORD pWow);
2102
2103 BOOL
2104 NTAPI
2105 NtUserRegisterRawInputDevices(
2106 IN PCRAWINPUTDEVICE pRawInputDevices,
2107 IN UINT uiNumDevices,
2108 IN UINT cbSize);
2109
2110 DWORD
2111 NTAPI
2112 NtUserRegisterUserApiHook(
2113 DWORD dwUnknown1,
2114 DWORD dwUnknown2);
2115
2116 BOOL
2117 NTAPI
2118 NtUserRegisterHotKey(HWND hWnd,
2119 int id,
2120 UINT fsModifiers,
2121 UINT vk);
2122
2123 DWORD
2124 NTAPI
2125 NtUserRegisterTasklist(
2126 DWORD Unknown0);
2127
2128 UINT NTAPI
2129 NtUserRegisterWindowMessage(PUNICODE_STRING MessageName);
2130
2131 DWORD
2132 NTAPI
2133 NtUserRemoteConnect(
2134 DWORD dwUnknown1,
2135 DWORD dwUnknown2,
2136 DWORD dwUnknown3);
2137
2138 DWORD
2139 NTAPI
2140 NtUserRemoteRedrawRectangle(
2141 DWORD dwUnknown1,
2142 DWORD dwUnknown2,
2143 DWORD dwUnknown3,
2144 DWORD dwUnknown4);
2145
2146 DWORD
2147 NTAPI
2148 NtUserRemoteRedrawScreen(VOID);
2149
2150 DWORD
2151 NTAPI
2152 NtUserRemoteStopScreenUpdates(VOID);
2153
2154 HANDLE NTAPI
2155 NtUserRemoveProp(HWND hWnd, ATOM Atom);
2156
2157 DWORD
2158 NTAPI
2159 NtUserResolveDesktop(
2160 DWORD dwUnknown1,
2161 DWORD dwUnknown2,
2162 DWORD dwUnknown3,
2163 DWORD dwUnknown4);
2164
2165 DWORD
2166 NTAPI
2167 NtUserResolveDesktopForWOW(
2168 DWORD Unknown0);
2169
2170 DWORD
2171 NTAPI
2172 NtUserSBGetParms(
2173 DWORD Unknown0,
2174 DWORD Unknown1,
2175 DWORD Unknown2,
2176 DWORD Unknown3);
2177
2178 BOOL
2179 NTAPI
2180 NtUserScrollDC(
2181 HDC hDC,
2182 int dx,
2183 int dy,
2184 CONST RECT *lprcScroll,
2185 CONST RECT *lprcClip ,
2186 HRGN hrgnUpdate,
2187 LPRECT lprcUpdate);
2188
2189 DWORD NTAPI
2190 NtUserScrollWindowEx(HWND hWnd, INT dx, INT dy, const RECT *rect,
2191 const RECT *clipRect, HRGN hrgnUpdate, LPRECT rcUpdate, UINT flags);
2192
2193 UINT
2194 NTAPI
2195 NtUserSendInput(
2196 UINT nInputs,
2197 LPINPUT pInput,
2198 INT cbSize);
2199
2200 HWND NTAPI
2201 NtUserSetActiveWindow(HWND Wnd);
2202
2203 DWORD
2204 NTAPI
2205 NtUserSetAppImeLevel(
2206 DWORD dwUnknown1,
2207 DWORD dwUnknown2);
2208
2209 HWND NTAPI
2210 NtUserSetCapture(HWND Wnd);
2211
2212 ULONG_PTR NTAPI
2213 NtUserSetClassLong(
2214 HWND hWnd,
2215 INT Offset,
2216 ULONG_PTR dwNewLong,
2217 BOOL Ansi );
2218
2219 WORD
2220 NTAPI
2221 NtUserSetClassWord(
2222 HWND hWnd,
2223 INT nIndex,
2224 WORD wNewWord);
2225
2226 HANDLE
2227 NTAPI
2228 NtUserSetClipboardData(
2229 UINT uFormat,
2230 HANDLE hMem,
2231 DWORD Unknown2);
2232
2233 HWND
2234 NTAPI
2235 NtUserSetClipboardViewer(
2236 HWND hWndNewViewer);
2237
2238 HPALETTE
2239 NTAPI
2240 NtUserSelectPalette(
2241 HDC hDC,
2242 HPALETTE hpal,
2243 BOOL ForceBackground
2244 );
2245
2246 DWORD
2247 NTAPI
2248 NtUserSetConsoleReserveKeys(
2249 DWORD Unknown0,
2250 DWORD Unknown1);
2251
2252 HCURSOR
2253 NTAPI
2254 NtUserSetCursor(
2255 HCURSOR hCursor);
2256
2257 BOOL
2258 NTAPI
2259 NtUserSetCursorContents(
2260 HANDLE Handle,
2261 PICONINFO IconInfo);
2262
2263 BOOL
2264 NTAPI
2265 NtUserSetCursorIconData(
2266 HANDLE Handle,
2267 PBOOL fIcon,
2268 POINT *Hotspot,
2269 HMODULE hModule,
2270 HRSRC hRsrc,
2271 HRSRC hGroupRsrc);
2272
2273 DWORD
2274 NTAPI
2275 NtUserSetDbgTag(
2276 DWORD Unknown0,
2277 DWORD Unknown1);
2278
2279 HWND
2280 NTAPI
2281 NtUserSetFocus(
2282 HWND hWnd);
2283
2284 DWORD
2285 NTAPI
2286 NtUserSetImeHotKey(
2287 DWORD Unknown0,
2288 DWORD Unknown1,
2289 DWORD Unknown2,
2290 DWORD Unknown3,
2291 DWORD Unknown4);
2292
2293 DWORD
2294 NTAPI
2295 NtUserSetImeInfoEx(
2296 DWORD dwUnknown1);
2297
2298 DWORD
2299 NTAPI
2300 NtUserSetImeOwnerWindow(
2301 DWORD Unknown0,
2302 DWORD Unknown1);
2303
2304 DWORD
2305 NTAPI
2306 NtUserSetInformationProcess(
2307 DWORD dwUnknown1,
2308 DWORD dwUnknown2,
2309 DWORD dwUnknown3,
2310 DWORD dwUnknown4);
2311
2312 DWORD
2313 NTAPI
2314 NtUserSetInformationThread(
2315 DWORD dwUnknown1,
2316 DWORD dwUnknown2,
2317 DWORD dwUnknown3,
2318 DWORD dwUnknown4);
2319
2320 DWORD
2321 NTAPI
2322 NtUserSetInternalWindowPos(
2323 HWND hwnd,
2324 UINT showCmd,
2325 LPRECT rect,
2326 LPPOINT pt);
2327
2328 BOOL
2329 NTAPI
2330 NtUserSetKeyboardState(
2331 LPBYTE lpKeyState);
2332
2333 BOOL
2334 NTAPI
2335 NtUserSetLayeredWindowAttributes(
2336 HWND hwnd,
2337 COLORREF crKey,
2338 BYTE bAlpha,
2339 DWORD dwFlags);
2340
2341 BOOL
2342 NTAPI
2343 NtUserSetLogonNotifyWindow(
2344 HWND hWnd);
2345
2346 BOOL
2347 NTAPI
2348 NtUserSetObjectInformation(
2349 HANDLE hObject,
2350 DWORD nIndex,
2351 PVOID pvInformation,
2352 DWORD nLength);
2353
2354 HWND
2355 NTAPI
2356 NtUserSetParent(
2357 HWND hWndChild,
2358 HWND hWndNewParent);
2359
2360 BOOL
2361 NTAPI
2362 NtUserSetProcessWindowStation(
2363 HWINSTA hWindowStation);
2364
2365 BOOL NTAPI
2366 NtUserSetProp(HWND hWnd, ATOM Atom, HANDLE Data);
2367
2368 DWORD
2369 NTAPI
2370 NtUserSetRipFlags(
2371 DWORD Unknown0,
2372 DWORD Unknown1);
2373
2374 DWORD
2375 NTAPI
2376 NtUserSetScrollInfo(
2377 HWND hwnd,
2378 int fnBar,
2379 LPCSCROLLINFO lpsi,
2380 BOOL bRedraw);
2381
2382 BOOL
2383 NTAPI
2384 NtUserSetShellWindowEx(
2385 HWND hwndShell,
2386 HWND hwndShellListView);
2387
2388 BOOL
2389 NTAPI
2390 NtUserSetSysColors(
2391 int cElements,
2392 IN CONST INT *lpaElements,
2393 IN CONST COLORREF *lpaRgbValues,
2394 FLONG Flags);
2395
2396 BOOL
2397 NTAPI
2398 NtUserSetSystemCursor(
2399 HCURSOR hcur,
2400 DWORD id);
2401
2402 BOOL
2403 NTAPI
2404 NtUserSetThreadDesktop(
2405 HDESK hDesktop);
2406
2407 DWORD
2408 NTAPI
2409 NtUserSetThreadState(
2410 DWORD Unknown0,
2411 DWORD Unknown1);
2412
2413 UINT_PTR
2414 NTAPI
2415 NtUserSetSystemTimer
2416 (
2417 HWND hWnd,
2418 UINT_PTR nIDEvent,
2419 UINT uElapse,
2420 TIMERPROC lpTimerFunc
2421 );
2422
2423 DWORD
2424 NTAPI
2425 NtUserSetThreadLayoutHandles(
2426 DWORD dwUnknown1,
2427 DWORD dwUnknown2);
2428
2429 UINT_PTR
2430 NTAPI
2431 NtUserSetTimer
2432 (
2433 HWND hWnd,
2434 UINT_PTR nIDEvent,
2435 UINT uElapse,
2436 TIMERPROC lpTimerFunc
2437 );
2438
2439 BOOL
2440 NTAPI
2441 NtUserSetWindowFNID(
2442 HWND hWnd,
2443 WORD fnID);
2444
2445 LONG
2446 NTAPI
2447 NtUserSetWindowLong(
2448 HWND hWnd,
2449 DWORD Index,
2450 LONG NewValue,
2451 BOOL Ansi);
2452
2453 BOOL
2454 NTAPI
2455 NtUserSetWindowPlacement(
2456 HWND hWnd,
2457 WINDOWPLACEMENT *lpwndpl);
2458
2459 BOOL
2460 NTAPI NtUserSetWindowPos(
2461 HWND hWnd,
2462 HWND hWndInsertAfter,
2463 int X,
2464 int Y,
2465 int cx,
2466 int cy,
2467 UINT uFlags
2468 );
2469
2470 INT
2471 NTAPI
2472 NtUserSetWindowRgn(
2473 HWND hWnd,
2474 HRGN hRgn,
2475 BOOL bRedraw);
2476
2477 HHOOK
2478 NTAPI
2479 NtUserSetWindowsHookAW(
2480 int idHook,
2481 HOOKPROC lpfn,
2482 BOOL Ansi);
2483
2484 HHOOK
2485 NTAPI
2486 NtUserSetWindowsHookEx(
2487 HINSTANCE Mod,
2488 PUNICODE_STRING ModuleName,
2489 DWORD ThreadId,
2490 int HookId,
2491 HOOKPROC HookProc,
2492 BOOL Ansi);
2493
2494 DWORD
2495 NTAPI
2496 NtUserSetWindowStationUser(
2497 DWORD Unknown0,
2498 DWORD Unknown1,
2499 DWORD Unknown2,
2500 DWORD Unknown3);
2501
2502 WORD NTAPI
2503 NtUserSetWindowWord(HWND hWnd, INT Index, WORD NewVal);
2504
2505 HWINEVENTHOOK
2506 NTAPI
2507 NtUserSetWinEventHook(
2508 UINT eventMin,
2509 UINT eventMax,
2510 HMODULE hmodWinEventProc,
2511 PUNICODE_STRING puString,
2512 WINEVENTPROC lpfnWinEventProc,
2513 DWORD idProcess,
2514 DWORD idThread,
2515 UINT dwflags);
2516
2517 BOOL
2518 NTAPI
2519 NtUserShowCaret(
2520 HWND hWnd);
2521
2522 BOOL
2523 NTAPI
2524 NtUserHideCaret(
2525 HWND hWnd);
2526
2527 DWORD
2528 NTAPI
2529 NtUserShowScrollBar(HWND hWnd, int wBar, DWORD bShow);
2530
2531 BOOL
2532 NTAPI
2533 NtUserShowWindow(
2534 HWND hWnd,
2535 LONG nCmdShow);
2536
2537 BOOL
2538 NTAPI
2539 NtUserShowWindowAsync(
2540 HWND hWnd,
2541 LONG nCmdShow);
2542
2543 BOOL
2544 NTAPI
2545 NtUserSoundSentry(VOID);
2546
2547 BOOL
2548 NTAPI
2549 NtUserSwitchDesktop(
2550 HDESK hDesktop);
2551
2552 BOOL
2553 NTAPI
2554 NtUserSystemParametersInfo(
2555 UINT uiAction,
2556 UINT uiParam,
2557 PVOID pvParam,
2558 UINT fWinIni);
2559
2560 DWORD
2561 NTAPI
2562 NtUserTestForInteractiveUser(
2563 DWORD dwUnknown1);
2564
2565 INT
2566 NTAPI
2567 NtUserToUnicodeEx(
2568 UINT wVirtKey,
2569 UINT wScanCode,
2570 PBYTE lpKeyState,
2571 LPWSTR pwszBuff,
2572 int cchBuff,
2573 UINT wFlags,
2574 HKL dwhkl );
2575
2576 BOOL
2577 NTAPI
2578 NtUserTrackMouseEvent(
2579 LPTRACKMOUSEEVENT lpEventTrack);
2580
2581 int
2582 NTAPI
2583 NtUserTranslateAccelerator(
2584 HWND Window,
2585 HACCEL Table,
2586 LPMSG Message);
2587
2588 BOOL
2589 NTAPI
2590 NtUserTranslateMessage(
2591 LPMSG lpMsg,
2592 HKL dwhkl );
2593
2594 BOOL
2595 NTAPI
2596 NtUserUnhookWindowsHookEx(
2597 HHOOK Hook);
2598
2599 BOOL
2600 NTAPI
2601 NtUserUnhookWinEvent(
2602 HWINEVENTHOOK hWinEventHook);
2603
2604 BOOL
2605 NTAPI
2606 NtUserUnloadKeyboardLayout(
2607 HKL hKl);
2608
2609 BOOL
2610 NTAPI
2611 NtUserUnlockWindowStation(
2612 HWINSTA hWindowStation);
2613
2614 BOOL
2615 NTAPI
2616 NtUserUnregisterClass(
2617 PUNICODE_STRING ClassNameOrAtom,
2618 HINSTANCE hInstance,
2619 PCLSMENUNAME pClassMenuName);
2620
2621 BOOL
2622 NTAPI
2623 NtUserUnregisterHotKey(HWND hWnd,
2624 int id);
2625
2626 DWORD
2627 NTAPI
2628 NtUserUnregisterUserApiHook(VOID);
2629
2630 DWORD
2631 NTAPI
2632 NtUserUpdateInputContext(
2633 DWORD Unknown0,
2634 DWORD Unknown1,
2635 DWORD Unknown2);
2636
2637 DWORD
2638 NTAPI
2639 NtUserUpdateInstance(
2640 DWORD Unknown0,
2641 DWORD Unknown1,
2642 DWORD Unknown2);
2643
2644 BOOL
2645 NTAPI
2646 NtUserUpdateLayeredWindow(
2647 HWND hwnd,
2648 HDC hdcDst,
2649 POINT *pptDst,
2650 SIZE *psize,
2651 HDC hdcSrc,
2652 POINT *pptSrc,
2653 COLORREF crKey,
2654 BLENDFUNCTION *pblend,
2655 DWORD dwFlags);
2656
2657 BOOL
2658 NTAPI
2659 NtUserUpdatePerUserSystemParameters(
2660 DWORD dwReserved,
2661 BOOL bEnable);
2662
2663 BOOL
2664 NTAPI
2665 NtUserUserHandleGrantAccess(
2666 IN HANDLE hUserHandle,
2667 IN HANDLE hJob,
2668 IN BOOL bGrant);
2669
2670 BOOL
2671 NTAPI
2672 NtUserValidateHandleSecure(
2673 HANDLE hHdl,
2674 BOOL Restricted);
2675
2676 BOOL
2677 NTAPI
2678 NtUserValidateRect(
2679 HWND hWnd,
2680 CONST RECT *lpRect);
2681
2682 DWORD
2683 NTAPI
2684 NtUserValidateTimerCallback(
2685 DWORD dwUnknown1,
2686 DWORD dwUnknown2,
2687 DWORD dwUnknown3);
2688
2689 DWORD
2690 NTAPI
2691 NtUserVkKeyScanEx(
2692 WCHAR wChar,
2693 HKL KeyboardLayout,
2694 DWORD Unknown2);
2695
2696 DWORD
2697 NTAPI
2698 NtUserWaitForInputIdle(
2699 IN HANDLE hProcess,
2700 IN DWORD dwMilliseconds,
2701 IN BOOL Unknown2); // Always FALSE
2702
2703 DWORD
2704 NTAPI
2705 NtUserWaitForMsgAndEvent(
2706 DWORD Unknown0);
2707
2708 BOOL
2709 NTAPI
2710 NtUserWaitMessage(VOID);
2711
2712 DWORD
2713 NTAPI
2714 NtUserWin32PoolAllocationStats(
2715 DWORD Unknown0,
2716 DWORD Unknown1,
2717 DWORD Unknown2,
2718 DWORD Unknown3,
2719 DWORD Unknown4,
2720 DWORD Unknown5);
2721
2722 HWND
2723 NTAPI
2724 NtUserWindowFromPoint(
2725 LONG X,
2726 LONG Y);
2727
2728 DWORD
2729 NTAPI
2730 NtUserYieldTask(VOID);
2731
2732 /* lParam of DDE messages */
2733 typedef struct tagKMDDEEXECUTEDATA
2734 {
2735 HWND Sender;
2736 HGLOBAL ClientMem;
2737 /* BYTE Data[DataSize] */
2738 } KMDDEEXECUTEDATA, *PKMDDEEXECUTEDATA;
2739
2740 typedef struct tagKMDDELPARAM
2741 {
2742 BOOL Packed;
2743 union
2744 {
2745 struct
2746 {
2747 UINT uiLo;
2748 UINT uiHi;
2749 } Packed;
2750 LPARAM Unpacked;
2751 } Value;
2752 } KMDDELPARAM, *PKMDDELPARAM;
2753
2754
2755
2756
2757
2758 /* NtUserBad
2759 * ReactOS-specific NtUser calls and their related structures, both which shouldn't exist.
2760 */
2761
2762 #define NOPARAM_ROUTINE_GETMESSAGEEXTRAINFO 0xffff0005
2763 #define NOPARAM_ROUTINE_ANYPOPUP 0xffff0006
2764 #define NOPARAM_ROUTINE_CSRSS_INITIALIZED 0xffff0007
2765 #define ONEPARAM_ROUTINE_CSRSS_GUICHECK 0xffff0008
2766 #define ONEPARAM_ROUTINE_GETMENU 0xfffe0001 // usermode
2767 #define ONEPARAM_ROUTINE_ISWINDOWUNICODE 0xfffe0002
2768 #define ONEPARAM_ROUTINE_GETCARETINFO 0xfffe0007
2769 #define ONEPARAM_ROUTINE_SWITCHCARETSHOWING 0xfffe0008
2770 #define ONEPARAM_ROUTINE_ISWINDOWINDESTROY 0xfffe000c
2771 #define ONEPARAM_ROUTINE_ENABLEPROCWNDGHSTING 0xfffe000d
2772 #define ONEPARAM_ROUTINE_GETDESKTOPMAPPING 0xfffe000e
2773 #define ONEPARAM_ROUTINE_GETWINDOWINSTANCE 0xfffe0010
2774 #define ONEPARAM_ROUTINE_CREATECURICONHANDLE 0xfffe0025 // CREATE_EMPTY_CURSOR_OBJECT ?
2775 #define ONEPARAM_ROUTINE_MSQSETWAKEMASK 0xfffe0027
2776 #define ONEPARAM_ROUTINE_REGISTERUSERMODULE 0xfffe0031
2777 #define ONEPARAM_ROUTINE_GETWNDCONTEXTHLPID 0xfffe0047 // use HWND_ROUTINE_GETWNDCONTEXTHLPID
2778 #define ONEPARAM_ROUTINE_GETCURSORPOSITION 0xfffe0048 // use ONEPARAM_ or TWOPARAM routine ?
2779 #define TWOPARAM_ROUTINE_GETWINDOWRGNBOX 0xfffd0048 // user mode
2780 #define TWOPARAM_ROUTINE_GETWINDOWRGN 0xfffd0049 // user mode
2781 #define TWOPARAM_ROUTINE_SETMENUBARHEIGHT 0xfffd0050
2782 #define TWOPARAM_ROUTINE_SETMENUITEMRECT 0xfffd0051
2783 #define TWOPARAM_ROUTINE_SETGUITHRDHANDLE 0xfffd0052
2784 #define MSQ_STATE_CAPTURE 0x1
2785 #define MSQ_STATE_ACTIVE 0x2
2786 #define MSQ_STATE_FOCUS 0x3
2787 #define MSQ_STATE_MENUOWNER 0x4
2788 #define MSQ_STATE_MOVESIZE 0x5
2789 #define MSQ_STATE_CARET 0x6
2790 #define TWOPARAM_ROUTINE_SETWNDCONTEXTHLPID 0xfffd0058 // use HWNDPARAM_ROUTINE_SETWNDCONTEXTHLPID
2791 #define TWOPARAM_ROUTINE_SETCARETPOS 0xfffd0060
2792 #define TWOPARAM_ROUTINE_GETWINDOWINFO 0xfffd0061
2793 #define TWOPARAM_ROUTINE_REGISTERLOGONPROC 0xfffd0062
2794 #define TWOPARAM_ROUTINE_GETSYSCOLORBRUSHES 0xfffd0063
2795 #define TWOPARAM_ROUTINE_GETSYSCOLORPENS 0xfffd0064
2796 #define TWOPARAM_ROUTINE_GETSYSCOLORS 0xfffd0065
2797 #define TWOPARAM_ROUTINE_ROS_ISACTIVEICON 0x1001
2798 #define TWOPARAM_ROUTINE_ROS_NCDESTROY 0x1002
2799 #define TWOPARAM_ROUTINE_ROS_REGSYSCLASSES 0x1003
2800 #define TWOPARAM_ROUTINE_ROS_UPDATEUISTATE 0x1004
2801
2802 DWORD
2803 NTAPI
2804 NtUserBuildMenuItemList(
2805 HMENU hMenu,
2806 PVOID Buffer,
2807 ULONG nBufSize,
2808 DWORD Reserved);
2809
2810 /* Use ONEPARAM_ROUTINE_CREATEEMPTYCURSOROBJECT (0x21) ? */
2811 HANDLE
2812 NTAPI
2813 NtUserCreateCursorIconHandle(
2814 PICONINFO IconInfo,
2815 BOOL Indirect);
2816
2817
2818 /* Should be done in usermode */
2819 ULONG_PTR
2820 NTAPI
2821 NtUserGetClassLong(HWND hWnd, INT Offset, BOOL Ansi);
2822
2823 UINT
2824 NTAPI
2825 NtUserGetMenuDefaultItem(
2826 HMENU hMenu,
2827 UINT fByPos,
2828 UINT gmdiFlags);
2829
2830 BOOL
2831 NTAPI
2832 NtUserGetLastInputInfo(
2833 PLASTINPUTINFO plii);
2834
2835 BOOL
2836 NTAPI
2837 NtUserGetMinMaxInfo(
2838 HWND hwnd,
2839 MINMAXINFO *MinMaxInfo,
2840 BOOL SendMessage);
2841
2842 BOOL
2843 NTAPI
2844 NtUserGetMonitorInfo(
2845 IN HMONITOR hMonitor,
2846 OUT LPMONITORINFO pMonitorInfo);
2847
2848 /* Should be done in usermode */
2849 BOOL
2850 NTAPI
2851 NtUserGetScrollInfo(
2852 HWND hwnd,
2853 int fnBar,
2854 LPSCROLLINFO lpsi);
2855
2856 HWND
2857 NTAPI
2858 NtUserGetWindow(HWND hWnd, UINT Relationship);
2859
2860 /* Should be done in usermode */
2861 LONG
2862 NTAPI
2863 NtUserGetWindowLong(HWND hWnd, DWORD Index, BOOL Ansi);
2864
2865
2866 /* (other FocusedItem values give the position of the focused item) */
2867 #define NO_SELECTED_ITEM 0xffff
2868
2869 typedef struct tagROSMENUINFO
2870 {
2871 /* ----------- MENUINFO ----------- */
2872 DWORD cbSize;
2873 DWORD fMask;
2874 DWORD dwStyle;
2875 UINT cyMax;
2876 HBRUSH hbrBack;
2877 DWORD dwContextHelpID;
2878 ULONG_PTR dwMenuData;
2879 /* ----------- Extra ----------- */
2880 HMENU Self; /* Handle of this menu */
2881 WORD Flags; /* Menu flags (MF_POPUP, MF_SYSMENU) */
2882 UINT FocusedItem; /* Currently focused item */
2883 UINT MenuItemCount; /* Number of items in the menu */
2884 HWND Wnd; /* Window containing the menu */
2885 WORD Width; /* Width of the whole menu */
2886 WORD Height; /* Height of the whole menu */
2887 HWND WndOwner; /* window receiving the messages for ownerdraw */
2888 BOOL TimeToHide; /* Request hiding when receiving a second click in the top-level menu item */
2889 SIZE maxBmpSize; /* Maximum size of the bitmap items in MIIM_BITMAP state */
2890 } ROSMENUINFO, *PROSMENUINFO;
2891
2892 BOOL
2893 NTAPI
2894 NtUserMenuInfo(
2895 HMENU hmenu,
2896 PROSMENUINFO lpmi,
2897 BOOL fsog
2898 );
2899
2900
2901
2902 typedef struct tagROSMENUITEMINFO
2903 {
2904 /* ----------- MENUITEMINFOW ----------- */
2905 UINT cbSize;
2906 UINT fMask;
2907 UINT fType;
2908 UINT fState;
2909 UINT wID;
2910 HMENU hSubMenu;
2911 HBITMAP hbmpChecked;
2912 HBITMAP hbmpUnchecked;
2913 DWORD dwItemData;
2914 LPWSTR dwTypeData;
2915 UINT cch;
2916 HBITMAP hbmpItem;
2917 /* ----------- Extra ----------- */
2918 RECT Rect; /* Item area (relative to menu window) */
2919 UINT XTab; /* X position of text after Tab */
2920 LPWSTR Text; /* Copy of the text pointer in MenuItem->Text */
2921 } ROSMENUITEMINFO, *PROSMENUITEMINFO;
2922
2923 BOOL
2924 NTAPI
2925 NtUserMenuItemInfo(
2926 HMENU hMenu,
2927 UINT uItem,
2928 BOOL fByPosition,
2929 PROSMENUITEMINFO lpmii,
2930 BOOL fsog
2931 );
2932
2933 HMONITOR
2934 NTAPI
2935 NtUserMonitorFromPoint(
2936 IN POINT point,
2937 IN DWORD dwFlags);
2938
2939 HMONITOR
2940 NTAPI
2941 NtUserMonitorFromRect(
2942 IN LPCRECT pRect,
2943 IN DWORD dwFlags);
2944
2945 HMONITOR
2946 NTAPI
2947 NtUserMonitorFromWindow(
2948 IN HWND hWnd,
2949 IN DWORD dwFlags);
2950
2951
2952 /* FIXME: These flag constans aren't what Windows uses. */
2953 #define REGISTERCLASS_ANSI 2
2954 #define REGISTERCLASS_ALL (REGISTERCLASS_ANSI)
2955
2956 RTL_ATOM
2957 NTAPI
2958 NtUserRegisterClassEx( // Need to use NtUserRegisterClassExWOW.
2959 CONST WNDCLASSEXW* lpwcx,
2960 PUNICODE_STRING ClassName,
2961 PUNICODE_STRING MenuName,
2962 WNDPROC wpExtra,
2963 DWORD Flags,
2964 HMENU hMenu);
2965
2966
2967
2968 typedef struct tagNTUSERSENDMESSAGEINFO
2969 {
2970 BOOL HandledByKernel;
2971 BOOL Ansi;
2972 WNDPROC Proc;
2973 } NTUSERSENDMESSAGEINFO, *PNTUSERSENDMESSAGEINFO;
2974
2975 /* use NtUserMessageCall */
2976 LRESULT NTAPI
2977 NtUserSendMessage(HWND hWnd,
2978 UINT Msg,
2979 WPARAM wParam,
2980 LPARAM lParam,
2981 PNTUSERSENDMESSAGEINFO Info);
2982
2983 /* use NtUserMessageCall */
2984 LRESULT NTAPI
2985 NtUserSendMessageTimeout(HWND hWnd,
2986 UINT Msg,
2987 WPARAM wParam,
2988 LPARAM lParam,
2989 UINT uFlags,
2990 UINT uTimeout,
2991 ULONG_PTR *uResult,
2992 PNTUSERSENDMESSAGEINFO Info);
2993
2994 /* use NtUserMessageCall */
2995 BOOL
2996 NTAPI
2997 NtUserSendNotifyMessage(
2998 HWND hWnd,
2999 UINT Msg,
3000 WPARAM wParam,
3001 LPARAM lParam);
3002
3003
3004 typedef struct _SETSCROLLBARINFO
3005 {
3006 int nTrackPos;
3007 int reserved;
3008 DWORD rgstate[CCHILDREN_SCROLLBAR+1];
3009 } SETSCROLLBARINFO, *PSETSCROLLBARINFO;
3010
3011 BOOL
3012 NTAPI
3013 NtUserSetScrollBarInfo(
3014 HWND hwnd,
3015 LONG idObject,
3016 SETSCROLLBARINFO *info);
3017
3018
3019
3020 #endif /* __WIN32K_NTUSER_H */
3021
3022 /* EOF */