1 #ifndef __WIN32K_NTUSER_H 2 #define __WIN32K_NTUSER_H 3 4 struct _PROCESSINFO; 5 struct _THREADINFO; 6 struct _DESKTOP; 7 struct _WND; 8 struct tagPOPUPMENU; 9 #ifndef HIMC 10 typedef HANDLE HIMC; 11 #endif 12 13 #define FIRST_USER_HANDLE 0x0020 /* first possible value for low word of user handle */ 14 #define LAST_USER_HANDLE 0xffef /* last possible value for low word of user handle */ 15 16 #define HANDLEENTRY_DESTROY 1 17 #define HANDLEENTRY_INDESTROY 2 18 19 typedef struct _USER_HANDLE_ENTRY 20 { 21 void *ptr; /* pointer to object */ 22 union 23 { 24 PVOID pi; 25 struct _THREADINFO *pti; /* pointer to Win32ThreadInfo */ 26 struct _PROCESSINFO *ppi; /* pointer to W32ProcessInfo */ 27 }; 28 unsigned char type; /* object type (0 if free) */ 29 unsigned char flags; 30 unsigned short generation; /* generation counter */ 31 } USER_HANDLE_ENTRY, *PUSER_HANDLE_ENTRY; 32 33 typedef struct _USER_HANDLE_TABLE 34 { 35 PUSER_HANDLE_ENTRY handles; 36 PUSER_HANDLE_ENTRY freelist; 37 int nb_handles; 38 int allocated_handles; 39 } USER_HANDLE_TABLE, *PUSER_HANDLE_TABLE; 40 41 typedef enum _HANDLE_TYPE 42 { 43 TYPE_FREE = 0, 44 TYPE_WINDOW = 1, 45 TYPE_MENU = 2, 46 TYPE_CURSOR = 3, 47 TYPE_SETWINDOWPOS = 4, 48 TYPE_HOOK = 5, 49 TYPE_CLIPDATA = 6, 50 TYPE_CALLPROC = 7, 51 TYPE_ACCELTABLE = 8, 52 TYPE_DDEACCESS = 9, 53 TYPE_DDECONV = 10, 54 TYPE_DDEXACT = 11, 55 TYPE_MONITOR = 12, 56 TYPE_KBDLAYOUT = 13, 57 TYPE_KBDFILE = 14, 58 TYPE_WINEVENTHOOK = 15, 59 TYPE_TIMER = 16, 60 TYPE_INPUTCONTEXT = 17, 61 TYPE_HIDDATA = 18, 62 TYPE_DEVICEINFO = 19, 63 TYPE_TOUCHINPUTINFO = 20, 64 TYPE_GESTUREINFOOBJ = 21, 65 TYPE_CTYPES, 66 TYPE_GENERIC = 255 67 } HANDLE_TYPE, *PHANDLE_TYPE; 68 69 typedef enum _USERTHREADINFOCLASS 70 { 71 UserThreadShutdownInformation, 72 UserThreadFlags, 73 UserThreadTaskName, 74 UserThreadWOWInformation, 75 UserThreadHungStatus, 76 UserThreadInitiateShutdown, 77 UserThreadEndShutdown, 78 UserThreadUseActiveDesktop, 79 UserThreadUseDesktop, 80 UserThreadRestoreDesktop, 81 UserThreadCsrApiPort, 82 } USERTHREADINFOCLASS; 83 84 typedef struct _LARGE_UNICODE_STRING 85 { 86 ULONG Length; 87 ULONG MaximumLength:31; 88 ULONG bAnsi:1; 89 PWSTR Buffer; 90 } LARGE_UNICODE_STRING, *PLARGE_UNICODE_STRING; 91 92 typedef struct _LARGE_STRING 93 { 94 ULONG Length; 95 ULONG MaximumLength:31; 96 ULONG bAnsi:1; 97 PVOID Buffer; 98 } LARGE_STRING, *PLARGE_STRING; 99 100 101 /* Based on ANSI_STRING */ 102 typedef struct _LARGE_ANSI_STRING 103 { 104 ULONG Length; 105 ULONG MaximumLength:31; 106 ULONG bAnsi:1; 107 PCHAR Buffer; 108 } LARGE_ANSI_STRING, *PLARGE_ANSI_STRING; 109 110 VOID 111 NTAPI 112 RtlInitLargeAnsiString( 113 IN OUT PLARGE_ANSI_STRING, 114 IN PCSZ, 115 IN INT); 116 117 VOID 118 NTAPI 119 RtlInitLargeUnicodeString( 120 IN OUT PLARGE_UNICODE_STRING, 121 IN PCWSTR, 122 IN INT); 123 124 BOOL 125 NTAPI 126 RtlLargeStringToUnicodeString( 127 PUNICODE_STRING, 128 PLARGE_STRING); 129 130 #define NB_HOOKS (WH_MAXHOOK - WH_MINHOOK + 1) 131 132 typedef struct _DESKTOPINFO 133 { 134 PVOID pvDesktopBase; 135 PVOID pvDesktopLimit; 136 struct _WND *spwnd; 137 DWORD fsHooks; 138 LIST_ENTRY aphkStart[NB_HOOKS]; 139 140 HWND hTaskManWindow; 141 HWND hProgmanWindow; 142 HWND hShellWindow; 143 struct _WND *spwndShell; 144 struct _WND *spwndBkGnd; 145 146 struct _PROCESSINFO *ppiShellProcess; 147 148 union 149 { 150 UINT Dummy; 151 struct 152 { 153 UINT LastInputWasKbd:1; 154 }; 155 }; 156 157 WCHAR szDesktopName[1]; 158 } DESKTOPINFO, *PDESKTOPINFO; 159 160 #define CTI_THREADSYSLOCK 0x0001 161 #define CTI_INSENDMESSAGE 0x0002 162 163 typedef struct _CLIENTTHREADINFO 164 { 165 DWORD CTI_flags; 166 WORD fsChangeBits; 167 WORD fsWakeBits; 168 WORD fsWakeBitsJournal; 169 WORD fsWakeMask; 170 ULONG timeLastRead; // Last time the message queue was read. 171 DWORD dwcPumpHook; 172 } CLIENTTHREADINFO, *PCLIENTTHREADINFO; 173 174 typedef struct _HEAD 175 { 176 HANDLE h; 177 DWORD cLockObj; 178 } HEAD, *PHEAD; 179 180 typedef struct _THROBJHEAD 181 { 182 HEAD; 183 struct _THREADINFO *pti; 184 } THROBJHEAD, *PTHROBJHEAD; 185 186 typedef struct _THRDESKHEAD 187 { 188 THROBJHEAD; 189 struct _DESKTOP *rpdesk; 190 PVOID pSelf; 191 } THRDESKHEAD, *PTHRDESKHEAD; 192 193 typedef struct _PROCDESKHEAD 194 { 195 HEAD; 196 DWORD_PTR hTaskWow; 197 struct _DESKTOP *rpdesk; 198 PVOID pSelf; 199 } PROCDESKHEAD, *PPROCDESKHEAD; 200 201 typedef struct _PROCMARKHEAD 202 { 203 HEAD; 204 ULONG hTaskWow; 205 struct _PROCESSINFO *ppi; 206 } PROCMARKHEAD, *PPROCMARKHEAD; 207 208 #define UserHMGetHandle(obj) ((obj)->head.h) 209 210 /* Window Client Information structure */ 211 struct _ETHREAD; 212 213 #define WEF_SETBYWNDPTI 0x0001 214 215 typedef struct tagHOOK 216 { 217 THRDESKHEAD head; 218 struct tagHOOK *phkNext; /* This is for user space. */ 219 int HookId; /* Hook table index */ 220 ULONG_PTR offPfn; 221 ULONG flags; /* Some internal flags */ 222 INT_PTR ihmod; 223 struct _THREADINFO *ptiHooked; 224 struct _DESKTOP *rpdesk; 225 /* ReactOS */ 226 LIST_ENTRY Chain; /* Hook chain entry */ 227 HOOKPROC Proc; /* Hook function */ 228 BOOLEAN Ansi; /* Is it an Ansi hook? */ 229 UNICODE_STRING ModuleName; /* Module name for global hooks */ 230 } HOOK, *PHOOK; 231 232 typedef struct tagCLIPBOARDDATA 233 { 234 HEAD head; 235 DWORD cbData; 236 BYTE Data[0]; 237 } CLIPBOARDDATA, *PCLIPBOARDDATA; 238 239 /* THREADINFO Flags */ 240 #define TIF_INCLEANUP 0x00000001 241 #define TIF_16BIT 0x00000002 242 #define TIF_SYSTEMTHREAD 0x00000004 243 #define TIF_CSRSSTHREAD 0x00000008 244 #define TIF_TRACKRECTVISIBLE 0x00000010 245 #define TIF_ALLOWFOREGROUNDACTIVATE 0x00000020 246 #define TIF_DONTATTACHQUEUE 0x00000040 247 #define TIF_DONTJOURNALATTACH 0x00000080 248 #define TIF_WOW64 0x00000100 249 #define TIF_INACTIVATEAPPMSG 0x00000200 250 #define TIF_SPINNING 0x00000400 251 #define TIF_PALETTEAWARE 0x00000800 252 #define TIF_SHAREDWOW 0x00001000 253 #define TIF_FIRSTIDLE 0x00002000 254 #define TIF_WAITFORINPUTIDLE 0x00004000 255 #define TIF_MOVESIZETRACKING 0x00008000 256 #define TIF_VDMAPP 0x00010000 257 #define TIF_DOSEMULATOR 0x00020000 258 #define TIF_GLOBALHOOKER 0x00040000 259 #define TIF_DELAYEDEVENT 0x00080000 260 #define TIF_MSGPOSCHANGED 0x00100000 261 #define TIF_SHUTDOWNCOMPLETE 0x00200000 262 #define TIF_IGNOREPLAYBACKDELAY 0x00400000 263 #define TIF_ALLOWOTHERACCOUNTHOOK 0x00800000 264 #define TIF_GUITHREADINITIALIZED 0x02000000 265 #define TIF_DISABLEIME 0x04000000 266 #define TIF_INGETTEXTLENGTH 0x08000000 267 #define TIF_ANSILENGTH 0x10000000 268 #define TIF_DISABLEHOOKS 0x20000000 269 270 typedef struct _CALLBACKWND 271 { 272 HWND hWnd; 273 struct _WND *pWnd; 274 PVOID pActCtx; 275 } CALLBACKWND, *PCALLBACKWND; 276 277 #define CI_TRANSACTION 0x00000001 278 #define CI_QUEUEMSG 0x00000002 279 #define CI_WOW 0x00000004 280 #define CI_INITTHREAD 0x00000008 281 #define CI_CURTHPRHOOK 0x00000010 282 #define CI_CLASSESREGISTERED 0x00000020 283 #define CI_IMMACTIVATE 0x00000040 284 285 typedef struct _CLIENTINFO 286 { 287 ULONG_PTR CI_flags; 288 ULONG_PTR cSpins; 289 DWORD dwExpWinVer; 290 DWORD dwCompatFlags; 291 DWORD dwCompatFlags2; 292 DWORD dwTIFlags; /* ThreadInfo TIF_Xxx flags for User space. */ 293 PDESKTOPINFO pDeskInfo; 294 ULONG_PTR ulClientDelta; 295 PHOOK phkCurrent; 296 ULONG fsHooks; 297 CALLBACKWND CallbackWnd; 298 DWORD dwHookCurrent; 299 INT cInDDEMLCallback; 300 PCLIENTTHREADINFO pClientThreadInfo; 301 ULONG_PTR dwHookData; 302 DWORD dwKeyCache; 303 BYTE afKeyState[8]; 304 DWORD dwAsyncKeyCache; 305 BYTE afAsyncKeyState[8]; 306 BYTE afAsyncKeyStateRecentDow[8]; 307 HKL hKL; 308 USHORT CodePage; 309 UCHAR achDbcsCF[2]; 310 MSG msgDbcsCB; 311 LPDWORD lpdwRegisteredClasses; 312 ULONG Win32ClientInfo3[26]; 313 /* It's just a pointer reference not to be used w the structure in user space. */ 314 struct _PROCESSINFO *ppi; 315 } CLIENTINFO, *PCLIENTINFO; 316 317 /* Make sure it fits into the TEB */ 318 C_ASSERT(sizeof(CLIENTINFO) <= sizeof(((PTEB)0)->Win32ClientInfo)); 319 320 #define GetWin32ClientInfo() ((PCLIENTINFO)(NtCurrentTeb()->Win32ClientInfo)) 321 322 typedef struct tagDDEPACK 323 { 324 UINT_PTR uiLo; 325 UINT_PTR uiHi; 326 } DDEPACK, *PDDEPACK; 327 328 #define HRGN_NULL ((HRGN)0) /* NULL empty region */ 329 #define HRGN_WINDOW ((HRGN)1) /* region from window rcWindow */ 330 #define HRGN_MONITOR ((HRGN)2) /* region from monitor region. */ 331 332 /* Menu Item fType. */ 333 #define MFT_RTOL 0x6000 334 335 /* Menu Item fState. */ 336 #define MFS_HBMMENUBMP 0x20000000 337 338 typedef struct tagITEM 339 { 340 UINT fType; 341 UINT fState; 342 UINT wID; 343 struct tagMENU *spSubMenu; /* Pop-up menu. */ 344 HANDLE hbmpChecked; 345 HANDLE hbmpUnchecked; 346 USHORT *Xlpstr; /* Item text pointer. */ 347 ULONG cch; 348 DWORD_PTR dwItemData; 349 ULONG xItem; /* Item position. left */ 350 ULONG yItem; /* " top */ 351 ULONG cxItem; /* Item Size Width */ 352 ULONG cyItem; /* " Height */ 353 ULONG dxTab; /* X position of text after Tab */ 354 ULONG ulX; /* underline.. start position */ 355 ULONG ulWidth; /* underline.. width */ 356 HBITMAP hbmp; /* bitmap */ 357 INT cxBmp; /* Width Maximum size of the bitmap items in MIIM_BITMAP state */ 358 INT cyBmp; /* Height " */ 359 /* ReactOS */ 360 UNICODE_STRING lpstr; 361 } ITEM, *PITEM; 362 363 typedef struct tagMENULIST 364 { 365 struct tagMENULIST *pNext; 366 struct tagMENU *pMenu; 367 } MENULIST, *PMENULIST; 368 369 /* Menu fFlags, upper byte is MNS_X style flags. */ 370 #define MNF_POPUP 0x0001 371 #define MNF_UNDERLINE 0x0004 372 #define MNF_INACTIVE 0x0010 373 #define MNF_RTOL 0x0020 374 #define MNF_DESKTOPMN 0x0040 375 #define MNF_SYSDESKMN 0x0080 376 #define MNF_SYSSUBMENU 0x0100 377 /* Hack */ 378 #define MNF_SYSMENU 0x0200 379 380 /* (other FocusedItem values give the position of the focused item) */ 381 #define NO_SELECTED_ITEM 0xffff 382 383 typedef struct tagMENU 384 { 385 PROCDESKHEAD head; 386 ULONG fFlags; /* [Style flags | Menu flags] */ 387 INT iItem; /* nPos of selected item, if -1 not selected. AKA focused item */ 388 UINT cAlloced; /* Number of allocated items. Inc's of 8 */ 389 UINT cItems; /* Number of items in the menu */ 390 ULONG cxMenu; /* Width of the whole menu */ 391 ULONG cyMenu; /* Height of the whole menu */ 392 ULONG cxTextAlign; /* Offset of text when items have both bitmaps and text */ 393 struct _WND *spwndNotify; /* window receiving the messages for ownerdraw */ 394 PITEM rgItems; /* Array of menu items */ 395 struct tagMENULIST *pParentMenus; /* If this is SubMenu, list of parents. */ 396 DWORD dwContextHelpId; 397 ULONG cyMax; /* max height of the whole menu, 0 is screen height */ 398 DWORD_PTR dwMenuData; /* application defined value */ 399 HBRUSH hbrBack; /* brush for menu background */ 400 INT iTop; /* Current scroll position Top */ 401 INT iMaxTop; /* Current scroll position Max Top */ 402 DWORD dwArrowsOn:2; /* Arrows: 0 off, 1 on, 2 to the top, 3 to the bottom. */ 403 /* ReactOS */ 404 LIST_ENTRY ListEntry; 405 HWND hWnd; /* Window containing the menu, use POPUPMENU */ 406 BOOL TimeToHide; 407 } MENU, *PMENU; 408 409 typedef struct tagPOPUPMENU 410 { 411 ULONG fIsMenuBar:1; 412 ULONG fHasMenuBar:1; 413 ULONG fIsSysMenu:1; 414 ULONG fIsTrackPopup:1; 415 ULONG fDroppedLeft:1; 416 ULONG fHierarchyDropped:1; 417 ULONG fRightButton:1; 418 ULONG fToggle:1; 419 ULONG fSynchronous:1; 420 ULONG fFirstClick:1; 421 ULONG fDropNextPopup:1; 422 ULONG fNoNotify:1; 423 ULONG fAboutToHide:1; 424 ULONG fShowTimer:1; 425 ULONG fHideTimer:1; 426 ULONG fDestroyed:1; 427 ULONG fDelayedFree:1; 428 ULONG fFlushDelayedFree:1; 429 ULONG fFreed:1; 430 ULONG fInCancel:1; 431 ULONG fTrackMouseEvent:1; 432 ULONG fSendUninit:1; 433 ULONG fRtoL:1; 434 // ULONG fDesktopMenu:1; 435 ULONG iDropDir:5; 436 ULONG fUseMonitorRect:1; 437 struct _WND *spwndNotify; 438 struct _WND *spwndPopupMenu; 439 struct _WND *spwndNextPopup; 440 struct _WND *spwndPrevPopup; 441 PMENU spmenu; 442 PMENU spmenuAlternate; 443 struct _WND *spwndActivePopup; 444 struct tagPOPUPMENU *ppopupmenuRoot; 445 struct tagPOPUPMENU *ppmDelayedFree; 446 UINT posSelectedItem; 447 UINT posDropped; 448 } POPUPMENU, *PPOPUPMENU; 449 450 typedef struct _REGISTER_SYSCLASS 451 { 452 /* This is a reactos specific class used to initialize the 453 system window classes during user32 initialization */ 454 PWSTR ClassName; 455 UINT Style; 456 WNDPROC ProcW; 457 UINT ExtraBytes; 458 HICON hCursor; 459 HBRUSH hBrush; 460 WORD fiId; 461 WORD iCls; 462 } REGISTER_SYSCLASS, *PREGISTER_SYSCLASS; 463 464 typedef struct _CLSMENUNAME 465 { 466 LPSTR pszClientAnsiMenuName; 467 LPWSTR pwszClientUnicodeMenuName; 468 PUNICODE_STRING pusMenuName; 469 } CLSMENUNAME, *PCLSMENUNAME; 470 471 typedef struct tagSBDATA 472 { 473 INT posMin; 474 INT posMax; 475 INT page; 476 INT pos; 477 } SBDATA, *PSBDATA; 478 479 typedef struct tagSBINFO 480 { 481 INT WSBflags; 482 SBDATA Horz; 483 SBDATA Vert; 484 } SBINFO, *PSBINFO; 485 486 typedef struct tagSBCALC 487 { 488 INT posMin; 489 INT posMax; 490 INT page; 491 INT pos; 492 INT pxTop; 493 INT pxBottom; 494 INT pxLeft; 495 INT pxRight; 496 INT cpxThumb; 497 INT pxUpArrow; 498 INT pxDownArrow; 499 INT pxStart; 500 INT pxThumbBottom; 501 INT pxThumbTop; 502 INT cpx; 503 INT pxMin; 504 } SBCALC, *PSBCALC; 505 506 typedef enum _GETCPD 507 { 508 UserGetCPDA2U = 0x01, /* " Unicode " */ 509 UserGetCPDU2A = 0X02, /* " Ansi " */ 510 UserGetCPDClass = 0X10, 511 UserGetCPDWindow = 0X20, 512 UserGetCPDDialog = 0X40, 513 UserGetCPDWndtoCls = 0X80 514 } GETCPD, *PGETCPD; 515 516 typedef struct _CALLPROCDATA 517 { 518 PROCDESKHEAD head; 519 struct _CALLPROCDATA *spcpdNext; 520 WNDPROC pfnClientPrevious; 521 GETCPD wType; 522 } CALLPROCDATA, *PCALLPROCDATA; 523 524 #define CSF_SERVERSIDEPROC 0x0001 525 #define CSF_ANSIPROC 0x0002 526 #define CSF_WOWDEFERDESTROY 0x0004 527 #define CSF_SYSTEMCLASS 0x0008 528 #define CSF_WOWCLASS 0x0010 529 #define CSF_WOWEXTRA 0x0020 530 #define CSF_CACHEDSMICON 0x0040 531 #define CSF_WIN40COMPAT 0x0080 532 533 typedef struct _CLS 534 { 535 struct _CLS *pclsNext; 536 RTL_ATOM atomClassName; 537 ATOM atomNVClassName; 538 DWORD fnid; 539 struct _DESKTOP *rpdeskParent; 540 PVOID pdce; 541 DWORD CSF_flags; 542 PSTR lpszClientAnsiMenuName; /* For client use */ 543 PWSTR lpszClientUnicodeMenuName; /* " " " */ 544 PCALLPROCDATA spcpdFirst; 545 struct _CLS *pclsBase; 546 struct _CLS *pclsClone; 547 ULONG cWndReferenceCount; 548 UINT style; 549 WNDPROC lpfnWndProc; 550 INT cbclsExtra; 551 INT cbwndExtra; 552 HINSTANCE hModule; 553 struct _CURICON_OBJECT *spicn; 554 struct _CURICON_OBJECT *spcur; 555 HBRUSH hbrBackground; 556 PWSTR lpszMenuName; /* kernel use */ 557 PSTR lpszAnsiClassName; /* " */ 558 struct _CURICON_OBJECT *spicnSm; 559 //// 560 UINT Unicode:1; // !CSF_ANSIPROC 561 UINT Global:1; // CS_GLOBALCLASS or CSF_SERVERSIDEPROC 562 UINT MenuNameIsString:1; 563 UINT NotUsed:29; 564 } CLS, *PCLS; 565 566 typedef struct _SBINFOEX 567 { 568 SCROLLBARINFO ScrollBarInfo; 569 SCROLLINFO ScrollInfo; 570 } SBINFOEX, *PSBINFOEX; 571 572 /* State Flags !Not Implemented! */ 573 #define WNDS_HASMENU 0X00000001 574 #define WNDS_HASVERTICALSCROOLLBAR 0X00000002 575 #define WNDS_HASHORIZONTALSCROLLBAR 0X00000004 576 #define WNDS_HASCAPTION 0X00000008 577 #define WNDS_SENDSIZEMOVEMSGS 0X00000010 578 #define WNDS_MSGBOX 0X00000020 579 #define WNDS_ACTIVEFRAME 0X00000040 580 #define WNDS_HASSPB 0X00000080 581 #define WNDS_NONCPAINT 0X00000100 582 #define WNDS_SENDERASEBACKGROUND 0X00000200 583 #define WNDS_ERASEBACKGROUND 0X00000400 584 #define WNDS_SENDNCPAINT 0X00000800 585 #define WNDS_INTERNALPAINT 0X00001000 586 #define WNDS_UPDATEDIRTY 0X00002000 587 #define WNDS_HIDDENPOPUP 0X00004000 588 #define WNDS_FORCEMENUDRAW 0X00008000 589 #define WNDS_DIALOGWINDOW 0X00010000 590 #define WNDS_HASCREATESTRUCTNAME 0X00020000 591 #define WNDS_SERVERSIDEWINDOWPROC 0x00040000 /* Call proc inside win32k. */ 592 #define WNDS_ANSIWINDOWPROC 0x00080000 593 #define WNDS_BEINGACTIVATED 0x00100000 594 #define WNDS_HASPALETTE 0x00200000 595 #define WNDS_PAINTNOTPROCESSED 0x00400000 596 #define WNDS_SYNCPAINTPENDING 0x00800000 597 #define WNDS_RECEIVEDQUERYSUSPENDMSG 0x01000000 598 #define WNDS_RECEIVEDSUSPENDMSG 0x02000000 599 #define WNDS_TOGGLETOPMOST 0x04000000 600 #define WNDS_REDRAWIFHUNG 0x08000000 601 #define WNDS_REDRAWFRAMEIFHUNG 0x10000000 602 #define WNDS_ANSICREATOR 0x20000000 603 #define WNDS_MAXIMIZESTOMONITOR 0x40000000 604 #define WNDS_DESTROYED 0x80000000 605 606 #define WNDSACTIVEFRAME 0x00000006 607 608 /* State2 Flags !Not Implemented! */ 609 #define WNDS2_WMPAINTSENT 0X00000001 610 #define WNDS2_ENDPAINTINVALIDATE 0X00000002 611 #define WNDS2_STARTPAINT 0X00000004 612 #define WNDS2_OLDUI 0X00000008 613 #define WNDS2_HASCLIENTEDGE 0X00000010 614 #define WNDS2_BOTTOMMOST 0X00000020 615 #define WNDS2_FULLSCREEN 0X00000040 616 #define WNDS2_INDESTROY 0X00000080 617 #define WNDS2_WIN31COMPAT 0X00000100 618 #define WNDS2_WIN40COMPAT 0X00000200 619 #define WNDS2_WIN50COMPAT 0X00000400 620 #define WNDS2_MAXIMIZEDMONITORREGION 0X00000800 621 #define WNDS2_CLOSEBUTTONDOWN 0X00001000 622 #define WNDS2_MAXIMIZEBUTTONDOWN 0X00002000 623 #define WNDS2_MINIMIZEBUTTONDOWN 0X00004000 624 #define WNDS2_HELPBUTTONDOWN 0X00008000 625 #define WNDS2_SCROLLBARLINEUPBTNDOWN 0X00010000 626 #define WNDS2_SCROLLBARPAGEUPBTNDOWN 0X00020000 627 #define WNDS2_SCROLLBARPAGEDOWNBTNDOWN 0X00040000 628 #define WNDS2_SCROLLBARLINEDOWNBTNDOWN 0X00080000 629 #define WNDS2_ANYSCROLLBUTTONDOWN 0X00100000 630 #define WNDS2_SCROLLBARVERTICALTRACKING 0X00200000 631 #define WNDS2_FORCENCPAINT 0X00400000 632 #define WNDS2_FORCEFULLNCPAINTCLIPRGN 0X00800000 633 #define WNDS2_FULLSCREENMODE 0X01000000 634 #define WNDS2_CAPTIONTEXTTRUNCATED 0X08000000 635 #define WNDS2_NOMINMAXANIMATERECTS 0X10000000 636 #define WNDS2_SMALLICONFROMWMQUERYDRAG 0X20000000 637 #define WNDS2_SHELLHOOKREGISTERED 0X40000000 638 #define WNDS2_WMCREATEMSGPROCESSED 0X80000000 639 640 /* ExStyles2 */ 641 #define WS_EX2_CLIPBOARDLISTENER 0X00000001 642 #define WS_EX2_LAYEREDINVALIDATE 0X00000002 643 #define WS_EX2_REDIRECTEDFORPRINT 0X00000004 644 #define WS_EX2_LINKED 0X00000008 645 #define WS_EX2_LAYEREDFORDWM 0X00000010 646 #define WS_EX2_LAYEREDLIMBO 0X00000020 647 #define WS_EX2_HIGHTDPI_UNAWAR 0X00000040 648 #define WS_EX2_VERTICALLYMAXIMIZEDLEFT 0X00000080 649 #define WS_EX2_VERTICALLYMAXIMIZEDRIGHT 0X00000100 650 #define WS_EX2_HASOVERLAY 0X00000200 651 #define WS_EX2_CONSOLEWINDOW 0X00000400 652 #define WS_EX2_CHILDNOACTIVATE 0X00000800 653 654 #define WPF_MININIT 0x0008 655 #define WPF_MAXINIT 0x0010 656 657 typedef struct _WND 658 { 659 THRDESKHEAD head; 660 #if 0 661 WW ww; 662 #else 663 /* These fields should be moved in the WW at some point. */ 664 /* Plese do not change them to keep the same layout with WW. */ 665 DWORD state; 666 DWORD state2; 667 /* Extended style. */ 668 DWORD ExStyle; 669 /* Style. */ 670 DWORD style; 671 /* Handle of the module that created the window. */ 672 HINSTANCE hModule; 673 DWORD fnid; 674 #endif 675 struct _WND *spwndNext; 676 struct _WND *spwndPrev; 677 struct _WND *spwndParent; 678 struct _WND *spwndChild; 679 struct _WND *spwndOwner; 680 RECT rcWindow; 681 RECT rcClient; 682 WNDPROC lpfnWndProc; 683 /* Pointer to the window class. */ 684 PCLS pcls; 685 HRGN hrgnUpdate; 686 /* Property list head.*/ 687 LIST_ENTRY PropListHead; 688 ULONG PropListItems; 689 /* Scrollbar info */ 690 PSBINFO pSBInfo; 691 /* system menu handle. */ 692 HMENU SystemMenu; 693 //PMENU spmenuSys; 694 /* Window menu handle or window id */ 695 UINT_PTR IDMenu; // Use spmenu 696 //PMENU spmenu; 697 HRGN hrgnClip; 698 HRGN hrgnNewFrame; 699 /* Window name. */ 700 LARGE_UNICODE_STRING strName; 701 /* Size of the extra data associated with the window. */ 702 ULONG cbwndExtra; 703 struct _WND *spwndLastActive; 704 HIMC hImc; // Input context associated with this window. 705 LONG_PTR dwUserData; 706 PVOID pActCtx; 707 //PD3DMATRIX pTransForm; 708 struct _WND *spwndClipboardListener; 709 DWORD ExStyle2; 710 711 /* ReactOS */ 712 struct 713 { 714 RECT NormalRect; 715 POINT IconPos; 716 POINT MaxPos; 717 UINT flags; /* WPF_ flags. */ 718 } InternalPos; 719 720 UINT Unicode:1; /* !(WNDS_ANSICREATOR|WNDS_ANSIWINDOWPROC) ? */ 721 UINT InternalPosInitialized:1; 722 UINT HideFocus:1; /* WS_EX_UISTATEFOCUSRECTHIDDEN ? */ 723 UINT HideAccel:1; /* WS_EX_UISTATEKBACCELHIDDEN ? */ 724 725 /* Scrollbar info */ 726 PSBINFOEX pSBInfoex; // convert to PSBINFO 727 /* Entry in the list of thread windows. */ 728 LIST_ENTRY ThreadListEntry; 729 } WND, *PWND; 730 731 #define PWND_BOTTOM ((PWND)1) 732 733 typedef struct _SBWND 734 { 735 WND wnd; 736 BOOL fVert; 737 UINT wDisableFlags; 738 SBCALC SBCalc; 739 } SBWND, *PSBWND; 740 741 typedef struct _MDIWND 742 { 743 WND wnd; 744 DWORD dwReserved; 745 PVOID pmdi; 746 } MDIWND, *PMDIWND; 747 748 #define GWLP_MDIWND 4 749 750 typedef struct _MENUWND 751 { 752 WND wnd; 753 PPOPUPMENU ppopupmenu; 754 } MENUWND, *PMENUWND; 755 756 typedef struct _PFNCLIENT 757 { 758 WNDPROC pfnScrollBarWndProc; 759 WNDPROC pfnTitleWndProc; 760 WNDPROC pfnMenuWndProc; 761 WNDPROC pfnDesktopWndProc; 762 WNDPROC pfnDefWindowProc; 763 WNDPROC pfnMessageWindowProc; 764 WNDPROC pfnSwitchWindowProc; 765 WNDPROC pfnButtonWndProc; 766 WNDPROC pfnComboBoxWndProc; 767 WNDPROC pfnComboListBoxProc; 768 WNDPROC pfnDialogWndProc; 769 WNDPROC pfnEditWndProc; 770 WNDPROC pfnListBoxWndProc; 771 WNDPROC pfnMDIClientWndProc; 772 WNDPROC pfnStaticWndProc; 773 WNDPROC pfnImeWndProc; 774 WNDPROC pfnGhostWndProc; 775 WNDPROC pfnHkINLPCWPSTRUCT; 776 WNDPROC pfnHkINLPCWPRETSTRUCT; 777 WNDPROC pfnDispatchHook; 778 WNDPROC pfnDispatchDefWindowProc; 779 WNDPROC pfnDispatchMessage; 780 WNDPROC pfnMDIActivateDlgProc; 781 } PFNCLIENT, *PPFNCLIENT; 782 783 /* 784 Wine Common proc ( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam, BOOL Unicode ); 785 Windows uses Ansi == TRUE, Wine uses Unicode == TRUE. 786 */ 787 788 typedef LRESULT 789 (CALLBACK *WNDPROC_EX)( 790 HWND, 791 UINT, 792 WPARAM, 793 LPARAM, 794 BOOL); 795 796 typedef struct _PFNCLIENTWORKER 797 { 798 WNDPROC_EX pfnButtonWndProc; 799 WNDPROC_EX pfnComboBoxWndProc; 800 WNDPROC_EX pfnComboListBoxProc; 801 WNDPROC_EX pfnDialogWndProc; 802 WNDPROC_EX pfnEditWndProc; 803 WNDPROC_EX pfnListBoxWndProc; 804 WNDPROC_EX pfnMDIClientWndProc; 805 WNDPROC_EX pfnStaticWndProc; 806 WNDPROC_EX pfnImeWndProc; 807 WNDPROC_EX pfnGhostWndProc; 808 WNDPROC_EX pfnCtfHookProc; 809 } PFNCLIENTWORKER, *PPFNCLIENTWORKER; 810 811 typedef LONG_PTR 812 (NTAPI *PFN_FNID)( 813 PWND, 814 UINT, 815 WPARAM, 816 LPARAM, 817 ULONG_PTR); 818 819 /* FNID's for NtUserSetWindowFNID, NtUserMessageCall */ 820 #define FNID_FIRST 0x029A 821 #define FNID_SCROLLBAR 0x029A 822 #define FNID_ICONTITLE 0x029B 823 #define FNID_MENU 0x029C 824 #define FNID_DESKTOP 0x029D 825 #define FNID_DEFWINDOWPROC 0x029E 826 #define FNID_MESSAGEWND 0x029F 827 #define FNID_SWITCH 0x02A0 828 #define FNID_BUTTON 0x02A1 829 #define FNID_COMBOBOX 0x02A2 830 #define FNID_COMBOLBOX 0x02A3 831 #define FNID_DIALOG 0x02A4 832 #define FNID_EDIT 0x02A5 833 #define FNID_LISTBOX 0x02A6 834 #define FNID_MDICLIENT 0x02A7 835 #define FNID_STATIC 0x02A8 836 #define FNID_IME 0x02A9 837 #define FNID_GHOST 0x02AA 838 #define FNID_CALLWNDPROC 0x02AB 839 #define FNID_CALLWNDPROCRET 0x02AC 840 #define FNID_HKINLPCWPEXSTRUCT 0x02AD 841 #define FNID_HKINLPCWPRETEXSTRUCT 0x02AE 842 #define FNID_MB_DLGPROC 0x02AF 843 #define FNID_MDIACTIVATEDLGPROC 0x02B0 844 #define FNID_SENDMESSAGE 0x02B1 845 #define FNID_SENDMESSAGEFF 0x02B2 846 /* Kernel has option to use TimeOut or normal msg send, based on type of msg. */ 847 #define FNID_SENDMESSAGEWTOOPTION 0x02B3 848 #define FNID_SENDMESSAGECALLPROC 0x02B4 849 #define FNID_BROADCASTSYSTEMMESSAGE 0x02B5 850 #define FNID_TOOLTIPS 0x02B6 851 #define FNID_SENDNOTIFYMESSAGE 0x02B7 852 #define FNID_SENDMESSAGECALLBACK 0x02B8 853 #define FNID_LAST 0x02B9 854 855 #define FNID_NUM FNID_LAST - FNID_FIRST + 1 856 #define FNID_NUMSERVERPROC FNID_SWITCH - FNID_FIRST + 1 857 858 #define FNID_DDEML 0x2000 /* Registers DDEML */ 859 #define FNID_DESTROY 0x4000 /* This is sent when WM_NCDESTROY or in the support routine. */ 860 /* Seen during WM_CREATE on error exit too. */ 861 #define FNID_FREED 0x8000 /* Window being Freed... */ 862 863 #define ICLASS_TO_MASK(iCls) (1 << ((iCls))) 864 865 #define GETPFNCLIENTA(fnid) \ 866 (WNDPROC)(*(((ULONG_PTR *)&gpsi->apfnClientA) + (fnid - FNID_FIRST))) 867 #define GETPFNCLIENTW(fnid) \ 868 (WNDPROC)(*(((ULONG_PTR *)&gpsi->apfnClientW) + (fnid - FNID_FIRST))) 869 870 #define GETPFNSERVER(fnid) gpsi->aStoCidPfn[fnid - FNID_FIRST] 871 872 /* ICLS's for NtUserGetClassName FNID to ICLS, NtUserInitializeClientPfnArrays */ 873 #define ICLS_BUTTON 0 874 #define ICLS_EDIT 1 875 #define ICLS_STATIC 2 876 #define ICLS_LISTBOX 3 877 #define ICLS_SCROLLBAR 4 878 #define ICLS_COMBOBOX 5 879 #define ICLS_MDICLIENT 6 880 #define ICLS_COMBOLBOX 7 881 #define ICLS_DDEMLEVENT 8 882 #define ICLS_DDEMLMOTHER 9 883 #define ICLS_DDEML16BIT 10 884 #define ICLS_DDEMLCLIENTA 11 885 #define ICLS_DDEMLCLIENTW 12 886 #define ICLS_DDEMLSERVERA 13 887 #define ICLS_DDEMLSERVERW 14 888 #define ICLS_IME 15 889 #define ICLS_GHOST 16 890 #define ICLS_DESKTOP 17 891 #define ICLS_DIALOG 18 892 #define ICLS_MENU 19 893 #define ICLS_SWITCH 20 894 #define ICLS_ICONTITLE 21 895 #define ICLS_TOOLTIPS 22 896 #if (_WIN32_WINNT <= 0x0501) 897 #define ICLS_UNKNOWN 22 898 #define ICLS_NOTUSED 23 899 #else 900 #define ICLS_SYSSHADOW 23 901 #define ICLS_HWNDMESSAGE 24 902 #define ICLS_NOTUSED 25 903 #endif 904 #define ICLS_END 31 905 906 #define COLOR_LAST COLOR_MENUBAR 907 #define MAX_MB_STRINGS 11 908 909 #define SRVINFO_DBCSENABLED 0x0002 910 #define SRVINFO_IMM32 0x0004 911 #define SRVINFO_APIHOOK 0x0010 912 #define SRVINFO_METRICS 0x0020 913 #define SRVINFO_KBDPREF 0x0080 914 915 #define NUM_SYSCOLORS 31 916 917 typedef struct tagOEMBITMAPINFO 918 { 919 INT x; 920 INT y; 921 INT cx; 922 INT cy; 923 } OEMBITMAPINFO, *POEMBITMAPINFO; 924 925 typedef enum _OBI_TYPES 926 { 927 OBI_CLOSE = 0, 928 OBI_UPARROW = 46, 929 OBI_UPARROWI = 49, 930 OBI_DNARROW = 50, 931 OBI_DNARROWI = 53, 932 OBI_MNARROW = 62, 933 OBI_CTYPES = 93 934 } OBI_TYPES; 935 936 typedef struct tagMBSTRING 937 { 938 WCHAR szName[16]; 939 UINT uID; 940 UINT uStr; 941 } MBSTRING, *PMBSTRING; 942 943 typedef struct tagDPISERVERINFO 944 { 945 INT gclBorder; /* 000 */ 946 HFONT hCaptionFont; /* 004 */ 947 HFONT hMsgFont; /* 008 */ 948 INT cxMsgFontChar; /* 00C */ 949 INT cyMsgFontChar; /* 010 */ 950 UINT wMaxBtnSize; /* 014 */ 951 } DPISERVERINFO, *PDPISERVERINFO; 952 953 /* PUSIFlags: */ 954 #define PUSIF_PALETTEDISPLAY 0x01 955 #define PUSIF_SNAPTO 0x02 956 #define PUSIF_COMBOBOXANIMATION 0x04 957 #define PUSIF_LISTBOXSMOOTHSCROLLING 0x08 958 #define PUSIF_KEYBOARDCUES 0x20 959 960 typedef struct _PERUSERSERVERINFO 961 { 962 INT aiSysMet[SM_CMETRICS]; 963 ULONG argbSystemUnmatched[NUM_SYSCOLORS]; 964 COLORREF argbSystem[NUM_SYSCOLORS]; 965 HBRUSH ahbrSystem[NUM_SYSCOLORS]; 966 HBRUSH hbrGray; 967 POINT ptCursor; 968 POINT ptCursorReal; 969 DWORD dwLastRITEventTickCount; 970 INT nEvents; 971 UINT dtScroll; 972 UINT dtLBSearch; 973 UINT dtCaretBlink; 974 UINT ucWheelScrollLines; 975 UINT ucWheelScrollChars; 976 INT wMaxLeftOverlapChars; 977 INT wMaxRightOverlapChars; 978 INT cxSysFontChar; 979 INT cySysFontChar; 980 TEXTMETRICW tmSysFont; 981 DPISERVERINFO dpiSystem; 982 HICON hIconSmWindows; 983 HICON hIconWindows; 984 DWORD dwKeyCache; 985 DWORD dwAsyncKeyCache; 986 ULONG cCaptures; 987 OEMBITMAPINFO oembmi[OBI_CTYPES]; 988 RECT rcScreenReal; 989 USHORT BitCount; 990 USHORT dmLogPixels; 991 BYTE Planes; 992 BYTE BitsPixel; 993 ULONG PUSIFlags; 994 UINT uCaretWidth; 995 USHORT UILangID; 996 DWORD dwLastSystemRITEventTickCountUpdate; 997 ULONG adwDBGTAGFlags[35]; 998 DWORD dwTagCount; 999 DWORD dwRIPFlags; 1000 } PERUSERSERVERINFO, *PPERUSERSERVERINFO; 1001 1002 typedef struct tagSERVERINFO 1003 { 1004 DWORD dwSRVIFlags; 1005 ULONG_PTR cHandleEntries; 1006 PFN_FNID mpFnidPfn[FNID_NUM]; 1007 WNDPROC aStoCidPfn[FNID_NUMSERVERPROC]; 1008 USHORT mpFnid_serverCBWndProc[FNID_NUM]; 1009 PFNCLIENT apfnClientA; 1010 PFNCLIENT apfnClientW; 1011 PFNCLIENTWORKER apfnClientWorker; 1012 ULONG cbHandleTable; 1013 ATOM atomSysClass[ICLS_NOTUSED+1]; 1014 DWORD dwDefaultHeapBase; 1015 DWORD dwDefaultHeapSize; 1016 UINT uiShellMsg; 1017 MBSTRING MBStrings[MAX_MB_STRINGS]; 1018 ATOM atomIconSmProp; 1019 ATOM atomIconProp; 1020 ATOM atomContextHelpIdProp; 1021 ATOM atomFrostedWindowProp; 1022 CHAR acOemToAnsi[256]; 1023 CHAR acAnsiToOem[256]; 1024 DWORD dwInstalledEventHooks; 1025 PERUSERSERVERINFO; 1026 } SERVERINFO, *PSERVERINFO; 1027 1028 #ifdef _M_IX86 1029 C_ASSERT(sizeof(SERVERINFO) <= PAGE_SIZE); 1030 #endif 1031 1032 1033 /* Server event activity bits. */ 1034 #define SRV_EVENT_MENU 0x0001 1035 #define SRV_EVENT_END_APPLICATION 0x0002 1036 #define SRV_EVENT_RUNNING 0x0004 1037 #define SRV_EVENT_NAMECHANGE 0x0008 1038 #define SRV_EVENT_VALUECHANGE 0x0010 1039 #define SRV_EVENT_STATECHANGE 0x0020 1040 #define SRV_EVENT_LOCATIONCHANGE 0x0040 1041 #define SRV_EVENT_CREATE 0x8000 1042 1043 typedef struct _PROPLISTITEM 1044 { 1045 ATOM Atom; 1046 HANDLE Data; 1047 } PROPLISTITEM, *PPROPLISTITEM; 1048 1049 #define PROPERTY_FLAG_SYSTEM 1 1050 1051 typedef struct _PROPERTY 1052 { 1053 LIST_ENTRY PropListEntry; 1054 HANDLE Data; 1055 ATOM Atom; 1056 WORD fs; 1057 } PROPERTY, *PPROPERTY; 1058 1059 typedef struct _BROADCASTPARM 1060 { 1061 DWORD flags; 1062 DWORD recipients; 1063 HDESK hDesk; 1064 HWND hWnd; 1065 LUID luid; 1066 } BROADCASTPARM, *PBROADCASTPARM; 1067 1068 struct _THREADINFO *GetW32ThreadInfo(VOID); 1069 struct _PROCESSINFO *GetW32ProcessInfo(VOID); 1070 1071 typedef struct _WNDMSG 1072 { 1073 DWORD maxMsgs; 1074 PINT abMsgs; 1075 } WNDMSG, *PWNDMSG; 1076 1077 typedef struct _SHAREDINFO 1078 { 1079 PSERVERINFO psi; /* global Server Info */ 1080 PVOID aheList; /* Handle Entry List */ 1081 PVOID pDispInfo; /* global PDISPLAYINFO pointer */ 1082 ULONG_PTR ulSharedDelta; /* Heap delta */ 1083 WNDMSG awmControl[FNID_LAST - FNID_FIRST]; 1084 WNDMSG DefWindowMsgs; 1085 WNDMSG DefWindowSpecMsgs; 1086 } SHAREDINFO, *PSHAREDINFO; 1087 1088 /* See also the USERSRV_API_CONNECTINFO #define in include/reactos/subsys/win/winmsg.h */ 1089 typedef struct _USERCONNECT 1090 { 1091 ULONG ulVersion; 1092 ULONG ulCurrentVersion; 1093 DWORD dwDispatchCount; 1094 SHAREDINFO siClient; 1095 } USERCONNECT, *PUSERCONNECT; 1096 1097 /* WinNT 5.0 compatible user32 / win32k */ 1098 #define USER_VERSION MAKELONG(0x0000, 0x0005) 1099 1100 #if defined(_M_IX86) 1101 C_ASSERT(sizeof(USERCONNECT) == 0x124); 1102 #endif 1103 1104 typedef struct tagGETCLIPBDATA 1105 { 1106 UINT uFmtRet; 1107 BOOL fGlobalHandle; 1108 union 1109 { 1110 HANDLE hLocale; 1111 HANDLE hPalette; 1112 }; 1113 } GETCLIPBDATA, *PGETCLIPBDATA; 1114 1115 typedef struct tagSETCLIPBDATA 1116 { 1117 BOOL fGlobalHandle; 1118 BOOL fIncSerialNumber; 1119 } SETCLIPBDATA, *PSETCLIPBDATA; 1120 1121 /* Used with NtUserSetCursorIconData, last parameter. */ 1122 typedef struct tagCURSORDATA 1123 { 1124 LPWSTR lpName; 1125 LPWSTR lpModName; 1126 USHORT rt; 1127 USHORT dummy; 1128 ULONG CURSORF_flags; 1129 SHORT xHotspot; 1130 SHORT yHotspot; 1131 HBITMAP hbmMask; 1132 HBITMAP hbmColor; 1133 HBITMAP hbmAlpha; 1134 RECT rcBounds; 1135 HBITMAP hbmUserAlpha; /* Could be in W7U, not in W2k */ 1136 ULONG bpp; 1137 ULONG cx; 1138 ULONG cy; 1139 UINT cpcur; 1140 UINT cicur; 1141 struct tagCURSORDATA *aspcur; 1142 DWORD *aicur; 1143 INT *ajifRate; 1144 UINT iicur; 1145 } CURSORDATA, *PCURSORDATA; /* !dso CURSORDATA */ 1146 1147 /* CURSORF_flags: */ 1148 #define CURSORF_FROMRESOURCE 0x0001 1149 #define CURSORF_GLOBAL 0x0002 1150 #define CURSORF_LRSHARED 0x0004 1151 #define CURSORF_ACON 0x0008 1152 #define CURSORF_WOWCLEANUP 0x0010 1153 #define CURSORF_ACONFRAME 0x0040 1154 #define CURSORF_SECRET 0x0080 1155 #define CURSORF_LINKED 0x0100 1156 #define CURSORF_CURRENT 0x0200 1157 1158 typedef struct tagIMEINFOEX 1159 { 1160 HKL hkl; 1161 IMEINFO ImeInfo; 1162 WCHAR wszUIClass[16]; 1163 ULONG fdwInitConvMode; 1164 INT fInitOpen; 1165 INT fLoadFlag; 1166 DWORD dwProdVersion; 1167 DWORD dwImeWinVersion; 1168 WCHAR wszImeDescription[50]; 1169 WCHAR wszImeFile[80]; 1170 struct 1171 { 1172 INT fSysWow64Only:1; 1173 INT fCUASLayer:1; 1174 }; 1175 } IMEINFOEX, *PIMEINFOEX; 1176 1177 typedef enum IMEINFOEXCLASS 1178 { 1179 ImeInfoExKeyboardLayout, 1180 ImeInfoExImeFileName 1181 } IMEINFOEXCLASS; 1182 1183 #define IS_IME_HKL(hkl) ((((ULONG_PTR)(hkl)) & 0xF0000000) == 0xE0000000) 1184 1185 typedef struct tagIMEUI 1186 { 1187 PWND spwnd; 1188 HIMC hIMC; 1189 HWND hwndIMC; 1190 HKL hKL; 1191 HWND hwndUI; 1192 INT nCntInIMEProc; 1193 struct { 1194 UINT fShowStatus:1; 1195 UINT fActivate:1; 1196 UINT fDestroy:1; 1197 UINT fDefault:1; 1198 UINT fChildThreadDef:1; 1199 UINT fCtrlShowStatus:1; 1200 UINT fFreeActiveEvent:1; 1201 }; 1202 } IMEUI, *PIMEUI; 1203 1204 /* Window Extra data container. */ 1205 typedef struct _IMEWND 1206 { 1207 WND; 1208 PIMEUI pimeui; 1209 } IMEWND, *PIMEWND; 1210 1211 DWORD 1212 NTAPI 1213 NtUserAssociateInputContext( 1214 DWORD dwUnknown1, 1215 DWORD dwUnknown2, 1216 DWORD dwUnknown3); 1217 1218 DWORD 1219 NTAPI 1220 NtUserBuildHimcList( 1221 DWORD dwUnknown1, 1222 DWORD dwUnknown2, 1223 DWORD dwUnknown3, 1224 DWORD dwUnknown4); 1225 1226 DWORD 1227 NTAPI 1228 NtUserCalcMenuBar( 1229 HWND hwnd, 1230 DWORD x, 1231 DWORD width, 1232 DWORD y, 1233 LPRECT prc); 1234 1235 DWORD 1236 NTAPI 1237 NtUserCheckMenuItem( 1238 HMENU hmenu, 1239 UINT uIDCheckItem, 1240 UINT uCheck); 1241 1242 DWORD 1243 NTAPI 1244 NtUserCtxDisplayIOCtl( 1245 DWORD dwUnknown1, 1246 DWORD dwUnknown2, 1247 DWORD dwUnknown3); 1248 1249 DWORD 1250 APIENTRY 1251 NtUserDbgWin32HeapFail( 1252 DWORD Unknown0, 1253 DWORD Unknown1); 1254 1255 DWORD 1256 APIENTRY 1257 NtUserDbgWin32HeapStat( 1258 DWORD Unknown0, 1259 DWORD Unknown1); 1260 1261 BOOL 1262 NTAPI 1263 NtUserDeleteMenu( 1264 HMENU hMenu, 1265 UINT uPosition, 1266 UINT uFlags); 1267 1268 BOOL 1269 NTAPI 1270 NtUserDestroyMenu( 1271 HMENU hMenu); 1272 1273 DWORD 1274 NTAPI 1275 NtUserDrawMenuBarTemp( 1276 HWND hWnd, 1277 HDC hDC, 1278 PRECT hRect, 1279 HMENU hMenu, 1280 HFONT hFont); 1281 1282 UINT 1283 NTAPI 1284 NtUserEnableMenuItem( 1285 HMENU hMenu, 1286 UINT uIDEnableItem, 1287 UINT uEnable); 1288 1289 BOOL 1290 NTAPI 1291 NtUserEndMenu(VOID); 1292 1293 BOOL 1294 NTAPI 1295 NtUserGetMenuBarInfo( 1296 HWND hwnd, 1297 LONG idObject, 1298 LONG idItem, 1299 PMENUBARINFO pmbi); 1300 1301 UINT 1302 NTAPI 1303 NtUserGetMenuIndex( 1304 HMENU hMenu, 1305 HMENU hSubMenu); 1306 1307 BOOL 1308 NTAPI 1309 NtUserGetMenuItemRect( 1310 HWND hWnd, 1311 HMENU hMenu, 1312 UINT uItem, 1313 LPRECT lprcItem); 1314 1315 HMENU 1316 NTAPI 1317 NtUserGetSystemMenu( 1318 HWND hWnd, 1319 BOOL bRevert); 1320 1321 BOOL 1322 NTAPI 1323 NtUserHiliteMenuItem( 1324 HWND hWnd, 1325 HMENU hMenu, 1326 UINT uItemHilite, 1327 UINT uHilite); 1328 1329 int 1330 NTAPI 1331 NtUserMenuItemFromPoint( 1332 HWND hWnd, 1333 HMENU hMenu, 1334 DWORD X, 1335 DWORD Y); 1336 1337 BOOL 1338 NTAPI 1339 NtUserRemoveMenu( 1340 HMENU hMenu, 1341 UINT uPosition, 1342 UINT uFlags); 1343 1344 BOOL 1345 NTAPI 1346 NtUserSetMenu( 1347 HWND hWnd, 1348 HMENU hMenu, 1349 BOOL bRepaint); 1350 1351 BOOL 1352 NTAPI 1353 NtUserSetMenuContextHelpId( 1354 HMENU hmenu, 1355 DWORD dwContextHelpId); 1356 1357 BOOL 1358 NTAPI 1359 NtUserSetMenuDefaultItem( 1360 HMENU hMenu, 1361 UINT uItem, 1362 UINT fByPos); 1363 1364 BOOL 1365 NTAPI 1366 NtUserSetMenuFlagRtoL( 1367 HMENU hMenu); 1368 1369 BOOL 1370 NTAPI 1371 NtUserSetSystemMenu( 1372 HWND hWnd, 1373 HMENU hMenu); 1374 1375 BOOL 1376 NTAPI 1377 NtUserThunkedMenuInfo( 1378 HMENU hMenu, 1379 LPCMENUINFO lpcmi); 1380 1381 BOOL 1382 NTAPI 1383 NtUserThunkedMenuItemInfo( 1384 HMENU hMenu, 1385 UINT uItem, 1386 BOOL fByPosition, 1387 BOOL bInsert, 1388 LPMENUITEMINFOW lpmii, 1389 PUNICODE_STRING lpszCaption); 1390 1391 BOOL 1392 NTAPI 1393 NtUserTrackPopupMenuEx( 1394 HMENU hmenu, 1395 UINT fuFlags, 1396 int x, 1397 int y, 1398 HWND hwnd, 1399 LPTPMPARAMS lptpm); 1400 1401 HKL 1402 NTAPI 1403 NtUserActivateKeyboardLayout( 1404 HKL hKl, 1405 ULONG Flags); 1406 1407 DWORD 1408 NTAPI 1409 NtUserAlterWindowStyle( 1410 HWND hWnd, 1411 DWORD Index, 1412 LONG NewValue); 1413 1414 BOOL 1415 NTAPI 1416 NtUserAttachThreadInput( 1417 IN DWORD idAttach, 1418 IN DWORD idAttachTo, 1419 IN BOOL fAttach); 1420 1421 HDC NTAPI 1422 NtUserBeginPaint( 1423 HWND hWnd, 1424 PAINTSTRUCT *lPs); 1425 1426 BOOL 1427 NTAPI 1428 NtUserBitBltSysBmp( 1429 HDC hdc, 1430 INT nXDest, 1431 INT nYDest, 1432 INT nWidth, 1433 INT nHeight, 1434 INT nXSrc, 1435 INT nYSrc, 1436 DWORD dwRop); 1437 1438 BOOL 1439 NTAPI 1440 NtUserBlockInput( 1441 BOOL BlockIt); 1442 1443 NTSTATUS 1444 NTAPI 1445 NtUserBuildHwndList( 1446 HDESK hDesktop, 1447 HWND hwndParent, 1448 BOOLEAN bChildren, 1449 ULONG dwThreadId, 1450 ULONG lParam, 1451 HWND *pWnd, 1452 ULONG *pBufSize); 1453 1454 NTSTATUS 1455 NTAPI 1456 NtUserBuildNameList( 1457 HWINSTA hWinSta, 1458 ULONG dwSize, 1459 PVOID lpBuffer, 1460 PULONG pRequiredSize); 1461 1462 NTSTATUS 1463 NTAPI 1464 NtUserBuildPropList( 1465 HWND hWnd, 1466 LPVOID Buffer, 1467 DWORD BufferSize, 1468 DWORD *Count); 1469 1470 /* apfnSimpleCall indices from Windows XP SP 2 */ 1471 /* TODO: Check for differences in Windows 2000, 2003 and 2008 */ 1472 #define WIN32K_VERSION NTDDI_WINXPSP2 /* FIXME: this should go somewhere else */ 1473 1474 enum SimpleCallRoutines 1475 { 1476 NOPARAM_ROUTINE_CREATEMENU, 1477 NOPARAM_ROUTINE_CREATEMENUPOPUP, 1478 #if (WIN32K_VERSION >= NTDDI_VISTA) 1479 NOPARAM_ROUTINE_ALLOWFOREGNDACTIVATION, 1480 NOPARAM_ROUTINE_MSQCLEARWAKEMASK, 1481 NOPARAM_ROUTINE_CREATESYSTEMTHREADS, 1482 NOPARAM_ROUTINE_DESTROY_CARET, 1483 #endif 1484 NOPARAM_ROUTINE_ENABLEPROCWNDGHSTING, 1485 #if (WIN32K_VERSION < NTDDI_VISTA) 1486 NOPARAM_ROUTINE_MSQCLEARWAKEMASK, 1487 NOPARAM_ROUTINE_ALLOWFOREGNDACTIVATION, 1488 NOPARAM_ROUTINE_DESTROY_CARET, 1489 #endif 1490 NOPARAM_ROUTINE_GETDEVICECHANGEINFO, 1491 NOPARAM_ROUTINE_GETIMESHOWSTATUS, 1492 NOPARAM_ROUTINE_GETINPUTDESKTOP, 1493 NOPARAM_ROUTINE_GETMSESSAGEPOS, 1494 #if (WIN32K_VERSION >= NTDDI_VISTA) 1495 NOPARAM_ROUTINE_HANDLESYSTHRDCREATFAIL, 1496 #else 1497 NOPARAM_ROUTINE_GETREMOTEPROCESSID, 1498 #endif 1499 NOPARAM_ROUTINE_HIDECURSORNOCAPTURE, 1500 NOPARAM_ROUTINE_LOADCURSANDICOS, 1501 #if (WIN32K_VERSION >= NTDDI_VISTA) 1502 NOPARAM_ROUTINE_LOADUSERAPIHOOK, 1503 NOPARAM_ROUTINE_PREPAREFORLOGOFF, /* 0x0f */ 1504 #endif 1505 NOPARAM_ROUTINE_RELEASECAPTURE, 1506 NOPARAM_ROUTINE_RESETDBLCLICK, 1507 NOPARAM_ROUTINE_ZAPACTIVEANDFOUS, 1508 NOPARAM_ROUTINE_REMOTECONSHDWSTOP, 1509 NOPARAM_ROUTINE_REMOTEDISCONNECT, 1510 NOPARAM_ROUTINE_REMOTELOGOFF, 1511 NOPARAM_ROUTINE_REMOTENTSECURITY, 1512 NOPARAM_ROUTINE_REMOTESHDWSETUP, 1513 NOPARAM_ROUTINE_REMOTESHDWSTOP, 1514 NOPARAM_ROUTINE_REMOTEPASSTHRUENABLE, 1515 NOPARAM_ROUTINE_REMOTEPASSTHRUDISABLE, 1516 NOPARAM_ROUTINE_REMOTECONNECTSTATE, 1517 NOPARAM_ROUTINE_UPDATEPERUSERIMMENABLING, 1518 NOPARAM_ROUTINE_USERPWRCALLOUTWORKER, 1519 #if (WIN32K_VERSION >= NTDDI_VISTA) 1520 NOPARAM_ROUTINE_WAKERITFORSHTDWN, 1521 #endif 1522 NOPARAM_ROUTINE_INIT_MESSAGE_PUMP, 1523 NOPARAM_ROUTINE_UNINIT_MESSAGE_PUMP, 1524 #if (WIN32K_VERSION < NTDDI_VISTA) 1525 NOPARAM_ROUTINE_LOADUSERAPIHOOK, 1526 #endif 1527 ONEPARAM_ROUTINE_BEGINDEFERWNDPOS, 1528 #if (WIN32K_VERSION >= NTDDI_VISTA) 1529 ONEPARAM_ROUTINE_GETSENDMSGRECVR, 1530 #endif 1531 ONEPARAM_ROUTINE_WINDOWFROMDC, 1532 ONEPARAM_ROUTINE_ALLOWSETFOREGND, 1533 ONEPARAM_ROUTINE_CREATEEMPTYCUROBJECT, 1534 #if (WIN32K_VERSION < NTDDI_VISTA) 1535 ONEPARAM_ROUTINE_CREATESYSTEMTHREADS, 1536 #endif 1537 ONEPARAM_ROUTINE_CSDDEUNINITIALIZE, 1538 ONEPARAM_ROUTINE_DIRECTEDYIELD, 1539 ONEPARAM_ROUTINE_ENUMCLIPBOARDFORMATS, 1540 #if (WIN32K_VERSION < NTDDI_VISTA) 1541 ONEPARAM_ROUTINE_GETCURSORPOS, 1542 #endif 1543 ONEPARAM_ROUTINE_GETINPUTEVENT, 1544 ONEPARAM_ROUTINE_GETKEYBOARDLAYOUT, 1545 ONEPARAM_ROUTINE_GETKEYBOARDTYPE, 1546 ONEPARAM_ROUTINE_GETPROCDEFLAYOUT, 1547 ONEPARAM_ROUTINE_GETQUEUESTATUS, 1548 ONEPARAM_ROUTINE_GETWINSTAINFO, 1549 #if (WIN32K_VERSION < NTDDI_VISTA) 1550 ONEPARAM_ROUTINE_HANDLESYSTHRDCREATFAIL, 1551 #endif 1552 ONEPARAM_ROUTINE_LOCKFOREGNDWINDOW, 1553 ONEPARAM_ROUTINE_LOADFONTS, 1554 ONEPARAM_ROUTINE_MAPDEKTOPOBJECT, 1555 ONEPARAM_ROUTINE_MESSAGEBEEP, 1556 ONEPARAM_ROUTINE_PLAYEVENTSOUND, 1557 ONEPARAM_ROUTINE_POSTQUITMESSAGE, 1558 #if (WIN32K_VERSION < NTDDI_VISTA) 1559 ONEPARAM_ROUTINE_PREPAREFORLOGOFF, 1560 #endif 1561 ONEPARAM_ROUTINE_REALIZEPALETTE, 1562 ONEPARAM_ROUTINE_REGISTERLPK, 1563 #if (WIN32K_VERSION >= NTDDI_VISTA) 1564 ONEPARAM_ROUTINE_REGISTERSYSTEMTHREAD, 1565 #endif 1566 ONEPARAM_ROUTINE_REMOTERECONNECT, 1567 ONEPARAM_ROUTINE_REMOTETHINWIRESTATUS, 1568 ONEPARAM_ROUTINE_RELEASEDC, 1569 #if (WIN32K_VERSION >= NTDDI_VISTA) 1570 ONEPARAM_ROUTINE_REMOTENOTIFY, 1571 #endif 1572 ONEPARAM_ROUTINE_REPLYMESSAGE, 1573 ONEPARAM_ROUTINE_SETCARETBLINKTIME, 1574 ONEPARAM_ROUTINE_SETDBLCLICKTIME, 1575 #if (WIN32K_VERSION < NTDDI_VISTA) 1576 ONEPARAM_ROUTINE_SETIMESHOWSTATUS, 1577 #endif 1578 ONEPARAM_ROUTINE_SETMESSAGEEXTRAINFO, 1579 ONEPARAM_ROUTINE_SETPROCDEFLAYOUT, 1580 #if (WIN32K_VERSION >= NTDDI_VISTA) 1581 ONEPARAM_ROUTINE_SETWATERMARKSTRINGS, 1582 #endif 1583 ONEPARAM_ROUTINE_SHOWCURSOR, 1584 ONEPARAM_ROUTINE_SHOWSTARTGLASS, 1585 ONEPARAM_ROUTINE_SWAPMOUSEBUTTON, 1586 X_ROUTINE_WOWMODULEUNLOAD, 1587 #if (WIN32K_VERSION < NTDDI_VISTA) 1588 X_ROUTINE_REMOTENOTIFY, 1589 #endif 1590 HWND_ROUTINE_DEREGISTERSHELLHOOKWINDOW, 1591 HWND_ROUTINE_DWP_GETENABLEDPOPUP, 1592 HWND_ROUTINE_GETWNDCONTEXTHLPID, 1593 HWND_ROUTINE_REGISTERSHELLHOOKWINDOW, 1594 HWND_ROUTINE_SETMSGBOX, 1595 HWNDOPT_ROUTINE_SETPROGMANWINDOW, 1596 HWNDOPT_ROUTINE_SETTASKMANWINDOW, 1597 HWNDPARAM_ROUTINE_GETCLASSICOCUR, 1598 HWNDPARAM_ROUTINE_CLEARWINDOWSTATE, 1599 HWNDPARAM_ROUTINE_KILLSYSTEMTIMER, 1600 HWNDPARAM_ROUTINE_SETDIALOGPOINTER, 1601 HWNDPARAM_ROUTINE_SETVISIBLE, 1602 HWNDPARAM_ROUTINE_SETWNDCONTEXTHLPID, 1603 HWNDPARAM_ROUTINE_SETWINDOWSTATE, 1604 HWNDLOCK_ROUTINE_WINDOWHASSHADOW, /* correct prefix ? */ 1605 HWNDLOCK_ROUTINE_ARRANGEICONICWINDOWS, 1606 HWNDLOCK_ROUTINE_DRAWMENUBAR, 1607 HWNDLOCK_ROUTINE_CHECKIMESHOWSTATUSINTHRD, 1608 HWNDLOCK_ROUTINE_GETSYSMENUHANDLE, 1609 HWNDLOCK_ROUTINE_REDRAWFRAME, 1610 HWNDLOCK_ROUTINE_REDRAWFRAMEANDHOOK, 1611 HWNDLOCK_ROUTINE_SETDLGSYSMENU, 1612 HWNDLOCK_ROUTINE_SETFOREGROUNDWINDOW, 1613 HWNDLOCK_ROUTINE_SETSYSMENU, 1614 HWNDLOCK_ROUTINE_UPDATECKIENTRECT, 1615 HWNDLOCK_ROUTINE_UPDATEWINDOW, 1616 X_ROUTINE_IMESHOWSTATUSCHANGE, 1617 TWOPARAM_ROUTINE_ENABLEWINDOW, 1618 TWOPARAM_ROUTINE_REDRAWTITLE, 1619 TWOPARAM_ROUTINE_SHOWOWNEDPOPUPS, 1620 TWOPARAM_ROUTINE_SWITCHTOTHISWINDOW, 1621 TWOPARAM_ROUTINE_UPDATEWINDOWS, 1622 TWOPARAM_ROUTINE_VALIDATERGN, 1623 #if (WIN32K_VERSION >= NTDDI_VISTA) 1624 TWOPARAM_ROUTINE_CHANGEWNDMSGFILTER, 1625 TWOPARAM_ROUTINE_GETCURSORPOS, 1626 #endif 1627 TWOPARAM_ROUTINE_GETHDEVNAME, 1628 TWOPARAM_ROUTINE_INITANSIOEM, 1629 TWOPARAM_ROUTINE_NLSSENDIMENOTIFY, 1630 #if (WIN32K_VERSION >= NTDDI_VISTA) 1631 TWOPARAM_ROUTINE_REGISTERGHSTWND, 1632 #endif 1633 TWOPARAM_ROUTINE_REGISTERLOGONPROCESS, 1634 #if (WIN32K_VERSION >= NTDDI_VISTA) 1635 TWOPARAM_ROUTINE_REGISTERSBLFROSTWND, 1636 #else 1637 TWOPARAM_ROUTINE_REGISTERSYSTEMTHREAD, 1638 #endif 1639 TWOPARAM_ROUTINE_REGISTERUSERHUNGAPPHANDLERS, 1640 TWOPARAM_ROUTINE_SHADOWCLEANUP, 1641 TWOPARAM_ROUTINE_REMOTESHADOWSTART, 1642 TWOPARAM_ROUTINE_SETCARETPOS, 1643 TWOPARAM_ROUTINE_SETCURSORPOS, 1644 #if (WIN32K_VERSION >= NTDDI_VISTA) 1645 TWOPARAM_ROUTINE_SETPHYSCURSORPOS, 1646 #endif 1647 TWOPARAM_ROUTINE_UNHOOKWINDOWSHOOK, 1648 TWOPARAM_ROUTINE_WOWCLEANUP 1649 }; 1650 1651 DWORD 1652 NTAPI 1653 NtUserCallHwnd( 1654 HWND hWnd, 1655 DWORD Routine); 1656 1657 BOOL 1658 NTAPI 1659 NtUserCallHwndLock( 1660 HWND hWnd, 1661 DWORD Routine); 1662 1663 HWND 1664 NTAPI 1665 NtUserCallHwndOpt( 1666 HWND hWnd, 1667 DWORD Routine); 1668 1669 DWORD 1670 NTAPI 1671 NtUserCallHwndParam( 1672 HWND hWnd, 1673 DWORD_PTR Param, 1674 DWORD Routine); 1675 1676 DWORD 1677 NTAPI 1678 NtUserCallHwndParamLock( 1679 HWND hWnd, 1680 DWORD_PTR Param, 1681 DWORD Routine); 1682 1683 BOOL 1684 NTAPI 1685 NtUserCallMsgFilter( 1686 LPMSG msg, 1687 INT code); 1688 1689 LRESULT 1690 NTAPI 1691 NtUserCallNextHookEx( 1692 int Code, 1693 WPARAM wParam, 1694 LPARAM lParam, 1695 BOOL Ansi); 1696 1697 DWORD_PTR 1698 NTAPI 1699 NtUserCallNoParam( 1700 DWORD Routine); 1701 1702 DWORD_PTR 1703 NTAPI 1704 NtUserCallOneParam( 1705 DWORD_PTR Param, 1706 DWORD Routine); 1707 1708 DWORD_PTR 1709 NTAPI 1710 NtUserCallTwoParam( 1711 DWORD_PTR Param1, 1712 DWORD_PTR Param2, 1713 DWORD Routine); 1714 1715 BOOL 1716 NTAPI 1717 NtUserChangeClipboardChain( 1718 HWND hWndRemove, 1719 HWND hWndNewNext); 1720 1721 LONG 1722 NTAPI 1723 NtUserChangeDisplaySettings( 1724 PUNICODE_STRING lpszDeviceName, 1725 LPDEVMODEW lpDevMode, 1726 DWORD dwflags, 1727 LPVOID lParam); 1728 1729 BOOL 1730 NTAPI 1731 NtUserCheckDesktopByThreadId( 1732 DWORD dwThreadId); 1733 1734 BOOL 1735 NTAPI 1736 NtUserCheckWindowThreadDesktop( 1737 HWND hwnd, 1738 DWORD dwThreadId, 1739 ULONG ReturnValue); 1740 1741 DWORD 1742 NTAPI 1743 NtUserCheckImeHotKey( 1744 DWORD dwUnknown1, 1745 LPARAM dwUnknown2); 1746 1747 HWND NTAPI 1748 NtUserChildWindowFromPointEx( 1749 HWND Parent, 1750 LONG x, 1751 LONG y, 1752 UINT Flags); 1753 1754 BOOL 1755 NTAPI 1756 NtUserClipCursor( 1757 RECT *lpRect); 1758 1759 BOOL 1760 NTAPI 1761 NtUserCloseClipboard(VOID); 1762 1763 BOOL 1764 NTAPI 1765 NtUserCloseDesktop( 1766 HDESK hDesktop); 1767 1768 BOOL 1769 NTAPI 1770 NtUserCloseWindowStation( 1771 HWINSTA hWinSta); 1772 1773 /* Console commands for NtUserConsoleControl */ 1774 typedef enum _CONSOLECONTROL 1775 { 1776 ConsoleCtrlDesktopConsoleThread = 0, 1777 GuiConsoleWndClassAtom = 1, 1778 ConsoleMakePalettePublic = 5, 1779 ConsoleAcquireDisplayOwnership, 1780 } CONSOLECONTROL, *PCONSOLECONTROL; 1781 1782 typedef struct _DESKTOP_CONSOLE_THREAD 1783 { 1784 HDESK DesktopHandle; 1785 ULONG_PTR ThreadId; 1786 } DESKTOP_CONSOLE_THREAD, *PDESKTOP_CONSOLE_THREAD; 1787 1788 NTSTATUS 1789 APIENTRY 1790 NtUserConsoleControl( 1791 IN CONSOLECONTROL ConsoleCtrl, 1792 IN PVOID ConsoleCtrlInfo, 1793 IN ULONG ConsoleCtrlInfoLength); 1794 1795 HANDLE 1796 NTAPI 1797 NtUserConvertMemHandle( 1798 PVOID pData, 1799 DWORD cbData); 1800 1801 ULONG 1802 NTAPI 1803 NtUserCopyAcceleratorTable( 1804 HACCEL Table, 1805 LPACCEL Entries, 1806 ULONG EntriesCount); 1807 1808 DWORD 1809 NTAPI 1810 NtUserCountClipboardFormats(VOID); 1811 1812 HACCEL 1813 NTAPI 1814 NtUserCreateAcceleratorTable( 1815 LPACCEL Entries, 1816 ULONG EntriesCount); 1817 1818 BOOL 1819 NTAPI 1820 NtUserCreateCaret( 1821 HWND hWnd, 1822 HBITMAP hBitmap, 1823 int nWidth, 1824 int nHeight); 1825 1826 HDESK 1827 NTAPI 1828 NtUserCreateDesktop( 1829 POBJECT_ATTRIBUTES poa, 1830 PUNICODE_STRING lpszDesktopDevice, 1831 LPDEVMODEW lpdmw, 1832 DWORD dwFlags, 1833 ACCESS_MASK dwDesiredAccess); 1834 1835 DWORD 1836 NTAPI 1837 NtUserCreateInputContext( 1838 DWORD dwUnknown1); 1839 1840 NTSTATUS 1841 NTAPI 1842 NtUserCreateLocalMemHandle( 1843 HANDLE hMem, 1844 PVOID pData, 1845 DWORD cbData, 1846 DWORD *pcbData); 1847 1848 HWND 1849 NTAPI 1850 NtUserCreateWindowEx( 1851 DWORD dwExStyle, 1852 PLARGE_STRING plstrClassName, 1853 PLARGE_STRING plstrClsVersion, 1854 PLARGE_STRING plstrWindowName, 1855 DWORD dwStyle, 1856 int x, 1857 int y, 1858 int nWidth, 1859 int nHeight, 1860 HWND hWndParent, 1861 HMENU hMenu, 1862 HINSTANCE hInstance, 1863 LPVOID lpParam, 1864 DWORD dwFlags, 1865 PVOID acbiBuffer); 1866 1867 HWINSTA 1868 NTAPI 1869 NtUserCreateWindowStation( 1870 POBJECT_ATTRIBUTES ObjectAttributes, 1871 ACCESS_MASK dwDesiredAccess, 1872 DWORD Unknown2, 1873 DWORD Unknown3, 1874 DWORD Unknown4, 1875 DWORD Unknown5, 1876 DWORD Unknown6); 1877 1878 BOOL 1879 NTAPI 1880 NtUserDdeGetQualityOfService( 1881 IN HWND hwndClient, 1882 IN HWND hWndServer, 1883 OUT PSECURITY_QUALITY_OF_SERVICE pqosPrev); 1884 1885 DWORD 1886 NTAPI 1887 NtUserDdeInitialize( 1888 DWORD Unknown0, 1889 DWORD Unknown1, 1890 DWORD Unknown2, 1891 DWORD Unknown3, 1892 DWORD Unknown4); 1893 1894 BOOL 1895 NTAPI 1896 NtUserDdeSetQualityOfService( 1897 IN HWND hwndClient, 1898 IN PSECURITY_QUALITY_OF_SERVICE pqosNew, 1899 OUT PSECURITY_QUALITY_OF_SERVICE pqosPrev); 1900 1901 HDWP 1902 NTAPI 1903 NtUserDeferWindowPos( 1904 HDWP WinPosInfo, 1905 HWND Wnd, 1906 HWND WndInsertAfter, 1907 int x, 1908 int y, 1909 int cx, 1910 int cy, 1911 UINT Flags); 1912 1913 BOOL 1914 NTAPI 1915 NtUserDefSetText( 1916 HWND WindowHandle, 1917 PLARGE_STRING WindowText); 1918 1919 BOOLEAN 1920 NTAPI 1921 NtUserDestroyAcceleratorTable( 1922 HACCEL Table); 1923 1924 BOOL 1925 NTAPI 1926 NtUserDestroyCursor( 1927 _In_ HANDLE Handle, 1928 _In_ BOOL bForce); 1929 1930 DWORD 1931 NTAPI 1932 NtUserDestroyInputContext( 1933 DWORD dwUnknown1); 1934 1935 BOOLEAN 1936 NTAPI 1937 NtUserDestroyWindow( 1938 HWND Wnd); 1939 1940 DWORD 1941 NTAPI 1942 NtUserDisableThreadIme( 1943 DWORD dwUnknown1); 1944 1945 LRESULT 1946 NTAPI 1947 NtUserDispatchMessage( 1948 PMSG pMsg); 1949 1950 BOOL 1951 NTAPI 1952 NtUserDragDetect( 1953 HWND hWnd, 1954 POINT pt); 1955 1956 DWORD 1957 NTAPI 1958 NtUserDragObject( 1959 HWND hwnd1, 1960 HWND hwnd2, 1961 UINT u1, 1962 DWORD dw1, 1963 HCURSOR hc1); 1964 1965 BOOL 1966 NTAPI 1967 NtUserDrawAnimatedRects( 1968 HWND hwnd, 1969 INT idAni, 1970 RECT *lprcFrom, 1971 RECT *lprcTo); 1972 1973 BOOL 1974 NTAPI 1975 NtUserDrawCaption( 1976 HWND hWnd, 1977 HDC hDc, 1978 LPCRECT lpRc, 1979 UINT uFlags); 1980 1981 BOOL 1982 NTAPI 1983 NtUserDrawCaptionTemp( 1984 HWND hWnd, 1985 HDC hDC, 1986 LPCRECT lpRc, 1987 HFONT hFont, 1988 HICON hIcon, 1989 const PUNICODE_STRING str, 1990 UINT uFlags); 1991 1992 /* Used with NtUserDrawIconEx, last parameter. */ 1993 typedef struct _DRAWICONEXDATA 1994 { 1995 HBITMAP hbmMask; 1996 HBITMAP hbmColor; 1997 int cx; 1998 int cy; 1999 } DRAWICONEXDATA, *PDRAWICONEXDATA; 2000 2001 BOOL 2002 NTAPI 2003 NtUserDrawIconEx( 2004 HDC hdc, 2005 int xLeft, 2006 int yTop, 2007 HICON hIcon, 2008 int cxWidth, 2009 int cyWidth, 2010 UINT istepIfAniCur, 2011 HBRUSH hbrFlickerFreeDraw, 2012 UINT diFlags, 2013 BOOL bMetaHDC, 2014 PVOID pDIXData); 2015 2016 BOOL 2017 NTAPI 2018 NtUserEmptyClipboard(VOID); 2019 2020 BOOL 2021 NTAPI 2022 NtUserEnableScrollBar( 2023 HWND hWnd, 2024 UINT wSBflags, 2025 UINT wArrows); 2026 2027 BOOL 2028 NTAPI 2029 NtUserEndDeferWindowPosEx( 2030 HDWP WinPosInfo, 2031 DWORD Unknown1); 2032 2033 BOOL 2034 NTAPI 2035 NtUserEndPaint( 2036 HWND hWnd, 2037 CONST PAINTSTRUCT *lPs); 2038 2039 BOOL 2040 NTAPI 2041 NtUserEnumDisplayDevices( 2042 PUNICODE_STRING lpDevice, /* device name */ 2043 DWORD iDevNum, /* display device */ 2044 PDISPLAY_DEVICEW lpDisplayDevice, /* device information */ 2045 DWORD dwFlags); /* reserved */ 2046 2047 /* 2048 BOOL 2049 NTAPI 2050 NtUserEnumDisplayMonitors( 2051 HDC hdc, 2052 LPCRECT lprcClip, 2053 MONITORENUMPROC lpfnEnum, 2054 LPARAM dwData); 2055 */ 2056 /* FIXME: The call below is ros-specific and should be rewritten to use the same params as the correct call above. */ 2057 INT 2058 NTAPI 2059 NtUserEnumDisplayMonitors( 2060 OPTIONAL IN HDC hDC, 2061 OPTIONAL IN LPCRECT pRect, 2062 OPTIONAL OUT HMONITOR *hMonitorList, 2063 OPTIONAL OUT LPRECT monitorRectList, 2064 OPTIONAL IN DWORD listSize); 2065 2066 2067 NTSTATUS 2068 NTAPI 2069 NtUserEnumDisplaySettings( 2070 PUNICODE_STRING lpszDeviceName, 2071 DWORD iModeNum, 2072 LPDEVMODEW lpDevMode, /* FIXME is this correct? */ 2073 DWORD dwFlags); 2074 2075 DWORD 2076 NTAPI 2077 NtUserEvent( 2078 DWORD Unknown0); 2079 2080 INT 2081 NTAPI 2082 NtUserExcludeUpdateRgn( 2083 HDC hDC, 2084 HWND hWnd); 2085 2086 BOOL 2087 NTAPI 2088 NtUserFillWindow( 2089 HWND hWndPaint, 2090 HWND hWndPaint1, 2091 HDC hDC, 2092 HBRUSH hBrush); 2093 2094 HWND 2095 NTAPI 2096 NtUserFindWindowEx( 2097 HWND hwndParent, 2098 HWND hwndChildAfter, 2099 PUNICODE_STRING ucClassName, 2100 PUNICODE_STRING ucWindowName, 2101 DWORD dwUnknown); 2102 2103 BOOL 2104 NTAPI 2105 NtUserFlashWindowEx( 2106 IN PFLASHWINFO pfwi); 2107 2108 BOOL 2109 NTAPI 2110 NtUserGetAltTabInfo( 2111 HWND hwnd, 2112 INT iItem, 2113 PALTTABINFO pati, 2114 LPWSTR pszItemText, 2115 UINT cchItemText, 2116 BOOL Ansi); 2117 2118 HWND 2119 NTAPI 2120 NtUserGetAncestor( 2121 HWND hWnd, 2122 UINT Flags); 2123 2124 DWORD 2125 NTAPI 2126 NtUserGetAppImeLevel( 2127 DWORD dwUnknown1); 2128 2129 SHORT 2130 NTAPI 2131 NtUserGetAsyncKeyState( 2132 INT Key); 2133 2134 _Success_(return != 0) 2135 _At_(pustrName->Buffer, _Out_z_bytecap_post_bytecount_(pustrName->MaximumLength, return * 2 + 2)) 2136 ULONG 2137 APIENTRY 2138 NtUserGetAtomName( 2139 _In_ ATOM atom, 2140 _Inout_ PUNICODE_STRING pustrName); 2141 2142 UINT 2143 NTAPI 2144 NtUserGetCaretBlinkTime(VOID); 2145 2146 BOOL 2147 NTAPI 2148 NtUserGetCaretPos( 2149 LPPOINT lpPoint); 2150 2151 BOOL 2152 NTAPI 2153 NtUserGetClassInfo( 2154 HINSTANCE hInstance, 2155 PUNICODE_STRING ClassName, 2156 LPWNDCLASSEXW wcex, 2157 LPWSTR *ppszMenuName, 2158 BOOL Ansi); 2159 2160 INT 2161 NTAPI 2162 NtUserGetClassName( 2163 HWND hWnd, 2164 BOOL Real, /* 0 GetClassNameW, 1 RealGetWindowClassA/W */ 2165 PUNICODE_STRING ClassName); 2166 2167 HANDLE 2168 NTAPI 2169 NtUserGetClipboardData( 2170 UINT fmt, 2171 PGETCLIPBDATA pgcd); 2172 2173 INT 2174 NTAPI 2175 NtUserGetClipboardFormatName( 2176 UINT uFormat, 2177 LPWSTR lpszFormatName, 2178 INT cchMaxCount); 2179 2180 HWND 2181 NTAPI 2182 NtUserGetClipboardOwner(VOID); 2183 2184 DWORD 2185 NTAPI 2186 NtUserGetClipboardSequenceNumber(VOID); 2187 2188 HWND 2189 NTAPI 2190 NtUserGetClipboardViewer(VOID); 2191 2192 BOOL 2193 NTAPI 2194 NtUserGetClipCursor( 2195 RECT *lpRect); 2196 2197 BOOL 2198 NTAPI 2199 NtUserGetComboBoxInfo( 2200 HWND hWnd, 2201 PCOMBOBOXINFO pcbi); 2202 2203 HBRUSH 2204 NTAPI 2205 NtUserGetControlBrush( 2206 HWND hwnd, 2207 HDC hdc, 2208 UINT ctlType); 2209 2210 HBRUSH 2211 NTAPI 2212 NtUserGetControlColor( 2213 HWND hwndParent, 2214 HWND hwnd, 2215 HDC hdc, 2216 UINT CtlMsg); 2217 2218 ULONG_PTR 2219 NTAPI 2220 NtUserGetCPD( 2221 HWND hWnd, 2222 GETCPD Flags, 2223 ULONG_PTR Proc); 2224 2225 HCURSOR 2226 NTAPI 2227 NtUserGetCursorFrameInfo( 2228 HCURSOR hCursor, 2229 DWORD istep, 2230 INT *rate_jiffies, 2231 DWORD *num_steps); 2232 2233 BOOL 2234 NTAPI 2235 NtUserGetCursorInfo( 2236 PCURSORINFO pci); 2237 2238 HDC 2239 NTAPI 2240 NtUserGetDC( 2241 HWND hWnd); 2242 2243 HDC 2244 NTAPI 2245 NtUserGetDCEx( 2246 HWND hWnd, 2247 HANDLE hRegion, 2248 ULONG Flags); 2249 2250 UINT 2251 NTAPI 2252 NtUserGetDoubleClickTime(VOID); 2253 2254 HWND 2255 NTAPI 2256 NtUserGetForegroundWindow(VOID); 2257 2258 DWORD 2259 NTAPI 2260 NtUserGetGuiResources( 2261 HANDLE hProcess, 2262 DWORD uiFlags); 2263 2264 BOOL 2265 NTAPI 2266 NtUserGetGUIThreadInfo( 2267 DWORD idThread, 2268 LPGUITHREADINFO lpgui); 2269 2270 _Success_(return != FALSE) 2271 BOOL 2272 NTAPI 2273 NtUserGetIconInfo( 2274 _In_ HANDLE hCurIcon, 2275 _Out_opt_ PICONINFO IconInfo, 2276 _Inout_opt_ PUNICODE_STRING lpInstName, 2277 _Inout_opt_ PUNICODE_STRING lpResName, 2278 _Out_opt_ LPDWORD pbpp, 2279 _In_ BOOL bInternal); 2280 2281 BOOL 2282 NTAPI 2283 NtUserGetIconSize( 2284 HANDLE Handle, 2285 UINT istepIfAniCur, 2286 LONG *plcx, 2287 LONG *plcy); 2288 2289 BOOL NTAPI 2290 NtUserGetImeHotKey(IN DWORD dwHotKey, 2291 OUT LPUINT lpuModifiers, 2292 OUT LPUINT lpuVKey, 2293 OUT LPHKL lphKL); 2294 2295 BOOL 2296 NTAPI 2297 NtUserGetImeInfoEx( 2298 PIMEINFOEX pImeInfoEx, 2299 IMEINFOEXCLASS SearchType); 2300 2301 DWORD 2302 NTAPI 2303 NtUserGetInternalWindowPos( 2304 HWND hwnd, 2305 LPRECT rectWnd, 2306 LPPOINT ptIcon); 2307 2308 HKL 2309 NTAPI 2310 NtUserGetKeyboardLayout( 2311 DWORD dwThreadid); 2312 2313 UINT 2314 NTAPI 2315 NtUserGetKeyboardLayoutList( 2316 ULONG nItems, 2317 HKL *pHklBuff); 2318 2319 BOOL 2320 NTAPI 2321 NtUserGetKeyboardLayoutName( 2322 LPWSTR lpszName); 2323 2324 DWORD 2325 NTAPI 2326 NtUserGetKeyboardState( 2327 LPBYTE Unknown0); 2328 2329 DWORD 2330 NTAPI 2331 NtUserGetKeyboardType( 2332 DWORD TypeFlag); 2333 2334 DWORD 2335 NTAPI 2336 NtUserGetKeyNameText( 2337 LONG lParam, 2338 LPWSTR lpString, 2339 int nSize); 2340 2341 SHORT 2342 NTAPI 2343 NtUserGetKeyState( 2344 INT VirtKey); 2345 2346 BOOL 2347 NTAPI 2348 NtUserGetLayeredWindowAttributes( 2349 HWND hwnd, 2350 COLORREF *pcrKey, 2351 BYTE *pbAlpha, 2352 DWORD *pdwFlags); 2353 2354 DWORD 2355 NTAPI 2356 NtUserGetListBoxInfo( 2357 HWND hWnd); 2358 2359 BOOL 2360 APIENTRY 2361 NtUserGetMessage( 2362 PMSG pMsg, 2363 HWND hWnd, 2364 UINT MsgFilterMin, 2365 UINT MsgFilterMax); 2366 2367 DWORD 2368 NTAPI 2369 NtUserGetMouseMovePointsEx( 2370 UINT cbSize, 2371 LPMOUSEMOVEPOINT lppt, 2372 LPMOUSEMOVEPOINT lpptBuf, 2373 int nBufPoints, 2374 DWORD resolution); 2375 2376 BOOL 2377 NTAPI 2378 NtUserGetObjectInformation( 2379 HANDLE hObject, 2380 DWORD nIndex, 2381 PVOID pvInformation, 2382 DWORD nLength, 2383 PDWORD nLengthNeeded); 2384 2385 HWND 2386 NTAPI 2387 NtUserGetOpenClipboardWindow(VOID); 2388 2389 INT 2390 NTAPI 2391 NtUserGetPriorityClipboardFormat( 2392 UINT *paFormatPriorityList, 2393 INT cFormats); 2394 2395 HWINSTA 2396 NTAPI 2397 NtUserGetProcessWindowStation(VOID); 2398 2399 DWORD 2400 NTAPI 2401 NtUserGetRawInputBuffer( 2402 PRAWINPUT pData, 2403 PUINT pcbSize, 2404 UINT cbSizeHeader); 2405 2406 DWORD 2407 NTAPI 2408 NtUserGetRawInputData( 2409 HRAWINPUT hRawInput, 2410 UINT uiCommand, 2411 LPVOID pData, 2412 PUINT pcbSize, 2413 UINT cbSizeHeader); 2414 2415 DWORD 2416 NTAPI 2417 NtUserGetRawInputDeviceInfo( 2418 HANDLE hDevice, 2419 UINT uiCommand, 2420 LPVOID pData, 2421 PUINT pcbSize); 2422 2423 DWORD 2424 NTAPI 2425 NtUserGetRawInputDeviceList( 2426 PRAWINPUTDEVICELIST pRawInputDeviceList, 2427 PUINT puiNumDevices, 2428 UINT cbSize); 2429 2430 DWORD 2431 NTAPI 2432 NtUserGetRegisteredRawInputDevices( 2433 PRAWINPUTDEVICE pRawInputDevices, 2434 PUINT puiNumDevices, 2435 UINT cbSize); 2436 2437 BOOL 2438 NTAPI 2439 NtUserGetScrollBarInfo( 2440 HWND hWnd, 2441 LONG idObject, 2442 PSCROLLBARINFO psbi); 2443 2444 HDESK 2445 NTAPI 2446 NtUserGetThreadDesktop( 2447 DWORD dwThreadId, 2448 HDESK hConsoleDesktop); 2449 2450 enum ThreadStateRoutines 2451 { 2452 THREADSTATE_GETTHREADINFO, 2453 THREADSTATE_INSENDMESSAGE, 2454 THREADSTATE_FOCUSWINDOW, 2455 THREADSTATE_ACTIVEWINDOW, 2456 THREADSTATE_CAPTUREWINDOW, 2457 THREADSTATE_PROGMANWINDOW, 2458 THREADSTATE_TASKMANWINDOW, 2459 THREADSTATE_GETMESSAGETIME, 2460 THREADSTATE_GETINPUTSTATE, 2461 THREADSTATE_UPTIMELASTREAD, 2462 THREADSTATE_FOREGROUNDTHREAD, 2463 THREADSTATE_GETCURSOR, 2464 THREADSTATE_GETMESSAGEEXTRAINFO 2465 }; 2466 2467 DWORD_PTR 2468 NTAPI 2469 NtUserGetThreadState( 2470 DWORD Routine); 2471 2472 BOOLEAN 2473 NTAPI 2474 NtUserGetTitleBarInfo( 2475 HWND hwnd, 2476 PTITLEBARINFO pti); 2477 2478 BOOL 2479 NTAPI 2480 NtUserGetUpdateRect( 2481 HWND hWnd, 2482 LPRECT lpRect, 2483 BOOL fErase); 2484 2485 INT 2486 NTAPI 2487 NtUserGetUpdateRgn( 2488 HWND hWnd, 2489 HRGN hRgn, 2490 BOOL bErase); 2491 2492 HDC 2493 NTAPI 2494 NtUserGetWindowDC( 2495 HWND hWnd); 2496 2497 BOOL 2498 NTAPI 2499 NtUserGetWindowPlacement( 2500 HWND hWnd, 2501 WINDOWPLACEMENT *lpwndpl); 2502 2503 PCLS 2504 NTAPI 2505 NtUserGetWOWClass( 2506 HINSTANCE hInstance, 2507 PUNICODE_STRING ClassName); 2508 2509 DWORD 2510 NTAPI 2511 NtUserHardErrorControl( 2512 DWORD dwUnknown1, 2513 DWORD dwUnknown2, 2514 DWORD dwUnknown3); 2515 2516 BOOL 2517 NTAPI 2518 NtUserImpersonateDdeClientWindow( 2519 HWND hWndClient, 2520 HWND hWndServer); 2521 2522 NTSTATUS 2523 NTAPI 2524 NtUserInitialize( 2525 DWORD dwWinVersion, 2526 HANDLE hPowerRequestEvent, 2527 HANDLE hMediaRequestEvent); 2528 2529 NTSTATUS 2530 NTAPI 2531 NtUserInitializeClientPfnArrays( 2532 PPFNCLIENT pfnClientA, 2533 PPFNCLIENT pfnClientW, 2534 PPFNCLIENTWORKER pfnClientWorker, 2535 HINSTANCE hmodUser); 2536 2537 DWORD 2538 NTAPI 2539 NtUserInitTask( 2540 DWORD Unknown0, 2541 DWORD Unknown1, 2542 DWORD Unknown2, 2543 DWORD Unknown3, 2544 DWORD Unknown4, 2545 DWORD Unknown5, 2546 DWORD Unknown6, 2547 DWORD Unknown7, 2548 DWORD Unknown8, 2549 DWORD Unknown9, 2550 DWORD Unknown10, 2551 DWORD Unknown11); 2552 2553 INT 2554 NTAPI 2555 NtUserInternalGetWindowText( 2556 HWND hWnd, 2557 LPWSTR lpString, 2558 INT nMaxCount); 2559 2560 BOOL 2561 NTAPI 2562 NtUserInvalidateRect( 2563 HWND hWnd, 2564 CONST RECT *lpRect, 2565 BOOL bErase); 2566 2567 BOOL 2568 NTAPI 2569 NtUserInvalidateRgn( 2570 HWND hWnd, 2571 HRGN hRgn, 2572 BOOL bErase); 2573 2574 BOOL 2575 NTAPI 2576 NtUserIsClipboardFormatAvailable( 2577 UINT format); 2578 2579 BOOL 2580 NTAPI 2581 NtUserKillTimer( 2582 HWND hWnd, 2583 UINT_PTR uIDEvent); 2584 2585 HKL 2586 NTAPI 2587 NtUserLoadKeyboardLayoutEx( 2588 IN HANDLE Handle, 2589 IN DWORD offTable, 2590 IN PUNICODE_STRING puszKeyboardName, 2591 IN HKL hKL, 2592 IN PUNICODE_STRING puszKLID, 2593 IN DWORD dwKLID, 2594 IN UINT Flags); 2595 2596 BOOL 2597 NTAPI 2598 NtUserLockWindowStation( 2599 HWINSTA hWindowStation); 2600 2601 BOOL 2602 NTAPI 2603 NtUserLockWindowUpdate( 2604 HWND hWnd); 2605 2606 BOOL 2607 NTAPI 2608 NtUserLockWorkStation(VOID); 2609 2610 UINT 2611 NTAPI 2612 NtUserMapVirtualKeyEx( 2613 UINT keyCode, 2614 UINT transType, 2615 DWORD keyboardId, 2616 HKL dwhkl); 2617 2618 typedef struct tagDOSENDMESSAGE 2619 { 2620 UINT uFlags; 2621 UINT uTimeout; 2622 ULONG_PTR Result; 2623 } 2624 DOSENDMESSAGE, *PDOSENDMESSAGE; 2625 2626 BOOL 2627 NTAPI 2628 NtUserMessageCall( 2629 HWND hWnd, 2630 UINT Msg, 2631 WPARAM wParam, 2632 LPARAM lParam, 2633 ULONG_PTR ResultInfo, 2634 DWORD dwType, /* FNID_XX types */ 2635 BOOL Ansi); 2636 2637 DWORD 2638 NTAPI 2639 NtUserMinMaximize( 2640 HWND hWnd, 2641 UINT cmd, /* Wine SW_ commands */ 2642 BOOL Hide); 2643 2644 DWORD 2645 NTAPI 2646 NtUserMNDragLeave(VOID); 2647 2648 DWORD 2649 NTAPI 2650 NtUserMNDragOver( 2651 DWORD Unknown0, 2652 DWORD Unknown1); 2653 2654 DWORD 2655 NTAPI 2656 NtUserModifyUserStartupInfoFlags( 2657 DWORD Unknown0, 2658 DWORD Unknown1); 2659 2660 BOOL 2661 NTAPI 2662 NtUserMoveWindow( 2663 HWND hWnd, 2664 int X, 2665 int Y, 2666 int nWidth, 2667 int nHeight, 2668 BOOL bRepaint 2669 ); 2670 2671 DWORD 2672 NTAPI 2673 NtUserNotifyIMEStatus( 2674 DWORD Unknown0, 2675 DWORD Unknown1, 2676 DWORD Unknown2); 2677 2678 BOOL 2679 NTAPI 2680 NtUserNotifyProcessCreate( 2681 HANDLE NewProcessId, 2682 HANDLE ParentThreadId, 2683 ULONG dwUnknown, 2684 ULONG CreateFlags); 2685 2686 VOID 2687 NTAPI 2688 NtUserNotifyWinEvent( 2689 DWORD Event, 2690 HWND hWnd, 2691 LONG idObject, 2692 LONG idChild); 2693 2694 BOOL 2695 NTAPI 2696 NtUserOpenClipboard( 2697 HWND hWnd, 2698 DWORD Unknown1); 2699 2700 HDESK 2701 NTAPI 2702 NtUserOpenDesktop( 2703 POBJECT_ATTRIBUTES ObjectAttributes, 2704 DWORD dwFlags, 2705 ACCESS_MASK dwDesiredAccess); 2706 2707 HDESK 2708 NTAPI 2709 NtUserOpenInputDesktop( 2710 DWORD dwFlags, 2711 BOOL fInherit, 2712 ACCESS_MASK dwDesiredAccess); 2713 2714 HWINSTA 2715 NTAPI 2716 NtUserOpenWindowStation( 2717 POBJECT_ATTRIBUTES ObjectAttributes, 2718 ACCESS_MASK dwDesiredAccess); 2719 2720 BOOL 2721 NTAPI 2722 NtUserPaintDesktop( 2723 HDC hDC); 2724 2725 DWORD 2726 NTAPI 2727 NtUserPaintMenuBar( 2728 HWND hWnd, 2729 HDC hDC, 2730 ULONG left, // x, 2731 ULONG right, // width, // Scale the edge thickness, offset? 2732 ULONG top, // y, 2733 BOOL bActive); // DWORD Flags); DC_ACTIVE or WS_ACTIVECAPTION, by checking WNDS_ACTIVEFRAME and foreground. 2734 2735 BOOL 2736 APIENTRY 2737 NtUserPeekMessage( 2738 PMSG pMsg, 2739 HWND hWnd, 2740 UINT MsgFilterMin, 2741 UINT MsgFilterMax, 2742 UINT RemoveMsg); 2743 2744 BOOL 2745 NTAPI 2746 NtUserPostMessage( 2747 HWND hWnd, 2748 UINT Msg, 2749 WPARAM wParam, 2750 LPARAM lParam); 2751 2752 BOOL 2753 NTAPI 2754 NtUserPostThreadMessage( 2755 DWORD idThread, 2756 UINT Msg, 2757 WPARAM wParam, 2758 LPARAM lParam); 2759 2760 BOOL 2761 NTAPI 2762 NtUserPrintWindow( 2763 HWND hwnd, 2764 HDC hdcBlt, 2765 UINT nFlags); 2766 2767 NTSTATUS 2768 NTAPI 2769 NtUserProcessConnect( 2770 IN HANDLE ProcessHandle, 2771 OUT PUSERCONNECT pUserConnect, 2772 IN ULONG Size); /* sizeof(USERCONNECT) */ 2773 2774 NTSTATUS 2775 NTAPI 2776 NtUserQueryInformationThread( 2777 IN HANDLE ThreadHandle, 2778 IN USERTHREADINFOCLASS ThreadInformationClass, 2779 OUT PVOID ThreadInformation, 2780 IN ULONG ThreadInformationLength); 2781 2782 DWORD 2783 NTAPI 2784 NtUserQueryInputContext( 2785 DWORD dwUnknown1, 2786 DWORD dwUnknown2); 2787 2788 DWORD 2789 NTAPI 2790 NtUserQuerySendMessage( 2791 DWORD Unknown0); 2792 2793 DWORD 2794 NTAPI 2795 NtUserQueryUserCounters( 2796 DWORD Unknown0, 2797 DWORD Unknown1, 2798 DWORD Unknown2, 2799 DWORD Unknown3, 2800 DWORD Unknown4); 2801 2802 #define QUERY_WINDOW_UNIQUE_PROCESS_ID 0x00 2803 #define QUERY_WINDOW_UNIQUE_THREAD_ID 0x01 2804 #define QUERY_WINDOW_ACTIVE 0x02 2805 #define QUERY_WINDOW_FOCUS 0x03 2806 #define QUERY_WINDOW_ISHUNG 0x04 2807 #define QUERY_WINDOW_REAL_ID 0x05 2808 #define QUERY_WINDOW_FOREGROUND 0x06 2809 #define QUERY_WINDOW_DEFAULT_IME 0x07 2810 #define QUERY_WINDOW_DEFAULT_ICONTEXT 0x08 2811 #define QUERY_WINDOW_ACTIVE_IME 0x09 2812 2813 DWORD_PTR 2814 NTAPI 2815 NtUserQueryWindow( 2816 HWND hWnd, 2817 DWORD Index); 2818 2819 BOOL 2820 NTAPI 2821 NtUserRealInternalGetMessage( 2822 LPMSG lpMsg, 2823 HWND hWnd, 2824 UINT wMsgFilterMin, 2825 UINT wMsgFilterMax, 2826 UINT wRemoveMsg, 2827 BOOL bGMSG); 2828 2829 HWND 2830 NTAPI 2831 NtUserRealChildWindowFromPoint( 2832 HWND Parent, 2833 LONG x, 2834 LONG y); 2835 2836 BOOL 2837 NTAPI 2838 NtUserRealWaitMessageEx( 2839 DWORD dwWakeMask, 2840 UINT uTimeout); 2841 2842 BOOL 2843 NTAPI 2844 NtUserRedrawWindow( 2845 HWND hWnd, 2846 CONST RECT *lprcUpdate, 2847 HRGN hrgnUpdate, 2848 UINT flags); 2849 2850 RTL_ATOM 2851 NTAPI 2852 NtUserRegisterClassExWOW( 2853 WNDCLASSEXW* lpwcx, 2854 PUNICODE_STRING pustrClassName, 2855 PUNICODE_STRING pustrCVersion, 2856 PCLSMENUNAME pClassMenuName, 2857 DWORD fnID, 2858 DWORD Flags, 2859 LPDWORD pWow); 2860 2861 BOOL 2862 NTAPI 2863 NtUserRegisterRawInputDevices( 2864 IN PCRAWINPUTDEVICE pRawInputDevices, 2865 IN UINT uiNumDevices, 2866 IN UINT cbSize); 2867 2868 BOOL 2869 NTAPI 2870 NtUserRegisterUserApiHook( 2871 PUNICODE_STRING m_dllname1, 2872 PUNICODE_STRING m_funname1, 2873 DWORD dwUnknown3, 2874 DWORD dwUnknown4); 2875 2876 BOOL 2877 NTAPI 2878 NtUserRegisterHotKey( 2879 HWND hWnd, 2880 int id, 2881 UINT fsModifiers, 2882 UINT vk); 2883 2884 DWORD 2885 NTAPI 2886 NtUserRegisterTasklist( 2887 DWORD Unknown0); 2888 2889 UINT 2890 NTAPI 2891 NtUserRegisterWindowMessage( 2892 PUNICODE_STRING MessageName); 2893 2894 DWORD 2895 NTAPI 2896 NtUserRemoteConnect( 2897 DWORD dwUnknown1, 2898 DWORD dwUnknown2, 2899 DWORD dwUnknown3); 2900 2901 DWORD 2902 NTAPI 2903 NtUserRemoteRedrawRectangle( 2904 DWORD dwUnknown1, 2905 DWORD dwUnknown2, 2906 DWORD dwUnknown3, 2907 DWORD dwUnknown4); 2908 2909 DWORD 2910 NTAPI 2911 NtUserRemoteRedrawScreen(VOID); 2912 2913 DWORD 2914 NTAPI 2915 NtUserRemoteStopScreenUpdates(VOID); 2916 2917 HANDLE 2918 NTAPI 2919 NtUserRemoveProp( 2920 HWND hWnd, 2921 ATOM Atom); 2922 2923 HDESK 2924 NTAPI 2925 NtUserResolveDesktop( 2926 IN HANDLE ProcessHandle, 2927 IN PUNICODE_STRING DesktopPath, 2928 IN BOOL bInherit, 2929 OUT HWINSTA* phWinSta); 2930 2931 DWORD 2932 NTAPI 2933 NtUserResolveDesktopForWOW( 2934 DWORD Unknown0); 2935 2936 BOOL 2937 NTAPI 2938 NtUserSBGetParms( 2939 HWND hwnd, 2940 int fnBar, 2941 PSBDATA pSBData, 2942 LPSCROLLINFO lpsi); 2943 2944 BOOL 2945 NTAPI 2946 NtUserScrollDC( 2947 HDC hDC, 2948 int dx, 2949 int dy, 2950 CONST RECT *lprcScroll, 2951 CONST RECT *lprcClip , 2952 HRGN hrgnUpdate, 2953 LPRECT lprcUpdate); 2954 2955 DWORD 2956 NTAPI 2957 NtUserScrollWindowEx( 2958 HWND hWnd, 2959 INT dx, 2960 INT dy, 2961 const RECT *rect, 2962 const RECT *clipRect, 2963 HRGN hrgnUpdate, 2964 LPRECT rcUpdate, 2965 UINT flags); 2966 2967 UINT 2968 NTAPI 2969 NtUserSendInput( 2970 UINT nInputs, 2971 LPINPUT pInput, 2972 INT cbSize); 2973 2974 HWND 2975 NTAPI 2976 NtUserSetActiveWindow( 2977 HWND Wnd); 2978 2979 DWORD 2980 NTAPI 2981 NtUserSetAppImeLevel( 2982 DWORD dwUnknown1, 2983 DWORD dwUnknown2); 2984 2985 HWND 2986 NTAPI 2987 NtUserSetCapture( 2988 HWND Wnd); 2989 2990 ULONG_PTR 2991 NTAPI 2992 NtUserSetClassLong( 2993 HWND hWnd, 2994 INT Offset, 2995 ULONG_PTR dwNewLong, 2996 BOOL Ansi); 2997 2998 WORD 2999 NTAPI 3000 NtUserSetClassWord( 3001 HWND hWnd, 3002 INT nIndex, 3003 WORD wNewWord); 3004 3005 HANDLE 3006 NTAPI 3007 NtUserSetClipboardData( 3008 UINT fmt, 3009 HANDLE hMem, 3010 PSETCLIPBDATA scd); 3011 3012 HWND 3013 NTAPI 3014 NtUserSetClipboardViewer( 3015 HWND hWndNewViewer); 3016 3017 HPALETTE 3018 NTAPI 3019 NtUserSelectPalette( 3020 HDC hDC, 3021 HPALETTE hpal, 3022 BOOL ForceBackground); 3023 3024 DWORD 3025 NTAPI 3026 NtUserSetConsoleReserveKeys( 3027 DWORD Unknown0, 3028 DWORD Unknown1); 3029 3030 HCURSOR 3031 NTAPI 3032 NtUserSetCursor( 3033 HCURSOR hCursor); 3034 3035 BOOL 3036 NTAPI 3037 NtUserSetCursorContents( 3038 HANDLE Handle, 3039 PICONINFO IconInfo); 3040 3041 BOOL 3042 NTAPI 3043 NtUserSetCursorIconData( 3044 _In_ HCURSOR hCursor, 3045 _In_opt_ PUNICODE_STRING pustrModule, 3046 _In_opt_ PUNICODE_STRING puSrcName, 3047 _In_ const CURSORDATA *pCursorData); 3048 3049 typedef struct _tagFINDEXISTINGCURICONPARAM 3050 { 3051 BOOL bIcon; 3052 LONG cx; 3053 LONG cy; 3054 } FINDEXISTINGCURICONPARAM; 3055 3056 HICON 3057 NTAPI 3058 NtUserFindExistingCursorIcon( 3059 _In_ PUNICODE_STRING pustrModule, 3060 _In_ PUNICODE_STRING pustrRsrc, 3061 _In_ FINDEXISTINGCURICONPARAM *param); 3062 3063 DWORD 3064 NTAPI 3065 NtUserSetDbgTag( 3066 DWORD Unknown0, 3067 DWORD Unknown1); 3068 3069 DWORD 3070 APIENTRY 3071 NtUserSetDbgTagCount( 3072 DWORD Unknown0); 3073 3074 HWND 3075 NTAPI 3076 NtUserSetFocus( 3077 HWND hWnd); 3078 3079 DWORD 3080 NTAPI 3081 NtUserSetImeHotKey( 3082 DWORD Unknown0, 3083 DWORD Unknown1, 3084 DWORD Unknown2, 3085 DWORD Unknown3, 3086 DWORD Unknown4); 3087 3088 DWORD 3089 NTAPI 3090 NtUserSetImeInfoEx( 3091 PIMEINFOEX pImeInfoEx); 3092 3093 DWORD 3094 NTAPI 3095 NtUserSetImeOwnerWindow( 3096 DWORD Unknown0, 3097 DWORD Unknown1); 3098 3099 DWORD 3100 NTAPI 3101 NtUserSetInformationProcess( 3102 DWORD dwUnknown1, 3103 DWORD dwUnknown2, 3104 DWORD dwUnknown3, 3105 DWORD dwUnknown4); 3106 3107 NTSTATUS 3108 NTAPI 3109 NtUserSetInformationThread( 3110 IN HANDLE ThreadHandle, 3111 IN USERTHREADINFOCLASS ThreadInformationClass, 3112 IN PVOID ThreadInformation, 3113 IN ULONG ThreadInformationLength); 3114 3115 DWORD 3116 NTAPI 3117 NtUserSetInternalWindowPos( 3118 HWND hwnd, 3119 UINT showCmd, 3120 LPRECT rect, 3121 LPPOINT pt); 3122 3123 BOOL 3124 NTAPI 3125 NtUserSetKeyboardState( 3126 LPBYTE lpKeyState); 3127 3128 BOOL 3129 NTAPI 3130 NtUserSetLayeredWindowAttributes( 3131 HWND hwnd, 3132 COLORREF crKey, 3133 BYTE bAlpha, 3134 DWORD dwFlags); 3135 3136 BOOL 3137 NTAPI 3138 NtUserSetLogonNotifyWindow( 3139 HWND hWnd); 3140 3141 BOOL 3142 NTAPI 3143 NtUserSetObjectInformation( 3144 HANDLE hObject, 3145 DWORD nIndex, 3146 PVOID pvInformation, 3147 DWORD nLength); 3148 3149 HWND 3150 NTAPI 3151 NtUserSetParent( 3152 HWND hWndChild, 3153 HWND hWndNewParent); 3154 3155 BOOL 3156 NTAPI 3157 NtUserSetProcessWindowStation( 3158 HWINSTA hWindowStation); 3159 3160 BOOL 3161 NTAPI 3162 NtUserSetProp( 3163 HWND hWnd, 3164 ATOM Atom, 3165 HANDLE Data); 3166 3167 DWORD 3168 NTAPI 3169 NtUserSetRipFlags( 3170 DWORD Unknown0); 3171 3172 DWORD 3173 NTAPI 3174 NtUserSetScrollInfo( 3175 HWND hwnd, 3176 int fnBar, 3177 LPCSCROLLINFO lpsi, 3178 BOOL bRedraw); 3179 3180 BOOL 3181 NTAPI 3182 NtUserSetShellWindowEx( 3183 HWND hwndShell, 3184 HWND hwndShellListView); 3185 3186 BOOL 3187 NTAPI 3188 NtUserSetSysColors( 3189 int cElements, 3190 IN CONST INT *lpaElements, 3191 IN CONST COLORREF *lpaRgbValues, 3192 FLONG Flags); 3193 3194 BOOL 3195 NTAPI 3196 NtUserSetSystemCursor( 3197 HCURSOR hcur, 3198 DWORD id); 3199 3200 BOOL 3201 NTAPI 3202 NtUserSetThreadDesktop( 3203 HDESK hDesktop); 3204 3205 DWORD 3206 NTAPI 3207 NtUserSetThreadState( 3208 DWORD Unknown0, 3209 DWORD Unknown1); 3210 3211 UINT_PTR 3212 NTAPI 3213 NtUserSetSystemTimer( 3214 HWND hWnd, 3215 UINT_PTR nIDEvent, 3216 UINT uElapse, 3217 TIMERPROC lpTimerFunc); 3218 3219 DWORD 3220 NTAPI 3221 NtUserSetThreadLayoutHandles( 3222 DWORD dwUnknown1, 3223 DWORD dwUnknown2); 3224 3225 UINT_PTR 3226 NTAPI 3227 NtUserSetTimer( 3228 HWND hWnd, 3229 UINT_PTR nIDEvent, 3230 UINT uElapse, 3231 TIMERPROC lpTimerFunc); 3232 3233 BOOL 3234 NTAPI 3235 NtUserSetWindowFNID( 3236 HWND hWnd, 3237 WORD fnID); 3238 3239 LONG 3240 NTAPI 3241 NtUserSetWindowLong( 3242 HWND hWnd, 3243 DWORD Index, 3244 LONG NewValue, 3245 BOOL Ansi); 3246 3247 #ifdef _WIN64 3248 LONG_PTR 3249 NTAPI 3250 NtUserSetWindowLongPtr( 3251 HWND hWnd, 3252 DWORD Index, 3253 LONG_PTR NewValue, 3254 BOOL Ansi); 3255 #endif // _WIN64 3256 3257 BOOL 3258 NTAPI 3259 NtUserSetWindowPlacement( 3260 HWND hWnd, 3261 WINDOWPLACEMENT *lpwndpl); 3262 3263 BOOL 3264 NTAPI 3265 NtUserSetWindowPos( 3266 HWND hWnd, 3267 HWND hWndInsertAfter, 3268 int X, 3269 int Y, 3270 int cx, 3271 int cy, 3272 UINT uFlags); 3273 3274 INT 3275 NTAPI 3276 NtUserSetWindowRgn( 3277 HWND hWnd, 3278 HRGN hRgn, 3279 BOOL bRedraw); 3280 3281 HHOOK 3282 NTAPI 3283 NtUserSetWindowsHookAW( 3284 int idHook, 3285 HOOKPROC lpfn, 3286 BOOL Ansi); 3287 3288 HHOOK 3289 NTAPI 3290 NtUserSetWindowsHookEx( 3291 HINSTANCE Mod, 3292 PUNICODE_STRING ModuleName, 3293 DWORD ThreadId, 3294 int HookId, 3295 HOOKPROC HookProc, 3296 BOOL Ansi); 3297 3298 BOOL 3299 NTAPI 3300 NtUserSetWindowStationUser( 3301 IN HWINSTA hWindowStation, 3302 IN PLUID pluid, 3303 IN PSID psid OPTIONAL, 3304 IN DWORD size); 3305 3306 WORD 3307 NTAPI 3308 NtUserSetWindowWord( 3309 HWND hWnd, 3310 INT Index, 3311 WORD NewVal); 3312 3313 HWINEVENTHOOK 3314 NTAPI 3315 NtUserSetWinEventHook( 3316 UINT eventMin, 3317 UINT eventMax, 3318 HMODULE hmodWinEventProc, 3319 PUNICODE_STRING puString, 3320 WINEVENTPROC lpfnWinEventProc, 3321 DWORD idProcess, 3322 DWORD idThread, 3323 UINT dwflags); 3324 3325 BOOL 3326 NTAPI 3327 NtUserShowCaret( 3328 HWND hWnd); 3329 3330 BOOL 3331 NTAPI 3332 NtUserHideCaret( 3333 HWND hWnd); 3334 3335 DWORD 3336 NTAPI 3337 NtUserShowScrollBar( 3338 HWND hWnd, 3339 int wBar, 3340 DWORD bShow); 3341 3342 BOOL 3343 NTAPI 3344 NtUserShowWindow( 3345 HWND hWnd, 3346 LONG nCmdShow); 3347 3348 BOOL 3349 NTAPI 3350 NtUserShowWindowAsync( 3351 HWND hWnd, 3352 LONG nCmdShow); 3353 3354 BOOL 3355 NTAPI 3356 NtUserSoundSentry(VOID); 3357 3358 BOOL 3359 NTAPI 3360 NtUserSwitchDesktop( 3361 HDESK hDesktop); 3362 3363 BOOL 3364 NTAPI 3365 NtUserSystemParametersInfo( 3366 UINT uiAction, 3367 UINT uiParam, 3368 PVOID pvParam, 3369 UINT fWinIni); 3370 3371 DWORD 3372 NTAPI 3373 NtUserTestForInteractiveUser( 3374 DWORD dwUnknown1); 3375 3376 INT 3377 NTAPI 3378 NtUserToUnicodeEx( 3379 UINT wVirtKey, 3380 UINT wScanCode, 3381 PBYTE lpKeyState, 3382 LPWSTR pwszBuff, 3383 int cchBuff, 3384 UINT wFlags, 3385 HKL dwhkl); 3386 3387 BOOL 3388 NTAPI 3389 NtUserTrackMouseEvent( 3390 LPTRACKMOUSEEVENT lpEventTrack); 3391 3392 int 3393 NTAPI 3394 NtUserTranslateAccelerator( 3395 HWND Window, 3396 HACCEL Table, 3397 LPMSG Message); 3398 3399 BOOL 3400 NTAPI 3401 NtUserTranslateMessage( 3402 LPMSG lpMsg, 3403 UINT flags ); 3404 3405 BOOL 3406 NTAPI 3407 NtUserUnhookWindowsHookEx( 3408 HHOOK Hook); 3409 3410 BOOL 3411 NTAPI 3412 NtUserUnhookWinEvent( 3413 HWINEVENTHOOK hWinEventHook); 3414 3415 BOOL 3416 NTAPI 3417 NtUserUnloadKeyboardLayout( 3418 HKL hKl); 3419 3420 BOOL 3421 NTAPI 3422 NtUserUnlockWindowStation( 3423 HWINSTA hWindowStation); 3424 3425 BOOL 3426 NTAPI 3427 NtUserUnregisterClass( 3428 PUNICODE_STRING ClassNameOrAtom, 3429 HINSTANCE hInstance, 3430 PCLSMENUNAME pClassMenuName); 3431 3432 BOOL 3433 NTAPI 3434 NtUserUnregisterHotKey( 3435 HWND hWnd, 3436 int id); 3437 3438 BOOL 3439 NTAPI 3440 NtUserUnregisterUserApiHook(VOID); 3441 3442 DWORD 3443 NTAPI 3444 NtUserUpdateInputContext( 3445 DWORD Unknown0, 3446 DWORD Unknown1, 3447 DWORD Unknown2); 3448 3449 DWORD 3450 NTAPI 3451 NtUserUpdateInstance( 3452 DWORD Unknown0, 3453 DWORD Unknown1, 3454 DWORD Unknown2); 3455 3456 BOOL 3457 NTAPI 3458 NtUserUpdateLayeredWindow( 3459 HWND hwnd, 3460 HDC hdcDst, 3461 POINT *pptDst, 3462 SIZE *psize, 3463 HDC hdcSrc, 3464 POINT *pptSrc, 3465 COLORREF crKey, 3466 BLENDFUNCTION *pblend, 3467 DWORD dwFlags, 3468 RECT *prcDirty); 3469 3470 BOOL 3471 NTAPI 3472 NtUserUpdatePerUserSystemParameters( 3473 DWORD dwReserved, 3474 BOOL bEnable); 3475 3476 BOOL 3477 NTAPI 3478 NtUserUserHandleGrantAccess( 3479 IN HANDLE hUserHandle, 3480 IN HANDLE hJob, 3481 IN BOOL bGrant); 3482 3483 BOOL 3484 NTAPI 3485 NtUserValidateHandleSecure( 3486 HANDLE hHdl); 3487 3488 BOOL 3489 NTAPI 3490 NtUserValidateRect( 3491 HWND hWnd, 3492 CONST RECT *lpRect); 3493 3494 BOOL 3495 APIENTRY 3496 NtUserValidateTimerCallback( 3497 LPARAM lParam); 3498 3499 DWORD 3500 NTAPI 3501 NtUserVkKeyScanEx( 3502 WCHAR wChar, 3503 HKL KeyboardLayout, 3504 BOOL bUsehHK); 3505 3506 DWORD 3507 NTAPI 3508 NtUserWaitForInputIdle( 3509 IN HANDLE hProcess, 3510 IN DWORD dwMilliseconds, 3511 IN BOOL bSharedWow); /* Always FALSE */ 3512 3513 DWORD 3514 NTAPI 3515 NtUserWaitForMsgAndEvent( 3516 DWORD Unknown0); 3517 3518 BOOL 3519 NTAPI 3520 NtUserWaitMessage(VOID); 3521 3522 DWORD 3523 NTAPI 3524 NtUserWin32PoolAllocationStats( 3525 DWORD Unknown0, 3526 DWORD Unknown1, 3527 DWORD Unknown2, 3528 DWORD Unknown3, 3529 DWORD Unknown4, 3530 DWORD Unknown5); 3531 3532 HWND 3533 NTAPI 3534 NtUserWindowFromPoint( 3535 LONG X, 3536 LONG Y); 3537 3538 DWORD 3539 NTAPI 3540 NtUserYieldTask(VOID); 3541 3542 /* NtUserBad 3543 * ReactOS-specific NtUser calls and their related structures, both which shouldn't exist. 3544 */ 3545 3546 #define NOPARAM_ROUTINE_ISCONSOLEMODE 0xffff0001 3547 #define ONEPARAM_ROUTINE_ENABLEPROCWNDGHSTING 0xfffe000d 3548 #define ONEPARAM_ROUTINE_GETDESKTOPMAPPING 0xfffe000e 3549 #define TWOPARAM_ROUTINE_SETMENUBARHEIGHT 0xfffd0050 3550 #define TWOPARAM_ROUTINE_SETGUITHRDHANDLE 0xfffd0051 3551 #define HWNDLOCK_ROUTINE_SETFOREGROUNDWINDOWMOUSE 0xfffd0052 3552 3553 #define MSQ_STATE_CAPTURE 0x1 3554 #define MSQ_STATE_ACTIVE 0x2 3555 #define MSQ_STATE_FOCUS 0x3 3556 #define MSQ_STATE_MENUOWNER 0x4 3557 #define MSQ_STATE_MOVESIZE 0x5 3558 #define MSQ_STATE_CARET 0x6 3559 3560 #define TWOPARAM_ROUTINE_ROS_UPDATEUISTATE 0x1004 3561 #define HWNDPARAM_ROUTINE_ROS_NOTIFYWINEVENT 0x1005 3562 3563 BOOL 3564 NTAPI 3565 NtUserGetMonitorInfo( 3566 IN HMONITOR hMonitor, 3567 OUT LPMONITORINFO pMonitorInfo); 3568 3569 /* Should be done in usermode */ 3570 3571 HMONITOR 3572 NTAPI 3573 NtUserMonitorFromPoint( 3574 IN POINT point, 3575 IN DWORD dwFlags); 3576 3577 HMONITOR 3578 NTAPI 3579 NtUserMonitorFromRect( 3580 IN LPCRECT pRect, 3581 IN DWORD dwFlags); 3582 3583 HMONITOR 3584 NTAPI 3585 NtUserMonitorFromWindow( 3586 IN HWND hWnd, 3587 IN DWORD dwFlags); 3588 3589 typedef struct _SETSCROLLBARINFO 3590 { 3591 int nTrackPos; 3592 int reserved; 3593 DWORD rgstate[CCHILDREN_SCROLLBAR + 1]; 3594 } SETSCROLLBARINFO, *PSETSCROLLBARINFO; 3595 3596 BOOL 3597 NTAPI 3598 NtUserSetScrollBarInfo( 3599 HWND hwnd, 3600 LONG idObject, 3601 SETSCROLLBARINFO *info); 3602 3603 #endif /* __WIN32K_NTUSER_H */ 3604 3605 /* EOF */ 3606