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