- Implement large ansi unicode string support. Not sure if we need to add it in win32k.
[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
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 DWORD
501 NTAPI
502 NtUserAssociateInputContext(
503 DWORD dwUnknown1,
504 DWORD dwUnknown2,
505 DWORD dwUnknown3);
506
507 DWORD
508 NTAPI
509 NtUserBuildHimcList(
510 DWORD dwUnknown1,
511 DWORD dwUnknown2,
512 DWORD dwUnknown3,
513 DWORD dwUnknown4);
514
515 DWORD
516 NTAPI
517 NtUserCalcMenuBar(
518 DWORD dwUnknown1,
519 DWORD dwUnknown2,
520 DWORD dwUnknown3,
521 DWORD dwUnknown4,
522 DWORD dwUnknown5);
523
524 DWORD
525 NTAPI
526 NtUserCheckMenuItem(
527 HMENU hmenu,
528 UINT uIDCheckItem,
529 UINT uCheck);
530
531 DWORD
532 NTAPI
533 NtUserCtxDisplayIOCtl(
534 DWORD dwUnknown1,
535 DWORD dwUnknown2,
536 DWORD dwUnknown3);
537
538 BOOL
539 NTAPI
540 NtUserDeleteMenu(
541 HMENU hMenu,
542 UINT uPosition,
543 UINT uFlags);
544
545 BOOL
546 NTAPI
547 NtUserDestroyMenu(
548 HMENU hMenu);
549
550 DWORD
551 NTAPI
552 NtUserDrawMenuBarTemp(
553 HWND hWnd,
554 HDC hDC,
555 PRECT hRect,
556 HMENU hMenu,
557 HFONT hFont);
558
559 UINT
560 NTAPI
561 NtUserEnableMenuItem(
562 HMENU hMenu,
563 UINT uIDEnableItem,
564 UINT uEnable);
565
566 BOOL
567 NTAPI
568 NtUserEndMenu(VOID);
569
570 BOOL
571 NTAPI
572 NtUserGetMenuBarInfo(
573 HWND hwnd,
574 LONG idObject,
575 LONG idItem,
576 PMENUBARINFO pmbi);
577
578 UINT
579 NTAPI
580 NtUserGetMenuIndex(
581 HMENU hMenu,
582 UINT wID);
583
584 BOOL
585 NTAPI
586 NtUserGetMenuItemRect(
587 HWND hWnd,
588 HMENU hMenu,
589 UINT uItem,
590 LPRECT lprcItem);
591
592 HMENU
593 NTAPI
594 NtUserGetSystemMenu(
595 HWND hWnd,
596 BOOL bRevert);
597
598 BOOL
599 NTAPI
600 NtUserHiliteMenuItem(
601 HWND hwnd,
602 HMENU hmenu,
603 UINT uItemHilite,
604 UINT uHilite);
605
606 int
607 NTAPI
608 NtUserMenuItemFromPoint(
609 HWND hWnd,
610 HMENU hMenu,
611 DWORD X,
612 DWORD Y);
613
614 BOOL
615 NTAPI
616 NtUserRemoveMenu(
617 HMENU hMenu,
618 UINT uPosition,
619 UINT uFlags);
620
621 BOOL
622 NTAPI
623 NtUserSetMenu(
624 HWND hWnd,
625 HMENU hMenu,
626 BOOL bRepaint);
627
628 BOOL
629 NTAPI
630 NtUserSetMenuContextHelpId(
631 HMENU hmenu,
632 DWORD dwContextHelpId);
633
634 BOOL
635 NTAPI
636 NtUserSetMenuDefaultItem(
637 HMENU hMenu,
638 UINT uItem,
639 UINT fByPos);
640
641 BOOL
642 NTAPI
643 NtUserSetMenuFlagRtoL(
644 HMENU hMenu);
645
646 BOOL
647 NTAPI
648 NtUserSetSystemMenu(
649 HWND hWnd,
650 HMENU hMenu);
651
652 DWORD
653 NTAPI
654 NtUserThunkedMenuInfo(
655 HMENU hMenu,
656 LPCMENUINFO lpcmi);
657
658 DWORD
659 NTAPI
660 NtUserThunkedMenuItemInfo(
661 HMENU hMenu,
662 UINT uItem,
663 BOOL fByPosition,
664 BOOL bInsert,
665 LPMENUITEMINFOW lpmii,
666 PUNICODE_STRING lpszCaption);
667
668 BOOL
669 NTAPI
670 NtUserTrackPopupMenuEx(
671 HMENU hmenu,
672 UINT fuFlags,
673 int x,
674 int y,
675 HWND hwnd,
676 LPTPMPARAMS lptpm);
677
678 HKL
679 NTAPI
680 NtUserActivateKeyboardLayout(
681 HKL hKl,
682 ULONG Flags);
683
684 DWORD
685 NTAPI
686 NtUserAlterWindowStyle(
687 DWORD Unknown0,
688 DWORD Unknown1,
689 DWORD Unknown2);
690
691 BOOL
692 NTAPI
693 NtUserAttachThreadInput(
694 IN DWORD idAttach,
695 IN DWORD idAttachTo,
696 IN BOOL fAttach);
697
698 HDC NTAPI
699 NtUserBeginPaint(HWND hWnd, PAINTSTRUCT* lPs);
700
701 BOOL
702 NTAPI
703 NtUserBitBltSysBmp(
704 HDC hdc,
705 INT nXDest,
706 INT nYDest,
707 INT nWidth,
708 INT nHeight,
709 INT nXSrc,
710 INT nYSrc,
711 DWORD dwRop );
712
713 BOOL
714 NTAPI
715 NtUserBlockInput(
716 BOOL BlockIt);
717
718 NTSTATUS
719 NTAPI
720 NtUserBuildHwndList(
721 HDESK hDesktop,
722 HWND hwndParent,
723 BOOLEAN bChildren,
724 ULONG dwThreadId,
725 ULONG lParam,
726 HWND* pWnd,
727 ULONG* pBufSize);
728
729 NTSTATUS NTAPI
730 NtUserBuildNameList(
731 HWINSTA hWinSta,
732 ULONG dwSize,
733 PVOID lpBuffer,
734 PULONG pRequiredSize);
735
736 NTSTATUS
737 NTAPI
738 NtUserBuildPropList(
739 HWND hWnd,
740 LPVOID Buffer,
741 DWORD BufferSize,
742 DWORD *Count);
743
744 /* apfnSimpleCall indices from Windows XP SP 2 */
745 /* TODO: Check for differences in Windows 2000, 2003 and 2008 */
746 #define WIN32K_VERSION NTDDI_WINXPSP2 // FIXME: this should go somewhere else
747
748 enum SimpleCallRoutines
749 {
750 NOPARAM_ROUTINE_CREATEMENU,
751 NOPARAM_ROUTINE_CREATEMENUPOPUP,
752 #if (WIN32K_VERSION >= NTDDI_VISTA)
753 NOPARAM_ROUTINE_ALLOWFOREGNDACTIVATION,
754 NOPARAM_ROUTINE_MSQCLEARWAKEMASK,
755 NOPARAM_ROUTINE_CREATESYSTEMTHREADS,
756 NOPARAM_ROUTINE_DESTROY_CARET,
757 #endif
758 NOPARAM_ROUTINE_ENABLEPROCWNDGHSTING,
759 #if (WIN32K_VERSION < NTDDI_VISTA)
760 NOPARAM_ROUTINE_MSQCLEARWAKEMASK,
761 NOPARAM_ROUTINE_ALLOWFOREGNDACTIVATION,
762 NOPARAM_ROUTINE_DESTROY_CARET,
763 #endif
764 NOPARAM_ROUTINE_GETDEVICECHANGEINFO,
765 NOPARAM_ROUTINE_GETIMESHOWSTATUS,
766 NOPARAM_ROUTINE_GETINPUTDESKTOP,
767 NOPARAM_ROUTINE_GETMSESSAGEPOS,
768 #if (WIN32K_VERSION >= NTDDI_VISTA)
769 NOPARAM_ROUTINE_HANDLESYSTHRDCREATFAIL,
770 #else
771 NOPARAM_ROUTINE_GETREMOTEPROCID,
772 #endif
773 NOPARAM_ROUTINE_HIDECURSORNOCAPTURE,
774 NOPARAM_ROUTINE_LOADCURSANDICOS,
775 #if (WIN32K_VERSION >= NTDDI_VISTA)
776 NOPARAM_ROUTINE_LOADUSERAPIHOOK,
777 NOPARAM_ROUTINE_PREPAREFORLOGOFF, /* 0x0f */
778 #endif
779 NOPARAM_ROUTINE_RELEASECAPTURE,
780 NOPARAM_ROUTINE_RESETDBLCLICK,
781 NOPARAM_ROUTINE_ZAPACTIVEANDFOUS,
782 NOPARAM_ROUTINE_REMOTECONSHDWSTOP,
783 NOPARAM_ROUTINE_REMOTEDISCONNECT,
784 NOPARAM_ROUTINE_REMOTELOGOFF,
785 NOPARAM_ROUTINE_REMOTENTSECURITY,
786 NOPARAM_ROUTINE_REMOTESHDWSETUP,
787 NOPARAM_ROUTINE_REMOTESHDWSTOP,
788 NOPARAM_ROUTINE_REMOTEPASSTHRUENABLE,
789 NOPARAM_ROUTINE_REMOTEPASSTHRUDISABLE,
790 NOPARAM_ROUTINE_REMOTECONNECTSTATE,
791 NOPARAM_ROUTINE_UPDATEPERUSERIMMENABLING,
792 NOPARAM_ROUTINE_USERPWRCALLOUTWORKER,
793 #if (WIN32K_VERSION >= NTDDI_VISTA)
794 NOPARAM_ROUTINE_WAKERITFORSHTDWN,
795 #endif
796 NOPARAM_ROUTINE_INIT_MESSAGE_PUMP,
797 NOPARAM_ROUTINE_UNINIT_MESSAGE_PUMP,
798 #if (WIN32K_VERSION < NTDDI_VISTA)
799 NOPARAM_ROUTINE_LOADUSERAPIHOOK,
800 #endif
801 ONEPARAM_ROUTINE_BEGINDEFERWNDPOS,
802 #if (WIN32K_VERSION >= NTDDI_VISTA)
803 ONEPARAM_ROUTINE_GETSENDMSGRECVR,
804 #endif
805 ONEPARAM_ROUTINE_WINDOWFROMDC,
806 ONEPARAM_ROUTINE_ALLOWSETFOREGND,
807 ONEPARAM_ROUTINE_CREATEEMPTYCUROBJECT,
808 #if (WIN32K_VERSION < NTDDI_VISTA)
809 ONEPARAM_ROUTINE_CREATESYSTEMTHREADS,
810 #endif
811 ONEPARAM_ROUTINE_CSDDEUNINITIALIZE,
812 ONEPARAM_ROUTINE_DIRECTEDYIELD,
813 ONEPARAM_ROUTINE_ENUMCLIPBOARDFORMATS,
814 #if (WIN32K_VERSION < NTDDI_VISTA)
815 ONEPARAM_ROUTINE_GETCURSORPOS,
816 #endif
817 ONEPARAM_ROUTINE_GETINPUTEVENT,
818 ONEPARAM_ROUTINE_GETKEYBOARDLAYOUT,
819 ONEPARAM_ROUTINE_GETKEYBOARDTYPE,
820 ONEPARAM_ROUTINE_GETPROCDEFLAYOUT,
821 ONEPARAM_ROUTINE_GETQUEUESTATUS,
822 ONEPARAM_ROUTINE_GETWINSTAINFO,
823 #if (WIN32K_VERSION < NTDDI_VISTA)
824 ONEPARAM_ROUTINE_HANDLESYSTHRDCREATFAIL,
825 #endif
826 ONEPARAM_ROUTINE_LOCKFOREGNDWINDOW,
827 ONEPARAM_ROUTINE_LOADFONTS,
828 ONEPARAM_ROUTINE_MAPDEKTOPOBJECT,
829 ONEPARAM_ROUTINE_MESSAGEBEEP,
830 ONEPARAM_ROUTINE_PLAYEVENTSOUND,
831 ONEPARAM_ROUTINE_POSTQUITMESSAGE,
832 #if (WIN32K_VERSION < NTDDI_VISTA)
833 ONEPARAM_ROUTINE_PREPAREFORLOGOFF,
834 #endif
835 ONEPARAM_ROUTINE_REALIZEPALETTE,
836 ONEPARAM_ROUTINE_REGISTERLPK,
837 #if (WIN32K_VERSION >= NTDDI_VISTA)
838 ONEPARAM_ROUTINE_REGISTERSYSTEMTHREAD,
839 #endif
840 ONEPARAM_ROUTINE_REMOTERECONNECT,
841 ONEPARAM_ROUTINE_REMOTETHINWIRESTATUS,
842 ONEPARAM_ROUTINE_RELEASEDC,
843 #if (WIN32K_VERSION >= NTDDI_VISTA)
844 ONEPARAM_ROUTINE_REMOTENOTIFY,
845 #endif
846 ONEPARAM_ROUTINE_REPLYMESSAGE,
847 ONEPARAM_ROUTINE_SETCARETBLINKTIME,
848 ONEPARAM_ROUTINE_SETDBLCLICKTIME,
849 #if (WIN32K_VERSION < NTDDI_VISTA)
850 ONEPARAM_ROUTINE_SETIMESHOWSTATUS,
851 #endif
852 ONEPARAM_ROUTINE_SETMESSAGEEXTRAINFO,
853 ONEPARAM_ROUTINE_SETPROCDEFLAYOUT,
854 #if (WIN32K_VERSION >= NTDDI_VISTA)
855 ONEPARAM_ROUTINE_SETWATERMARKSTRINGS,
856 #endif
857 ONEPARAM_ROUTINE_SHOWCURSOR,
858 ONEPARAM_ROUTINE_SHOWSTARTGLASS,
859 ONEPARAM_ROUTINE_SWAPMOUSEBUTTON,
860 X_ROUTINE_WOWMODULEUNLOAD,
861 #if (WIN32K_VERSION < NTDDI_VISTA)
862 X_ROUTINE_REMOTENOTIFY,
863 #endif
864 HWND_ROUTINE_DEREGISTERSHELLHOOKWINDOW,
865 HWND_ROUTINE_DWP_GETENABLEDPOPUP,
866 HWND_ROUTINE_GETWNDCONTEXTHLPID,
867 HWND_ROUTINE_REGISTERSHELLHOOKWINDOW,
868 HWND_ROUTINE_SETMSGBOX,
869 HWNDOPT_ROUTINE_SETPROGMANWINDOW,
870 HWNDOPT_ROUTINE_SETTASKMANWINDOW,
871 HWNDPARAM_ROUTINE_GETCLASSICOCUR,
872 HWNDPARAM_ROUTINE_CLEARWINDOWSTATE,
873 HWNDPARAM_ROUTINE_KILLSYSTEMTIMER,
874 HWNDPARAM_ROUTINE_SETDIALOGPOINTER,
875 HWNDPARAM_ROUTINE_SETVISIBLE,
876 HWNDPARAM_ROUTINE_SETWNDCONTEXTHLPID,
877 HWNDPARAM_ROUTINE_SETWINDOWSTATE,
878 HWNDLOCK_ROUTINE_WINDOWHASSHADOW, /* correct prefix ? */
879 HWNDLOCK_ROUTINE_ARRANGEICONICWINDOWS,
880 HWNDLOCK_ROUTINE_DRAWMENUBAR,
881 HWNDLOCK_ROUTINE_CHECKIMESHOWSTATUSINTHRD,
882 HWNDLOCK_ROUTINE_GETSYSMENUHANDLE,
883 HWNDLOCK_ROUTINE_REDRAWFRAME,
884 HWNDLOCK_ROUTINE_REDRAWFRAMEANDHOOK,
885 HWNDLOCK_ROUTINE_SETDLGSYSMENU,
886 HWNDLOCK_ROUTINE_SETFOREGROUNDWINDOW,
887 HWNDLOCK_ROUTINE_SETSYSMENU,
888 HWNDLOCK_ROUTINE_UPDATECKIENTRECT,
889 HWNDLOCK_ROUTINE_UPDATEWINDOW,
890 X_ROUTINE_IMESHOWSTATUSCHANGE,
891 TWOPARAM_ROUTINE_ENABLEWINDOW,
892 TWOPARAM_ROUTINE_REDRAWTITLE,
893 TWOPARAM_ROUTINE_SHOWOWNEDPOPUPS,
894 TWOPARAM_ROUTINE_SWITCHTOTHISWINDOW,
895 TWOPARAM_ROUTINE_UPDATEWINDOWS,
896 TWOPARAM_ROUTINE_VALIDATERGN,
897 #if (WIN32K_VERSION >= NTDDI_VISTA)
898 TWOPARAM_ROUTINE_CHANGEWNDMSGFILTER,
899 TWOPARAM_ROUTINE_GETCURSORPOS,
900 #endif
901 TWOPARAM_ROUTINE_GETHDEVNAME,
902 TWOPARAM_ROUTINE_INITANSIOEM,
903 TWOPARAM_ROUTINE_NLSSENDIMENOTIFY,
904 #if (WIN32K_VERSION >= NTDDI_VISTA)
905 TWOPARAM_ROUTINE_REGISTERGHSTWND,
906 #endif
907 TWOPARAM_ROUTINE_REGISTERLOGONPROCESS,
908 #if (WIN32K_VERSION >= NTDDI_VISTA)
909 TWOPARAM_ROUTINE_REGISTERSBLFROSTWND,
910 #else
911 TWOPARAM_ROUTINE_REGISTERSYSTEMTHREAD,
912 #endif
913 TWOPARAM_ROUTINE_REGISTERUSERHUNGAPPHANDLERS,
914 TWOPARAM_ROUTINE_SHADOWCLEANUP,
915 TWOPARAM_ROUTINE_REMOTESHADOWSTART,
916 TWOPARAM_ROUTINE_SETCARETPOS,
917 TWOPARAM_ROUTINE_SETCURSORPOS,
918 #if (WIN32K_VERSION >= NTDDI_VISTA)
919 TWOPARAM_ROUTINE_SETPHYSCURSORPOS,
920 #endif
921 TWOPARAM_ROUTINE_UNHOOKWINDOWSHOOK,
922 TWOPARAM_ROUTINE_WOWCLEANUP
923 };
924
925 DWORD
926 NTAPI
927 NtUserCallHwnd(
928 HWND hWnd,
929 DWORD Routine);
930
931 BOOL
932 NTAPI
933 NtUserCallHwndLock(
934 HWND hWnd,
935 DWORD Routine);
936
937 HWND
938 NTAPI
939 NtUserCallHwndOpt(
940 HWND hWnd,
941 DWORD Routine);
942
943 DWORD
944 NTAPI
945 NtUserCallHwndParam(
946 HWND hWnd,
947 DWORD Param,
948 DWORD Routine);
949
950 DWORD
951 NTAPI
952 NtUserCallHwndParamLock(
953 HWND hWnd,
954 DWORD Param,
955 DWORD Routine);
956
957 BOOL
958 NTAPI
959 NtUserCallMsgFilter(
960 LPMSG msg,
961 INT code);
962
963 LRESULT
964 NTAPI
965 NtUserCallNextHookEx(
966 int Code,
967 WPARAM wParam,
968 LPARAM lParam,
969 BOOL Ansi);
970
971 DWORD
972 NTAPI
973 NtUserCallNoParam(
974 DWORD Routine);
975
976 DWORD
977 NTAPI
978 NtUserCallOneParam(
979 DWORD Param,
980 DWORD Routine);
981
982 DWORD
983 NTAPI
984 NtUserCallTwoParam(
985 DWORD Param1,
986 DWORD Param2,
987 DWORD Routine);
988
989 BOOL
990 NTAPI
991 NtUserChangeClipboardChain(
992 HWND hWndRemove,
993 HWND hWndNewNext);
994
995 LONG
996 NTAPI
997 NtUserChangeDisplaySettings(
998 PUNICODE_STRING lpszDeviceName,
999 LPDEVMODEW lpDevMode,
1000 HWND hwnd,
1001 DWORD dwflags,
1002 LPVOID lParam);
1003
1004 DWORD
1005 NTAPI
1006 NtUserCheckImeHotKey(
1007 DWORD dwUnknown1,
1008 DWORD dwUnknown2);
1009
1010 HWND NTAPI
1011 NtUserChildWindowFromPointEx(
1012 HWND Parent,
1013 LONG x,
1014 LONG y,
1015 UINT Flags);
1016
1017 BOOL
1018 NTAPI
1019 NtUserClipCursor(
1020 RECT *lpRect);
1021
1022 BOOL
1023 NTAPI
1024 NtUserCloseClipboard(VOID);
1025
1026 BOOL
1027 NTAPI
1028 NtUserCloseDesktop(
1029 HDESK hDesktop);
1030
1031 BOOL
1032 NTAPI
1033 NtUserCloseWindowStation(
1034 HWINSTA hWinSta);
1035
1036 DWORD
1037 NTAPI
1038 NtUserConsoleControl(
1039 DWORD dwUnknown1,
1040 DWORD dwUnknown2,
1041 DWORD dwUnknown3);
1042
1043 DWORD
1044 NTAPI
1045 NtUserConvertMemHandle(
1046 DWORD Unknown0,
1047 DWORD Unknown1);
1048
1049 int
1050 NTAPI
1051 NtUserCopyAcceleratorTable(
1052 HACCEL Table,
1053 LPACCEL Entries,
1054 int EntriesCount);
1055
1056 DWORD
1057 NTAPI
1058 NtUserCountClipboardFormats(VOID);
1059
1060 HACCEL
1061 NTAPI
1062 NtUserCreateAcceleratorTable(
1063 LPACCEL Entries,
1064 SIZE_T EntriesCount);
1065
1066 BOOL
1067 NTAPI
1068 NtUserCreateCaret(
1069 HWND hWnd,
1070 HBITMAP hBitmap,
1071 int nWidth,
1072 int nHeight);
1073
1074 HDESK
1075 NTAPI
1076 NtUserCreateDesktop(
1077 PUNICODE_STRING lpszDesktopName,
1078 DWORD dwFlags,
1079 ACCESS_MASK dwDesiredAccess,
1080 LPSECURITY_ATTRIBUTES lpSecurity,
1081 HWINSTA hWindowStation);
1082
1083 DWORD
1084 NTAPI
1085 NtUserCreateInputContext(
1086 DWORD dwUnknown1);
1087
1088 DWORD
1089 NTAPI
1090 NtUserCreateLocalMemHandle(
1091 DWORD Unknown0,
1092 DWORD Unknown1,
1093 DWORD Unknown2,
1094 DWORD Unknown3);
1095
1096 HWND
1097 NTAPI
1098 NtUserCreateWindowEx(
1099 DWORD dwExStyle,
1100 PUNICODE_STRING lpClassName,
1101 PUNICODE_STRING lpWindowName,
1102 DWORD dwStyle,
1103 LONG x,
1104 LONG y,
1105 LONG nWidth,
1106 LONG nHeight,
1107 HWND hWndParent,
1108 HMENU hMenu,
1109 HINSTANCE hInstance,
1110 LPVOID lpParam,
1111 DWORD dwShowMode,
1112 BOOL bUnicodeWindow,
1113 DWORD dwUnknown);
1114 #if 0
1115 HWND
1116 NTAPI
1117 NtUserCreateWindowEx(
1118 DWORD dwExStyle,
1119 PLARGE_STRING plstrClassName,
1120 PLARGE_STRING plstrClsVesrion,
1121 PLARGE_STRING plstrWindowName,
1122 DWORD dwStyle,
1123 int x,
1124 int y,
1125 int nWidth,
1126 int nHeight,
1127 HWND hWndParent,
1128 HMENU hMenu,
1129 HINSTANCE hInstance,
1130 LPVOID lpParam,
1131 DWORD dwFlags,
1132 PVOID acbiBuffer);
1133 #endif
1134
1135 HWINSTA
1136 NTAPI
1137 NtUserCreateWindowStation(
1138 PUNICODE_STRING lpszWindowStationName,
1139 ACCESS_MASK dwDesiredAccess,
1140 LPSECURITY_ATTRIBUTES lpSecurity,
1141 DWORD Unknown3,
1142 DWORD Unknown4,
1143 DWORD Unknown5,
1144 DWORD Unknown6);
1145
1146 BOOL
1147 NTAPI
1148 NtUserDdeGetQualityOfService(
1149 IN HWND hwndClient,
1150 IN HWND hWndServer,
1151 OUT PSECURITY_QUALITY_OF_SERVICE pqosPrev);
1152
1153 DWORD
1154 NTAPI
1155 NtUserDdeInitialize(
1156 DWORD Unknown0,
1157 DWORD Unknown1,
1158 DWORD Unknown2,
1159 DWORD Unknown3,
1160 DWORD Unknown4);
1161
1162 BOOL
1163 NTAPI
1164 NtUserDdeSetQualityOfService(
1165 IN HWND hwndClient,
1166 IN PSECURITY_QUALITY_OF_SERVICE pqosNew,
1167 OUT PSECURITY_QUALITY_OF_SERVICE pqosPrev);
1168
1169 HDWP NTAPI
1170 NtUserDeferWindowPos(HDWP WinPosInfo,
1171 HWND Wnd,
1172 HWND WndInsertAfter,
1173 int x,
1174 int y,
1175 int cx,
1176 int cy,
1177 UINT Flags);
1178 BOOL NTAPI
1179 NtUserDefSetText(HWND WindowHandle, PUNICODE_STRING WindowText);
1180
1181 BOOLEAN
1182 NTAPI
1183 NtUserDestroyAcceleratorTable(
1184 HACCEL Table);
1185
1186 BOOL
1187 NTAPI
1188 NtUserDestroyCursor(
1189 HANDLE Handle,
1190 DWORD Unknown);
1191
1192 DWORD
1193 NTAPI
1194 NtUserDestroyInputContext(
1195 DWORD dwUnknown1);
1196
1197 BOOLEAN NTAPI
1198 NtUserDestroyWindow(HWND Wnd);
1199
1200 DWORD
1201 NTAPI
1202 NtUserDisableThreadIme(
1203 DWORD dwUnknown1);
1204
1205 typedef struct tagNTUSERDISPATCHMESSAGEINFO
1206 {
1207 BOOL HandledByKernel;
1208 BOOL Ansi;
1209 WNDPROC Proc;
1210 MSG Msg;
1211 } NTUSERDISPATCHMESSAGEINFO, *PNTUSERDISPATCHMESSAGEINFO;
1212
1213 LRESULT
1214 NTAPI
1215 NtUserDispatchMessage(PNTUSERDISPATCHMESSAGEINFO MsgInfo);
1216
1217 BOOL
1218 NTAPI
1219 NtUserDragDetect(
1220 HWND hWnd,
1221 POINT pt);
1222
1223 DWORD
1224 NTAPI
1225 NtUserDragObject(
1226 HWND hwnd1,
1227 HWND hwnd2,
1228 UINT u1,
1229 DWORD dw1,
1230 HCURSOR hc1);
1231
1232 BOOL
1233 NTAPI
1234 NtUserDrawAnimatedRects(
1235 HWND hwnd,
1236 INT idAni,
1237 RECT *lprcFrom,
1238 RECT *lprcTo);
1239
1240 BOOL
1241 NTAPI
1242 NtUserDrawCaption(
1243 HWND hWnd,
1244 HDC hDc,
1245 LPCRECT lpRc,
1246 UINT uFlags);
1247
1248 BOOL
1249 NTAPI
1250 NtUserDrawCaptionTemp(
1251 HWND hWnd,
1252 HDC hDC,
1253 LPCRECT lpRc,
1254 HFONT hFont,
1255 HICON hIcon,
1256 const PUNICODE_STRING str,
1257 UINT uFlags);
1258
1259 BOOL
1260 NTAPI
1261 NtUserDrawIconEx(
1262 HDC hdc,
1263 int xLeft,
1264 int yTop,
1265 HICON hIcon,
1266 int cxWidth,
1267 int cyWidth,
1268 UINT istepIfAniCur,
1269 HBRUSH hbrFlickerFreeDraw,
1270 UINT diFlags,
1271 DWORD Unknown0,
1272 DWORD Unknown1);
1273
1274 DWORD
1275 NTAPI
1276 NtUserEmptyClipboard(VOID);
1277
1278 BOOL
1279 NTAPI
1280 NtUserEnableScrollBar(
1281 HWND hWnd,
1282 UINT wSBflags,
1283 UINT wArrows);
1284
1285 DWORD
1286 NTAPI
1287 NtUserEndDeferWindowPosEx(
1288 DWORD Unknown0,
1289 DWORD Unknown1);
1290
1291 BOOL NTAPI
1292 NtUserEndPaint(HWND hWnd, CONST PAINTSTRUCT* lPs);
1293
1294 BOOL
1295 NTAPI
1296 NtUserEnumDisplayDevices (
1297 PUNICODE_STRING lpDevice, /* device name */
1298 DWORD iDevNum, /* display device */
1299 PDISPLAY_DEVICEW lpDisplayDevice, /* device information */
1300 DWORD dwFlags ); /* reserved */
1301
1302 /*BOOL
1303 NTAPI
1304 NtUserEnumDisplayMonitors (
1305 HDC hdc,
1306 LPCRECT lprcClip,
1307 MONITORENUMPROC lpfnEnum,
1308 LPARAM dwData );*/
1309 /* FIXME: The call below is ros-specific and should be rewritten to use the same params as the correct call above. */
1310 INT
1311 NTAPI
1312 NtUserEnumDisplayMonitors(
1313 OPTIONAL IN HDC hDC,
1314 OPTIONAL IN LPCRECT pRect,
1315 OPTIONAL OUT HMONITOR *hMonitorList,
1316 OPTIONAL OUT LPRECT monitorRectList,
1317 OPTIONAL IN DWORD listSize );
1318
1319
1320 NTSTATUS
1321 NTAPI
1322 NtUserEnumDisplaySettings(
1323 PUNICODE_STRING lpszDeviceName,
1324 DWORD iModeNum,
1325 LPDEVMODEW lpDevMode, /* FIXME is this correct? */
1326 DWORD dwFlags );
1327
1328 DWORD
1329 NTAPI
1330 NtUserEvent(
1331 DWORD Unknown0);
1332
1333 DWORD
1334 NTAPI
1335 NtUserExcludeUpdateRgn(
1336 HDC hDC,
1337 HWND hWnd);
1338
1339 BOOL
1340 NTAPI
1341 NtUserFillWindow(
1342 HWND hWndPaint,
1343 HWND hWndPaint1,
1344 HDC hDC,
1345 HBRUSH hBrush);
1346
1347 HICON
1348 NTAPI
1349 NtUserFindExistingCursorIcon(
1350 HMODULE hModule,
1351 HRSRC hRsrc,
1352 LONG cx,
1353 LONG cy);
1354
1355 HWND
1356 NTAPI
1357 NtUserFindWindowEx(
1358 HWND hwndParent,
1359 HWND hwndChildAfter,
1360 PUNICODE_STRING ucClassName,
1361 PUNICODE_STRING ucWindowName,
1362 DWORD dwUnknown
1363 );
1364
1365 BOOL
1366 NTAPI
1367 NtUserFlashWindowEx(
1368 IN PFLASHWINFO pfwi);
1369
1370 BOOL
1371 NTAPI
1372 NtUserGetAltTabInfo(
1373 HWND hwnd,
1374 INT iItem,
1375 PALTTABINFO pati,
1376 LPWSTR pszItemText,
1377 UINT cchItemText,
1378 BOOL Ansi);
1379
1380 HWND NTAPI
1381 NtUserGetAncestor(HWND hWnd, UINT Flags);
1382
1383 DWORD
1384 NTAPI
1385 NtUserGetAppImeLevel(
1386 DWORD dwUnknown1);
1387
1388 SHORT
1389 NTAPI
1390 NtUserGetAsyncKeyState(
1391 INT Key);
1392
1393 DWORD
1394 NTAPI
1395 NtUserGetAtomName(
1396 ATOM nAtom,
1397 LPWSTR lpBuffer);
1398
1399 UINT
1400 NTAPI
1401 NtUserGetCaretBlinkTime(VOID);
1402
1403 BOOL
1404 NTAPI
1405 NtUserGetCaretPos(
1406 LPPOINT lpPoint);
1407
1408 BOOL NTAPI
1409 NtUserGetClassInfo(HINSTANCE hInstance,
1410 PUNICODE_STRING ClassName,
1411 LPWNDCLASSEXW wcex,
1412 LPWSTR *ppszMenuName,
1413 BOOL Ansi);
1414
1415 INT
1416 NTAPI
1417 NtUserGetClassName(HWND hWnd,
1418 PUNICODE_STRING ClassName,
1419 BOOL Ansi);
1420 #if 0 // Real NtUserGetClassName
1421 INT
1422 NTAPI
1423 NtUserGetClassName(HWND hWnd,
1424 BOOL Real, // 0 GetClassNameW, 1 RealGetWindowClassA/W
1425 PUNICODE_STRING ClassName);
1426 #endif
1427
1428 HANDLE
1429 NTAPI
1430 NtUserGetClipboardData(
1431 UINT uFormat,
1432 PVOID pBuffer);
1433
1434 INT
1435 NTAPI
1436 NtUserGetClipboardFormatName(
1437 UINT format,
1438 PUNICODE_STRING FormatName,
1439 INT cchMaxCount);
1440
1441 HWND
1442 NTAPI
1443 NtUserGetClipboardOwner(VOID);
1444
1445 DWORD
1446 NTAPI
1447 NtUserGetClipboardSequenceNumber(VOID);
1448
1449 HWND
1450 NTAPI
1451 NtUserGetClipboardViewer(VOID);
1452
1453 BOOL
1454 NTAPI
1455 NtUserGetClipCursor(
1456 RECT *lpRect);
1457
1458 BOOL
1459 NTAPI
1460 NtUserGetComboBoxInfo(
1461 HWND hWnd,
1462 PCOMBOBOXINFO pcbi);
1463
1464 HBRUSH
1465 NTAPI
1466 NtUserGetControlBrush(
1467 HWND hwnd,
1468 HDC hdc,
1469 UINT ctlType);
1470
1471 HBRUSH
1472 NTAPI
1473 NtUserGetControlColor(
1474 HWND hwndParent,
1475 HWND hwnd,
1476 HDC hdc,
1477 UINT CtlMsg);
1478
1479 DWORD
1480 NTAPI
1481 NtUserGetCPD(
1482 DWORD Unknown0,
1483 DWORD Unknown1,
1484 DWORD Unknown2);
1485
1486 DWORD
1487 NTAPI
1488 NtUserGetCursorFrameInfo(
1489 DWORD Unknown0,
1490 DWORD Unknown1,
1491 DWORD Unknown2,
1492 DWORD Unknown3);
1493
1494 BOOL
1495 NTAPI
1496 NtUserGetCursorInfo(
1497 PCURSORINFO pci);
1498
1499 HDC
1500 NTAPI
1501 NtUserGetDC(
1502 HWND hWnd);
1503
1504 HDC
1505 NTAPI
1506 NtUserGetDCEx(
1507 HWND hWnd,
1508 HANDLE hRegion,
1509 ULONG Flags);
1510
1511 UINT
1512 NTAPI
1513 NtUserGetDoubleClickTime(VOID);
1514
1515 HWND
1516 NTAPI
1517 NtUserGetForegroundWindow(VOID);
1518
1519 DWORD
1520 NTAPI
1521 NtUserGetGuiResources(
1522 HANDLE hProcess,
1523 DWORD uiFlags);
1524
1525 BOOL
1526 NTAPI
1527 NtUserGetGUIThreadInfo(
1528 DWORD idThread,
1529 LPGUITHREADINFO lpgui);
1530
1531 BOOL
1532 NTAPI
1533 NtUserGetIconInfo(
1534 HANDLE hCurIcon,
1535 PICONINFO IconInfo,
1536 PUNICODE_STRING lpInstName,
1537 PUNICODE_STRING lpResName,
1538 LPDWORD pbpp,
1539 BOOL bInternal);
1540
1541 BOOL
1542 NTAPI
1543 NtUserGetIconSize(
1544 HANDLE Handle,
1545 UINT istepIfAniCur,
1546 LONG *plcx,
1547 LONG *plcy);
1548
1549 DWORD
1550 NTAPI
1551 NtUserGetImeHotKey(
1552 DWORD Unknown0,
1553 DWORD Unknown1,
1554 DWORD Unknown2,
1555 DWORD Unknown3);
1556
1557 DWORD
1558 NTAPI
1559 NtUserGetImeInfoEx(
1560 DWORD dwUnknown1,
1561 DWORD dwUnknown2);
1562
1563 DWORD
1564 NTAPI
1565 NtUserGetInternalWindowPos(
1566 HWND hwnd,
1567 LPRECT rectWnd,
1568 LPPOINT ptIcon);
1569
1570 HKL
1571 NTAPI
1572 NtUserGetKeyboardLayout(
1573 DWORD dwThreadid);
1574
1575 UINT
1576 NTAPI
1577 NtUserGetKeyboardLayoutList(
1578 INT nItems,
1579 HKL *pHklBuff);
1580
1581 BOOL
1582 NTAPI
1583 NtUserGetKeyboardLayoutName(
1584 LPWSTR lpszName);
1585
1586 DWORD
1587 NTAPI
1588 NtUserGetKeyboardState(
1589 LPBYTE Unknown0);
1590
1591 DWORD
1592 NTAPI
1593 NtUserGetKeyboardType(
1594 DWORD TypeFlag);
1595
1596 DWORD
1597 NTAPI
1598 NtUserGetKeyNameText( LONG lParam, LPWSTR lpString, int nSize );
1599
1600 SHORT
1601 NTAPI
1602 NtUserGetKeyState(
1603 INT VirtKey);
1604
1605 BOOL
1606 NTAPI
1607 NtUserGetLayeredWindowAttributes(
1608 HWND hwnd,
1609 COLORREF *pcrKey,
1610 BYTE *pbAlpha,
1611 DWORD *pdwFlags);
1612
1613 DWORD
1614 NTAPI
1615 NtUserGetListBoxInfo(
1616 HWND hWnd);
1617
1618 typedef struct tagNTUSERGETMESSAGEINFO
1619 {
1620 MSG Msg;
1621 ULONG LParamSize;
1622 } NTUSERGETMESSAGEINFO, *PNTUSERGETMESSAGEINFO;
1623
1624 BOOL
1625 NTAPI
1626 NtUserGetMessage(
1627 PNTUSERGETMESSAGEINFO MsgInfo,
1628 HWND hWnd,
1629 UINT wMsgFilterMin,
1630 UINT wMsgFilterMax);
1631
1632 DWORD
1633 NTAPI
1634 NtUserGetMouseMovePointsEx(
1635 UINT cbSize,
1636 LPMOUSEMOVEPOINT lppt,
1637 LPMOUSEMOVEPOINT lpptBuf,
1638 int nBufPoints,
1639 DWORD resolution);
1640
1641 BOOL
1642 NTAPI
1643 NtUserGetObjectInformation(
1644 HANDLE hObject,
1645 DWORD nIndex,
1646 PVOID pvInformation,
1647 DWORD nLength,
1648 PDWORD nLengthNeeded);
1649
1650 HWND
1651 NTAPI
1652 NtUserGetOpenClipboardWindow(VOID);
1653
1654 INT
1655 NTAPI
1656 NtUserGetPriorityClipboardFormat(
1657 UINT *paFormatPriorityList,
1658 INT cFormats);
1659
1660 HWINSTA
1661 NTAPI
1662 NtUserGetProcessWindowStation(VOID);
1663
1664 DWORD
1665 NTAPI
1666 NtUserGetRawInputBuffer(
1667 PRAWINPUT pData,
1668 PUINT pcbSize,
1669 UINT cbSizeHeader);
1670
1671 DWORD
1672 NTAPI
1673 NtUserGetRawInputData(
1674 HRAWINPUT hRawInput,
1675 UINT uiCommand,
1676 LPVOID pData,
1677 PUINT pcbSize,
1678 UINT cbSizeHeader);
1679
1680 DWORD
1681 NTAPI
1682 NtUserGetRawInputDeviceInfo(
1683 HANDLE hDevice,
1684 UINT uiCommand,
1685 LPVOID pData,
1686 PUINT pcbSize);
1687
1688 DWORD
1689 NTAPI
1690 NtUserGetRawInputDeviceList(
1691 PRAWINPUTDEVICELIST pRawInputDeviceList,
1692 PUINT puiNumDevices,
1693 UINT cbSize);
1694
1695 DWORD
1696 NTAPI
1697 NtUserGetRegisteredRawInputDevices(
1698 PRAWINPUTDEVICE pRawInputDevices,
1699 PUINT puiNumDevices,
1700 UINT cbSize);
1701
1702 BOOL
1703 NTAPI
1704 NtUserGetScrollBarInfo(
1705 HWND hWnd,
1706 LONG idObject,
1707 PSCROLLBARINFO psbi);
1708
1709 HDESK
1710 NTAPI
1711 NtUserGetThreadDesktop(
1712 DWORD dwThreadId,
1713 DWORD Unknown1);
1714
1715
1716 enum ThreadStateRoutines
1717 {
1718 THREADSTATE_GETTHREADINFO,
1719 THREADSTATE_INSENDMESSAGE,
1720 THREADSTATE_FOCUSWINDOW,
1721 THREADSTATE_ACTIVEWINDOW,
1722 THREADSTATE_CAPTUREWINDOW,
1723 THREADSTATE_PROGMANWINDOW,
1724 THREADSTATE_TASKMANWINDOW
1725 };
1726
1727 DWORD
1728 NTAPI
1729 NtUserGetThreadState(
1730 DWORD Routine);
1731
1732 BOOLEAN
1733 NTAPI
1734 NtUserGetTitleBarInfo(
1735 HWND hwnd,
1736 PTITLEBARINFO pti);
1737
1738 BOOL NTAPI
1739 NtUserGetUpdateRect(HWND hWnd, LPRECT lpRect, BOOL fErase);
1740
1741 int
1742 NTAPI
1743 NtUserGetUpdateRgn(
1744 HWND hWnd,
1745 HRGN hRgn,
1746 BOOL bErase);
1747
1748 HDC
1749 NTAPI
1750 NtUserGetWindowDC(
1751 HWND hWnd);
1752
1753 BOOL
1754 NTAPI
1755 NtUserGetWindowPlacement(
1756 HWND hWnd,
1757 WINDOWPLACEMENT *lpwndpl);
1758
1759 DWORD
1760 NTAPI
1761 NtUserGetWOWClass(
1762 DWORD Unknown0,
1763 DWORD Unknown1);
1764
1765 DWORD
1766 NTAPI
1767 NtUserHardErrorControl(
1768 DWORD dwUnknown1,
1769 DWORD dwUnknown2,
1770 DWORD dwUnknown3);
1771
1772 BOOL
1773 NTAPI
1774 NtUserImpersonateDdeClientWindow(
1775 HWND hWndClient,
1776 HWND hWndServer);
1777
1778 NTSTATUS
1779 NTAPI
1780 NtUserInitialize(
1781 DWORD dwWinVersion,
1782 HANDLE hPowerRequestEvent,
1783 HANDLE hMediaRequestEvent);
1784
1785 NTSTATUS
1786 NTAPI
1787 NtUserInitializeClientPfnArrays(
1788 PPFNCLIENT pfnClientA,
1789 PPFNCLIENT pfnClientW,
1790 PPFNCLIENTWORKER pfnClientWorker,
1791 HINSTANCE hmodUser);
1792
1793 DWORD
1794 NTAPI
1795 NtUserInitTask(
1796 DWORD Unknown0,
1797 DWORD Unknown1,
1798 DWORD Unknown2,
1799 DWORD Unknown3,
1800 DWORD Unknown4,
1801 DWORD Unknown5,
1802 DWORD Unknown6,
1803 DWORD Unknown7,
1804 DWORD Unknown8,
1805 DWORD Unknown9,
1806 DWORD Unknown10,
1807 DWORD Unknown11);
1808
1809 INT
1810 NTAPI
1811 NtUserInternalGetWindowText(
1812 HWND hWnd,
1813 LPWSTR lpString,
1814 INT nMaxCount);
1815
1816 BOOL
1817 NTAPI
1818 NtUserInvalidateRect(
1819 HWND hWnd,
1820 CONST RECT *lpRect,
1821 BOOL bErase);
1822
1823 BOOL
1824 NTAPI
1825 NtUserInvalidateRgn(
1826 HWND hWnd,
1827 HRGN hRgn,
1828 BOOL bErase);
1829
1830 BOOL
1831 NTAPI
1832 NtUserIsClipboardFormatAvailable(
1833 UINT format);
1834
1835 BOOL
1836 NTAPI
1837 NtUserKillTimer
1838 (
1839 HWND hWnd,
1840 UINT_PTR uIDEvent
1841 );
1842
1843 HKL
1844 NTAPI
1845 NtUserLoadKeyboardLayoutEx(
1846 IN HANDLE Handle,
1847 IN DWORD offTable,
1848 IN PUNICODE_STRING puszKeyboardName,
1849 IN HKL hKL,
1850 IN PUNICODE_STRING puszKLID,
1851 IN DWORD dwKLID,
1852 IN UINT Flags);
1853
1854 BOOL
1855 NTAPI
1856 NtUserLockWindowStation(
1857 HWINSTA hWindowStation);
1858
1859 BOOL
1860 NTAPI
1861 NtUserLockWindowUpdate(
1862 HWND hWnd);
1863
1864 BOOL
1865 NTAPI
1866 NtUserLockWorkStation(VOID);
1867
1868 UINT
1869 NTAPI
1870 NtUserMapVirtualKeyEx( UINT keyCode,
1871 UINT transType,
1872 DWORD keyboardId,
1873 HKL dwhkl );
1874 LRESULT
1875 NTAPI
1876 NtUserMessageCall(
1877 HWND hWnd,
1878 UINT Msg,
1879 WPARAM wParam,
1880 LPARAM lParam,
1881 ULONG_PTR ResultInfo,
1882 DWORD dwType, // FNID_XX types
1883 BOOL Ansi);
1884
1885 DWORD
1886 NTAPI
1887 NtUserMinMaximize(
1888 HWND hWnd,
1889 UINT cmd, // Wine SW_ commands
1890 BOOL Hide);
1891
1892 DWORD
1893 NTAPI
1894 NtUserMNDragLeave(VOID);
1895
1896 DWORD
1897 NTAPI
1898 NtUserMNDragOver(
1899 DWORD Unknown0,
1900 DWORD Unknown1);
1901
1902 DWORD
1903 NTAPI
1904 NtUserModifyUserStartupInfoFlags(
1905 DWORD Unknown0,
1906 DWORD Unknown1);
1907
1908 BOOL
1909 NTAPI
1910 NtUserMoveWindow(
1911 HWND hWnd,
1912 int X,
1913 int Y,
1914 int nWidth,
1915 int nHeight,
1916 BOOL bRepaint
1917 );
1918
1919 DWORD
1920 NTAPI
1921 NtUserNotifyIMEStatus(
1922 DWORD Unknown0,
1923 DWORD Unknown1,
1924 DWORD Unknown2);
1925
1926 DWORD
1927 NTAPI
1928 NtUserNotifyProcessCreate(
1929 DWORD dwUnknown1,
1930 DWORD dwUnknown2,
1931 DWORD dwUnknown3,
1932 DWORD dwUnknown4);
1933
1934 VOID
1935 NTAPI
1936 NtUserNotifyWinEvent(
1937 DWORD Event,
1938 HWND hWnd,
1939 LONG idObject,
1940 LONG idChild);
1941
1942 BOOL
1943 NTAPI
1944 NtUserOpenClipboard(
1945 HWND hWnd,
1946 DWORD Unknown1);
1947
1948 HDESK
1949 NTAPI
1950 NtUserOpenDesktop(
1951 PUNICODE_STRING lpszDesktopName,
1952 DWORD dwFlags,
1953 ACCESS_MASK dwDesiredAccess);
1954
1955 HDESK
1956 NTAPI
1957 NtUserOpenInputDesktop(
1958 DWORD dwFlags,
1959 BOOL fInherit,
1960 ACCESS_MASK dwDesiredAccess);
1961
1962 HWINSTA
1963 NTAPI
1964 NtUserOpenWindowStation(
1965 PUNICODE_STRING lpszWindowStationName,
1966 ACCESS_MASK dwDesiredAccess);
1967
1968 BOOL
1969 NTAPI
1970 NtUserPaintDesktop(
1971 HDC hDC);
1972
1973 DWORD
1974 NTAPI
1975 NtUserPaintMenuBar(
1976 DWORD dwUnknown1,
1977 DWORD dwUnknown2,
1978 DWORD dwUnknown3,
1979 DWORD dwUnknown4,
1980 DWORD dwUnknown5,
1981 DWORD dwUnknown6);
1982
1983 BOOL
1984 NTAPI
1985 NtUserPeekMessage(
1986 PNTUSERGETMESSAGEINFO MsgInfo,
1987 HWND hWnd,
1988 UINT wMsgFilterMin,
1989 UINT wMsgFilterMax,
1990 UINT wRemoveMsg);
1991
1992 BOOL
1993 NTAPI
1994 NtUserPostMessage(
1995 HWND hWnd,
1996 UINT Msg,
1997 WPARAM wParam,
1998 LPARAM lParam);
1999
2000 BOOL
2001 NTAPI
2002 NtUserPostThreadMessage(
2003 DWORD idThread,
2004 UINT Msg,
2005 WPARAM wParam,
2006 LPARAM lParam);
2007
2008 BOOL
2009 NTAPI
2010 NtUserPrintWindow(
2011 HWND hwnd,
2012 HDC hdcBlt,
2013 UINT nFlags);
2014
2015 NTSTATUS
2016 NTAPI
2017 NtUserProcessConnect(
2018 IN HANDLE Process,
2019 OUT PUSERCONNECT pUserConnect,
2020 IN DWORD dwSize); // sizeof(USERCONNECT)
2021
2022 DWORD
2023 NTAPI
2024 NtUserQueryInformationThread(
2025 DWORD dwUnknown1,
2026 DWORD dwUnknown2,
2027 DWORD dwUnknown3,
2028 DWORD dwUnknown4,
2029 DWORD dwUnknown5);
2030
2031 DWORD
2032 NTAPI
2033 NtUserQueryInputContext(
2034 DWORD dwUnknown1,
2035 DWORD dwUnknown2);
2036
2037 DWORD
2038 NTAPI
2039 NtUserQuerySendMessage(
2040 DWORD Unknown0);
2041
2042 DWORD
2043 NTAPI
2044 NtUserQueryUserCounters(
2045 DWORD Unknown0,
2046 DWORD Unknown1,
2047 DWORD Unknown2,
2048 DWORD Unknown3,
2049 DWORD Unknown4);
2050
2051 #define QUERY_WINDOW_UNIQUE_PROCESS_ID 0x00
2052 #define QUERY_WINDOW_UNIQUE_THREAD_ID 0x01
2053 #define QUERY_WINDOW_ACTIVE 0x02
2054 #define QUERY_WINDOW_FOCUS 0x03
2055 #define QUERY_WINDOW_ISHUNG 0x04
2056 DWORD
2057 NTAPI
2058 NtUserQueryWindow(
2059 HWND hWnd,
2060 DWORD Index);
2061
2062 DWORD
2063 NTAPI
2064 NtUserRealInternalGetMessage(
2065 DWORD dwUnknown1,
2066 DWORD dwUnknown2,
2067 DWORD dwUnknown3,
2068 DWORD dwUnknown4,
2069 DWORD dwUnknown5,
2070 DWORD dwUnknown6);
2071
2072 DWORD
2073 NTAPI
2074 NtUserRealChildWindowFromPoint(
2075 DWORD Unknown0,
2076 DWORD Unknown1,
2077 DWORD Unknown2);
2078
2079 DWORD
2080 NTAPI
2081 NtUserRealWaitMessageEx(
2082 DWORD dwUnknown1,
2083 DWORD dwUnknown2);
2084
2085 BOOL
2086 NTAPI
2087 NtUserRedrawWindow
2088 (
2089 HWND hWnd,
2090 CONST RECT *lprcUpdate,
2091 HRGN hrgnUpdate,
2092 UINT flags
2093 );
2094
2095 RTL_ATOM
2096 NTAPI
2097 NtUserRegisterClassExWOW(
2098 WNDCLASSEXW* lpwcx,
2099 PUNICODE_STRING pustrClassName,
2100 PUNICODE_STRING pustrCNVersion,
2101 PCLSMENUNAME pClassMenuName,
2102 DWORD fnID,
2103 DWORD Flags,
2104 LPDWORD pWow);
2105
2106 BOOL
2107 NTAPI
2108 NtUserRegisterRawInputDevices(
2109 IN PCRAWINPUTDEVICE pRawInputDevices,
2110 IN UINT uiNumDevices,
2111 IN UINT cbSize);
2112
2113 DWORD
2114 NTAPI
2115 NtUserRegisterUserApiHook(
2116 DWORD dwUnknown1,
2117 DWORD dwUnknown2);
2118
2119 BOOL
2120 NTAPI
2121 NtUserRegisterHotKey(HWND hWnd,
2122 int id,
2123 UINT fsModifiers,
2124 UINT vk);
2125
2126 DWORD
2127 NTAPI
2128 NtUserRegisterTasklist(
2129 DWORD Unknown0);
2130
2131 UINT NTAPI
2132 NtUserRegisterWindowMessage(PUNICODE_STRING MessageName);
2133
2134 DWORD
2135 NTAPI
2136 NtUserRemoteConnect(
2137 DWORD dwUnknown1,
2138 DWORD dwUnknown2,
2139 DWORD dwUnknown3);
2140
2141 DWORD
2142 NTAPI
2143 NtUserRemoteRedrawRectangle(
2144 DWORD dwUnknown1,
2145 DWORD dwUnknown2,
2146 DWORD dwUnknown3,
2147 DWORD dwUnknown4);
2148
2149 DWORD
2150 NTAPI
2151 NtUserRemoteRedrawScreen(VOID);
2152
2153 DWORD
2154 NTAPI
2155 NtUserRemoteStopScreenUpdates(VOID);
2156
2157 HANDLE NTAPI
2158 NtUserRemoveProp(HWND hWnd, ATOM Atom);
2159
2160 DWORD
2161 NTAPI
2162 NtUserResolveDesktop(
2163 DWORD dwUnknown1,
2164 DWORD dwUnknown2,
2165 DWORD dwUnknown3,
2166 DWORD dwUnknown4);
2167
2168 DWORD
2169 NTAPI
2170 NtUserResolveDesktopForWOW(
2171 DWORD Unknown0);
2172
2173 DWORD
2174 NTAPI
2175 NtUserSBGetParms(
2176 DWORD Unknown0,
2177 DWORD Unknown1,
2178 DWORD Unknown2,
2179 DWORD Unknown3);
2180
2181 BOOL
2182 NTAPI
2183 NtUserScrollDC(
2184 HDC hDC,
2185 int dx,
2186 int dy,
2187 CONST RECT *lprcScroll,
2188 CONST RECT *lprcClip ,
2189 HRGN hrgnUpdate,
2190 LPRECT lprcUpdate);
2191
2192 DWORD NTAPI
2193 NtUserScrollWindowEx(HWND hWnd, INT dx, INT dy, const RECT *rect,
2194 const RECT *clipRect, HRGN hrgnUpdate, LPRECT rcUpdate, UINT flags);
2195
2196 UINT
2197 NTAPI
2198 NtUserSendInput(
2199 UINT nInputs,
2200 LPINPUT pInput,
2201 INT cbSize);
2202
2203 HWND NTAPI
2204 NtUserSetActiveWindow(HWND Wnd);
2205
2206 DWORD
2207 NTAPI
2208 NtUserSetAppImeLevel(
2209 DWORD dwUnknown1,
2210 DWORD dwUnknown2);
2211
2212 HWND NTAPI
2213 NtUserSetCapture(HWND Wnd);
2214
2215 ULONG_PTR NTAPI
2216 NtUserSetClassLong(
2217 HWND hWnd,
2218 INT Offset,
2219 ULONG_PTR dwNewLong,
2220 BOOL Ansi );
2221
2222 WORD
2223 NTAPI
2224 NtUserSetClassWord(
2225 HWND hWnd,
2226 INT nIndex,
2227 WORD wNewWord);
2228
2229 HANDLE
2230 NTAPI
2231 NtUserSetClipboardData(
2232 UINT uFormat,
2233 HANDLE hMem,
2234 DWORD Unknown2);
2235
2236 HWND
2237 NTAPI
2238 NtUserSetClipboardViewer(
2239 HWND hWndNewViewer);
2240
2241 HPALETTE
2242 NTAPI
2243 NtUserSelectPalette(
2244 HDC hDC,
2245 HPALETTE hpal,
2246 BOOL ForceBackground
2247 );
2248
2249 DWORD
2250 NTAPI
2251 NtUserSetConsoleReserveKeys(
2252 DWORD Unknown0,
2253 DWORD Unknown1);
2254
2255 HCURSOR
2256 NTAPI
2257 NtUserSetCursor(
2258 HCURSOR hCursor);
2259
2260 BOOL
2261 NTAPI
2262 NtUserSetCursorContents(
2263 HANDLE Handle,
2264 PICONINFO IconInfo);
2265
2266 BOOL
2267 NTAPI
2268 NtUserSetCursorIconData(
2269 HANDLE Handle,
2270 PBOOL fIcon,
2271 POINT *Hotspot,
2272 HMODULE hModule,
2273 HRSRC hRsrc,
2274 HRSRC hGroupRsrc);
2275
2276 DWORD
2277 NTAPI
2278 NtUserSetDbgTag(
2279 DWORD Unknown0,
2280 DWORD Unknown1);
2281
2282 HWND
2283 NTAPI
2284 NtUserSetFocus(
2285 HWND hWnd);
2286
2287 DWORD
2288 NTAPI
2289 NtUserSetImeHotKey(
2290 DWORD Unknown0,
2291 DWORD Unknown1,
2292 DWORD Unknown2,
2293 DWORD Unknown3,
2294 DWORD Unknown4);
2295
2296 DWORD
2297 NTAPI
2298 NtUserSetImeInfoEx(
2299 DWORD dwUnknown1);
2300
2301 DWORD
2302 NTAPI
2303 NtUserSetImeOwnerWindow(
2304 DWORD Unknown0,
2305 DWORD Unknown1);
2306
2307 DWORD
2308 NTAPI
2309 NtUserSetInformationProcess(
2310 DWORD dwUnknown1,
2311 DWORD dwUnknown2,
2312 DWORD dwUnknown3,
2313 DWORD dwUnknown4);
2314
2315 DWORD
2316 NTAPI
2317 NtUserSetInformationThread(
2318 DWORD dwUnknown1,
2319 DWORD dwUnknown2,
2320 DWORD dwUnknown3,
2321 DWORD dwUnknown4);
2322
2323 DWORD
2324 NTAPI
2325 NtUserSetInternalWindowPos(
2326 HWND hwnd,
2327 UINT showCmd,
2328 LPRECT rect,
2329 LPPOINT pt);
2330
2331 BOOL
2332 NTAPI
2333 NtUserSetKeyboardState(
2334 LPBYTE lpKeyState);
2335
2336 BOOL
2337 NTAPI
2338 NtUserSetLayeredWindowAttributes(
2339 HWND hwnd,
2340 COLORREF crKey,
2341 BYTE bAlpha,
2342 DWORD dwFlags);
2343
2344 BOOL
2345 NTAPI
2346 NtUserSetLogonNotifyWindow(
2347 HWND hWnd);
2348
2349 BOOL
2350 NTAPI
2351 NtUserSetObjectInformation(
2352 HANDLE hObject,
2353 DWORD nIndex,
2354 PVOID pvInformation,
2355 DWORD nLength);
2356
2357 HWND
2358 NTAPI
2359 NtUserSetParent(
2360 HWND hWndChild,
2361 HWND hWndNewParent);
2362
2363 BOOL
2364 NTAPI
2365 NtUserSetProcessWindowStation(
2366 HWINSTA hWindowStation);
2367
2368 BOOL NTAPI
2369 NtUserSetProp(HWND hWnd, ATOM Atom, HANDLE Data);
2370
2371 DWORD
2372 NTAPI
2373 NtUserSetRipFlags(
2374 DWORD Unknown0,
2375 DWORD Unknown1);
2376
2377 DWORD
2378 NTAPI
2379 NtUserSetScrollInfo(
2380 HWND hwnd,
2381 int fnBar,
2382 LPCSCROLLINFO lpsi,
2383 BOOL bRedraw);
2384
2385 BOOL
2386 NTAPI
2387 NtUserSetShellWindowEx(
2388 HWND hwndShell,
2389 HWND hwndShellListView);
2390
2391 BOOL
2392 NTAPI
2393 NtUserSetSysColors(
2394 int cElements,
2395 IN CONST INT *lpaElements,
2396 IN CONST COLORREF *lpaRgbValues,
2397 FLONG Flags);
2398
2399 BOOL
2400 NTAPI
2401 NtUserSetSystemCursor(
2402 HCURSOR hcur,
2403 DWORD id);
2404
2405 BOOL
2406 NTAPI
2407 NtUserSetThreadDesktop(
2408 HDESK hDesktop);
2409
2410 DWORD
2411 NTAPI
2412 NtUserSetThreadState(
2413 DWORD Unknown0,
2414 DWORD Unknown1);
2415
2416 UINT_PTR
2417 NTAPI
2418 NtUserSetSystemTimer
2419 (
2420 HWND hWnd,
2421 UINT_PTR nIDEvent,
2422 UINT uElapse,
2423 TIMERPROC lpTimerFunc
2424 );
2425
2426 DWORD
2427 NTAPI
2428 NtUserSetThreadLayoutHandles(
2429 DWORD dwUnknown1,
2430 DWORD dwUnknown2);
2431
2432 UINT_PTR
2433 NTAPI
2434 NtUserSetTimer
2435 (
2436 HWND hWnd,
2437 UINT_PTR nIDEvent,
2438 UINT uElapse,
2439 TIMERPROC lpTimerFunc
2440 );
2441
2442 BOOL
2443 NTAPI
2444 NtUserSetWindowFNID(
2445 HWND hWnd,
2446 WORD fnID);
2447
2448 LONG
2449 NTAPI
2450 NtUserSetWindowLong(
2451 HWND hWnd,
2452 DWORD Index,
2453 LONG NewValue,
2454 BOOL Ansi);
2455
2456 BOOL
2457 NTAPI
2458 NtUserSetWindowPlacement(
2459 HWND hWnd,
2460 WINDOWPLACEMENT *lpwndpl);
2461
2462 BOOL
2463 NTAPI NtUserSetWindowPos(
2464 HWND hWnd,
2465 HWND hWndInsertAfter,
2466 int X,
2467 int Y,
2468 int cx,
2469 int cy,
2470 UINT uFlags
2471 );
2472
2473 INT
2474 NTAPI
2475 NtUserSetWindowRgn(
2476 HWND hWnd,
2477 HRGN hRgn,
2478 BOOL bRedraw);
2479
2480 HHOOK
2481 NTAPI
2482 NtUserSetWindowsHookAW(
2483 int idHook,
2484 HOOKPROC lpfn,
2485 BOOL Ansi);
2486
2487 HHOOK
2488 NTAPI
2489 NtUserSetWindowsHookEx(
2490 HINSTANCE Mod,
2491 PUNICODE_STRING ModuleName,
2492 DWORD ThreadId,
2493 int HookId,
2494 HOOKPROC HookProc,
2495 BOOL Ansi);
2496
2497 DWORD
2498 NTAPI
2499 NtUserSetWindowStationUser(
2500 DWORD Unknown0,
2501 DWORD Unknown1,
2502 DWORD Unknown2,
2503 DWORD Unknown3);
2504
2505 WORD NTAPI
2506 NtUserSetWindowWord(HWND hWnd, INT Index, WORD NewVal);
2507
2508 HWINEVENTHOOK
2509 NTAPI
2510 NtUserSetWinEventHook(
2511 UINT eventMin,
2512 UINT eventMax,
2513 HMODULE hmodWinEventProc,
2514 PUNICODE_STRING puString,
2515 WINEVENTPROC lpfnWinEventProc,
2516 DWORD idProcess,
2517 DWORD idThread,
2518 UINT dwflags);
2519
2520 BOOL
2521 NTAPI
2522 NtUserShowCaret(
2523 HWND hWnd);
2524
2525 BOOL
2526 NTAPI
2527 NtUserHideCaret(
2528 HWND hWnd);
2529
2530 DWORD
2531 NTAPI
2532 NtUserShowScrollBar(HWND hWnd, int wBar, DWORD bShow);
2533
2534 BOOL
2535 NTAPI
2536 NtUserShowWindow(
2537 HWND hWnd,
2538 LONG nCmdShow);
2539
2540 BOOL
2541 NTAPI
2542 NtUserShowWindowAsync(
2543 HWND hWnd,
2544 LONG nCmdShow);
2545
2546 BOOL
2547 NTAPI
2548 NtUserSoundSentry(VOID);
2549
2550 BOOL
2551 NTAPI
2552 NtUserSwitchDesktop(
2553 HDESK hDesktop);
2554
2555 BOOL
2556 NTAPI
2557 NtUserSystemParametersInfo(
2558 UINT uiAction,
2559 UINT uiParam,
2560 PVOID pvParam,
2561 UINT fWinIni);
2562
2563 DWORD
2564 NTAPI
2565 NtUserTestForInteractiveUser(
2566 DWORD dwUnknown1);
2567
2568 INT
2569 NTAPI
2570 NtUserToUnicodeEx(
2571 UINT wVirtKey,
2572 UINT wScanCode,
2573 PBYTE lpKeyState,
2574 LPWSTR pwszBuff,
2575 int cchBuff,
2576 UINT wFlags,
2577 HKL dwhkl );
2578
2579 BOOL
2580 NTAPI
2581 NtUserTrackMouseEvent(
2582 LPTRACKMOUSEEVENT lpEventTrack);
2583
2584 int
2585 NTAPI
2586 NtUserTranslateAccelerator(
2587 HWND Window,
2588 HACCEL Table,
2589 LPMSG Message);
2590
2591 BOOL
2592 NTAPI
2593 NtUserTranslateMessage(
2594 LPMSG lpMsg,
2595 HKL dwhkl );
2596
2597 BOOL
2598 NTAPI
2599 NtUserUnhookWindowsHookEx(
2600 HHOOK Hook);
2601
2602 BOOL
2603 NTAPI
2604 NtUserUnhookWinEvent(
2605 HWINEVENTHOOK hWinEventHook);
2606
2607 BOOL
2608 NTAPI
2609 NtUserUnloadKeyboardLayout(
2610 HKL hKl);
2611
2612 BOOL
2613 NTAPI
2614 NtUserUnlockWindowStation(
2615 HWINSTA hWindowStation);
2616
2617 BOOL
2618 NTAPI
2619 NtUserUnregisterClass(
2620 PUNICODE_STRING ClassNameOrAtom,
2621 HINSTANCE hInstance,
2622 PCLSMENUNAME pClassMenuName);
2623
2624 BOOL
2625 NTAPI
2626 NtUserUnregisterHotKey(HWND hWnd,
2627 int id);
2628
2629 DWORD
2630 NTAPI
2631 NtUserUnregisterUserApiHook(VOID);
2632
2633 DWORD
2634 NTAPI
2635 NtUserUpdateInputContext(
2636 DWORD Unknown0,
2637 DWORD Unknown1,
2638 DWORD Unknown2);
2639
2640 DWORD
2641 NTAPI
2642 NtUserUpdateInstance(
2643 DWORD Unknown0,
2644 DWORD Unknown1,
2645 DWORD Unknown2);
2646
2647 BOOL
2648 NTAPI
2649 NtUserUpdateLayeredWindow(
2650 HWND hwnd,
2651 HDC hdcDst,
2652 POINT *pptDst,
2653 SIZE *psize,
2654 HDC hdcSrc,
2655 POINT *pptSrc,
2656 COLORREF crKey,
2657 BLENDFUNCTION *pblend,
2658 DWORD dwFlags);
2659
2660 BOOL
2661 NTAPI
2662 NtUserUpdatePerUserSystemParameters(
2663 DWORD dwReserved,
2664 BOOL bEnable);
2665
2666 BOOL
2667 NTAPI
2668 NtUserUserHandleGrantAccess(
2669 IN HANDLE hUserHandle,
2670 IN HANDLE hJob,
2671 IN BOOL bGrant);
2672
2673 BOOL
2674 NTAPI
2675 NtUserValidateHandleSecure(
2676 HANDLE hHdl,
2677 BOOL Restricted);
2678
2679 BOOL
2680 NTAPI
2681 NtUserValidateRect(
2682 HWND hWnd,
2683 CONST RECT *lpRect);
2684
2685 DWORD
2686 NTAPI
2687 NtUserValidateTimerCallback(
2688 DWORD dwUnknown1,
2689 DWORD dwUnknown2,
2690 DWORD dwUnknown3);
2691
2692 DWORD
2693 NTAPI
2694 NtUserVkKeyScanEx(
2695 WCHAR wChar,
2696 HKL KeyboardLayout,
2697 DWORD Unknown2);
2698
2699 DWORD
2700 NTAPI
2701 NtUserWaitForInputIdle(
2702 IN HANDLE hProcess,
2703 IN DWORD dwMilliseconds,
2704 IN BOOL Unknown2); // Always FALSE
2705
2706 DWORD
2707 NTAPI
2708 NtUserWaitForMsgAndEvent(
2709 DWORD Unknown0);
2710
2711 BOOL
2712 NTAPI
2713 NtUserWaitMessage(VOID);
2714
2715 DWORD
2716 NTAPI
2717 NtUserWin32PoolAllocationStats(
2718 DWORD Unknown0,
2719 DWORD Unknown1,
2720 DWORD Unknown2,
2721 DWORD Unknown3,
2722 DWORD Unknown4,
2723 DWORD Unknown5);
2724
2725 HWND
2726 NTAPI
2727 NtUserWindowFromPoint(
2728 LONG X,
2729 LONG Y);
2730
2731 DWORD
2732 NTAPI
2733 NtUserYieldTask(VOID);
2734
2735 /* lParam of DDE messages */
2736 typedef struct tagKMDDEEXECUTEDATA
2737 {
2738 HWND Sender;
2739 HGLOBAL ClientMem;
2740 /* BYTE Data[DataSize] */
2741 } KMDDEEXECUTEDATA, *PKMDDEEXECUTEDATA;
2742
2743 typedef struct tagKMDDELPARAM
2744 {
2745 BOOL Packed;
2746 union
2747 {
2748 struct
2749 {
2750 UINT uiLo;
2751 UINT uiHi;
2752 } Packed;
2753 LPARAM Unpacked;
2754 } Value;
2755 } KMDDELPARAM, *PKMDDELPARAM;
2756
2757
2758
2759
2760
2761 /* NtUserBad
2762 * ReactOS-specific NtUser calls and their related structures, both which shouldn't exist.
2763 */
2764
2765 #define NOPARAM_ROUTINE_GETMESSAGEEXTRAINFO 0xffff0005
2766 #define NOPARAM_ROUTINE_ANYPOPUP 0xffff0006
2767 #define NOPARAM_ROUTINE_CSRSS_INITIALIZED 0xffff0007
2768 #define ONEPARAM_ROUTINE_CSRSS_GUICHECK 0xffff0008
2769 #define ONEPARAM_ROUTINE_GETMENU 0xfffe0001 // usermode
2770 #define ONEPARAM_ROUTINE_ISWINDOWUNICODE 0xfffe0002
2771 #define ONEPARAM_ROUTINE_GETCARETINFO 0xfffe0007
2772 #define ONEPARAM_ROUTINE_SWITCHCARETSHOWING 0xfffe0008
2773 #define ONEPARAM_ROUTINE_ISWINDOWINDESTROY 0xfffe000c
2774 #define ONEPARAM_ROUTINE_ENABLEPROCWNDGHSTING 0xfffe000d
2775 #define ONEPARAM_ROUTINE_GETDESKTOPMAPPING 0xfffe000e
2776 #define ONEPARAM_ROUTINE_GETWINDOWINSTANCE 0xfffe0010
2777 #define ONEPARAM_ROUTINE_CREATECURICONHANDLE 0xfffe0025 // CREATE_EMPTY_CURSOR_OBJECT ?
2778 #define ONEPARAM_ROUTINE_MSQSETWAKEMASK 0xfffe0027
2779 #define ONEPARAM_ROUTINE_REGISTERUSERMODULE 0xfffe0031
2780 #define ONEPARAM_ROUTINE_GETWNDCONTEXTHLPID 0xfffe0047 // use HWND_ROUTINE_GETWNDCONTEXTHLPID
2781 #define ONEPARAM_ROUTINE_GETCURSORPOSITION 0xfffe0048 // use ONEPARAM_ or TWOPARAM routine ?
2782 #define TWOPARAM_ROUTINE_GETWINDOWRGNBOX 0xfffd0048 // user mode
2783 #define TWOPARAM_ROUTINE_GETWINDOWRGN 0xfffd0049 // user mode
2784 #define TWOPARAM_ROUTINE_SETMENUBARHEIGHT 0xfffd0050
2785 #define TWOPARAM_ROUTINE_SETMENUITEMRECT 0xfffd0051
2786 #define TWOPARAM_ROUTINE_SETGUITHRDHANDLE 0xfffd0052
2787 #define MSQ_STATE_CAPTURE 0x1
2788 #define MSQ_STATE_ACTIVE 0x2
2789 #define MSQ_STATE_FOCUS 0x3
2790 #define MSQ_STATE_MENUOWNER 0x4
2791 #define MSQ_STATE_MOVESIZE 0x5
2792 #define MSQ_STATE_CARET 0x6
2793 #define TWOPARAM_ROUTINE_SETWNDCONTEXTHLPID 0xfffd0058 // use HWNDPARAM_ROUTINE_SETWNDCONTEXTHLPID
2794 #define TWOPARAM_ROUTINE_SETCARETPOS 0xfffd0060
2795 #define TWOPARAM_ROUTINE_GETWINDOWINFO 0xfffd0061
2796 #define TWOPARAM_ROUTINE_REGISTERLOGONPROC 0xfffd0062
2797 #define TWOPARAM_ROUTINE_GETSYSCOLORBRUSHES 0xfffd0063
2798 #define TWOPARAM_ROUTINE_GETSYSCOLORPENS 0xfffd0064
2799 #define TWOPARAM_ROUTINE_GETSYSCOLORS 0xfffd0065
2800 #define TWOPARAM_ROUTINE_ROS_ISACTIVEICON 0x1001
2801 #define TWOPARAM_ROUTINE_ROS_NCDESTROY 0x1002
2802 #define TWOPARAM_ROUTINE_ROS_REGSYSCLASSES 0x1003
2803 #define TWOPARAM_ROUTINE_ROS_UPDATEUISTATE 0x1004
2804
2805 DWORD
2806 NTAPI
2807 NtUserBuildMenuItemList(
2808 HMENU hMenu,
2809 PVOID Buffer,
2810 ULONG nBufSize,
2811 DWORD Reserved);
2812
2813 /* Use ONEPARAM_ROUTINE_CREATEEMPTYCURSOROBJECT (0x21) ? */
2814 HANDLE
2815 NTAPI
2816 NtUserCreateCursorIconHandle(
2817 PICONINFO IconInfo,
2818 BOOL Indirect);
2819
2820
2821 /* Should be done in usermode */
2822 ULONG_PTR
2823 NTAPI
2824 NtUserGetClassLong(HWND hWnd, INT Offset, BOOL Ansi);
2825
2826 UINT
2827 NTAPI
2828 NtUserGetMenuDefaultItem(
2829 HMENU hMenu,
2830 UINT fByPos,
2831 UINT gmdiFlags);
2832
2833 BOOL
2834 NTAPI
2835 NtUserGetLastInputInfo(
2836 PLASTINPUTINFO plii);
2837
2838 BOOL
2839 NTAPI
2840 NtUserGetMinMaxInfo(
2841 HWND hwnd,
2842 MINMAXINFO *MinMaxInfo,
2843 BOOL SendMessage);
2844
2845 BOOL
2846 NTAPI
2847 NtUserGetMonitorInfo(
2848 IN HMONITOR hMonitor,
2849 OUT LPMONITORINFO pMonitorInfo);
2850
2851 /* Should be done in usermode */
2852 BOOL
2853 NTAPI
2854 NtUserGetScrollInfo(
2855 HWND hwnd,
2856 int fnBar,
2857 LPSCROLLINFO lpsi);
2858
2859 HWND
2860 NTAPI
2861 NtUserGetWindow(HWND hWnd, UINT Relationship);
2862
2863 /* Should be done in usermode */
2864 LONG
2865 NTAPI
2866 NtUserGetWindowLong(HWND hWnd, DWORD Index, BOOL Ansi);
2867
2868
2869 /* (other FocusedItem values give the position of the focused item) */
2870 #define NO_SELECTED_ITEM 0xffff
2871
2872 typedef struct tagROSMENUINFO
2873 {
2874 /* ----------- MENUINFO ----------- */
2875 DWORD cbSize;
2876 DWORD fMask;
2877 DWORD dwStyle;
2878 UINT cyMax;
2879 HBRUSH hbrBack;
2880 DWORD dwContextHelpID;
2881 ULONG_PTR dwMenuData;
2882 /* ----------- Extra ----------- */
2883 HMENU Self; /* Handle of this menu */
2884 WORD Flags; /* Menu flags (MF_POPUP, MF_SYSMENU) */
2885 UINT FocusedItem; /* Currently focused item */
2886 UINT MenuItemCount; /* Number of items in the menu */
2887 HWND Wnd; /* Window containing the menu */
2888 WORD Width; /* Width of the whole menu */
2889 WORD Height; /* Height of the whole menu */
2890 HWND WndOwner; /* window receiving the messages for ownerdraw */
2891 BOOL TimeToHide; /* Request hiding when receiving a second click in the top-level menu item */
2892 SIZE maxBmpSize; /* Maximum size of the bitmap items in MIIM_BITMAP state */
2893 } ROSMENUINFO, *PROSMENUINFO;
2894
2895 BOOL
2896 NTAPI
2897 NtUserMenuInfo(
2898 HMENU hmenu,
2899 PROSMENUINFO lpmi,
2900 BOOL fsog
2901 );
2902
2903
2904
2905 typedef struct tagROSMENUITEMINFO
2906 {
2907 /* ----------- MENUITEMINFOW ----------- */
2908 UINT cbSize;
2909 UINT fMask;
2910 UINT fType;
2911 UINT fState;
2912 UINT wID;
2913 HMENU hSubMenu;
2914 HBITMAP hbmpChecked;
2915 HBITMAP hbmpUnchecked;
2916 DWORD dwItemData;
2917 LPWSTR dwTypeData;
2918 UINT cch;
2919 HBITMAP hbmpItem;
2920 /* ----------- Extra ----------- */
2921 RECT Rect; /* Item area (relative to menu window) */
2922 UINT XTab; /* X position of text after Tab */
2923 LPWSTR Text; /* Copy of the text pointer in MenuItem->Text */
2924 } ROSMENUITEMINFO, *PROSMENUITEMINFO;
2925
2926 BOOL
2927 NTAPI
2928 NtUserMenuItemInfo(
2929 HMENU hMenu,
2930 UINT uItem,
2931 BOOL fByPosition,
2932 PROSMENUITEMINFO lpmii,
2933 BOOL fsog
2934 );
2935
2936 HMONITOR
2937 NTAPI
2938 NtUserMonitorFromPoint(
2939 IN POINT point,
2940 IN DWORD dwFlags);
2941
2942 HMONITOR
2943 NTAPI
2944 NtUserMonitorFromRect(
2945 IN LPCRECT pRect,
2946 IN DWORD dwFlags);
2947
2948 HMONITOR
2949 NTAPI
2950 NtUserMonitorFromWindow(
2951 IN HWND hWnd,
2952 IN DWORD dwFlags);
2953
2954
2955 /* FIXME: These flag constans aren't what Windows uses. */
2956 #define REGISTERCLASS_ANSI 2
2957 #define REGISTERCLASS_ALL (REGISTERCLASS_ANSI)
2958
2959 RTL_ATOM
2960 NTAPI
2961 NtUserRegisterClassEx( // Need to use NtUserRegisterClassExWOW.
2962 CONST WNDCLASSEXW* lpwcx,
2963 PUNICODE_STRING ClassName,
2964 PUNICODE_STRING MenuName,
2965 WNDPROC wpExtra,
2966 DWORD Flags,
2967 HMENU hMenu);
2968
2969
2970
2971 typedef struct tagNTUSERSENDMESSAGEINFO
2972 {
2973 BOOL HandledByKernel;
2974 BOOL Ansi;
2975 WNDPROC Proc;
2976 } NTUSERSENDMESSAGEINFO, *PNTUSERSENDMESSAGEINFO;
2977
2978 /* use NtUserMessageCall */
2979 LRESULT NTAPI
2980 NtUserSendMessage(HWND hWnd,
2981 UINT Msg,
2982 WPARAM wParam,
2983 LPARAM lParam,
2984 PNTUSERSENDMESSAGEINFO Info);
2985
2986 /* use NtUserMessageCall */
2987 LRESULT NTAPI
2988 NtUserSendMessageTimeout(HWND hWnd,
2989 UINT Msg,
2990 WPARAM wParam,
2991 LPARAM lParam,
2992 UINT uFlags,
2993 UINT uTimeout,
2994 ULONG_PTR *uResult,
2995 PNTUSERSENDMESSAGEINFO Info);
2996
2997 /* use NtUserMessageCall */
2998 BOOL
2999 NTAPI
3000 NtUserSendNotifyMessage(
3001 HWND hWnd,
3002 UINT Msg,
3003 WPARAM wParam,
3004 LPARAM lParam);
3005
3006
3007 typedef struct _SETSCROLLBARINFO
3008 {
3009 int nTrackPos;
3010 int reserved;
3011 DWORD rgstate[CCHILDREN_SCROLLBAR+1];
3012 } SETSCROLLBARINFO, *PSETSCROLLBARINFO;
3013
3014 BOOL
3015 NTAPI
3016 NtUserSetScrollBarInfo(
3017 HWND hwnd,
3018 LONG idObject,
3019 SETSCROLLBARINFO *info);
3020
3021
3022
3023 #endif /* __WIN32K_NTUSER_H */
3024
3025 /* EOF */