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