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