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 typedef struct tagIMEINFOEX 1210 { 1211 HKL hkl; 1212 IMEINFO ImeInfo; 1213 WCHAR wszUIClass[16]; 1214 ULONG fdwInitConvMode; 1215 INT fInitOpen; 1216 INT fLoadFlag; 1217 DWORD dwProdVersion; 1218 DWORD dwImeWinVersion; 1219 WCHAR wszImeDescription[50]; 1220 WCHAR wszImeFile[80]; 1221 struct 1222 { 1223 INT fSysWow64Only:1; 1224 INT fCUASLayer:1; 1225 }; 1226 } IMEINFOEX, *PIMEINFOEX; 1227 1228 typedef enum IMEINFOEXCLASS 1229 { 1230 ImeInfoExKeyboardLayout, 1231 ImeInfoExKeyboardLayoutTFS, 1232 ImeInfoExImeWindow, 1233 ImeInfoExImeFileName 1234 } IMEINFOEXCLASS; 1235 1236 #define IS_IME_HKL(hkl) ((((ULONG_PTR)(hkl)) & 0xF0000000) == 0xE0000000) 1237 #define IS_IMM_MODE() (gpsi && (gpsi->dwSRVIFlags & SRVINFO_IMM32)) 1238 #define IS_CICERO_MODE() (gpsi && (gpsi->dwSRVIFlags & SRVINFO_CICERO_ENABLED)) 1239 #define IS_16BIT_MODE() (GetWin32ClientInfo()->dwTIFlags & TIF_16BIT) 1240 1241 typedef struct tagIMEUI 1242 { 1243 PWND spwnd; 1244 HIMC hIMC; 1245 HWND hwndIMC; 1246 HKL hKL; 1247 HWND hwndUI; 1248 LONG nCntInIMEProc; 1249 struct { 1250 UINT fShowStatus:1; 1251 UINT fActivate:1; 1252 UINT fDestroy:1; 1253 UINT fDefault:1; 1254 UINT fChildThreadDef:1; 1255 UINT fCtrlShowStatus:1; 1256 UINT fFreeActiveEvent:1; 1257 }; 1258 DWORD dwLastStatus; 1259 } IMEUI, *PIMEUI; 1260 1261 /* Window Extra data container. */ 1262 typedef struct _IMEWND 1263 { 1264 WND wnd; 1265 PIMEUI pimeui; 1266 } IMEWND, *PIMEWND; 1267 1268 DWORD 1269 NTAPI 1270 NtUserAssociateInputContext(HWND hWnd, HIMC hIMC, DWORD dwFlags); 1271 1272 NTSTATUS 1273 NTAPI 1274 NtUserBuildHimcList(DWORD dwThreadId, DWORD dwCount, HIMC *phList, LPDWORD pdwCount); 1275 1276 DWORD 1277 NTAPI 1278 NtUserCalcMenuBar( 1279 HWND hwnd, 1280 DWORD x, 1281 DWORD width, 1282 DWORD y, 1283 LPRECT prc); 1284 1285 DWORD 1286 NTAPI 1287 NtUserCheckMenuItem( 1288 HMENU hmenu, 1289 UINT uIDCheckItem, 1290 UINT uCheck); 1291 1292 DWORD 1293 NTAPI 1294 NtUserCtxDisplayIOCtl( 1295 DWORD dwUnknown1, 1296 DWORD dwUnknown2, 1297 DWORD dwUnknown3); 1298 1299 DWORD 1300 APIENTRY 1301 NtUserDbgWin32HeapFail( 1302 DWORD Unknown0, 1303 DWORD Unknown1); 1304 1305 DWORD 1306 APIENTRY 1307 NtUserDbgWin32HeapStat( 1308 DWORD Unknown0, 1309 DWORD Unknown1); 1310 1311 BOOL 1312 NTAPI 1313 NtUserDeleteMenu( 1314 HMENU hMenu, 1315 UINT uPosition, 1316 UINT uFlags); 1317 1318 BOOL 1319 NTAPI 1320 NtUserDestroyMenu( 1321 HMENU hMenu); 1322 1323 DWORD 1324 NTAPI 1325 NtUserDrawMenuBarTemp( 1326 HWND hWnd, 1327 HDC hDC, 1328 PRECT hRect, 1329 HMENU hMenu, 1330 HFONT hFont); 1331 1332 UINT 1333 NTAPI 1334 NtUserEnableMenuItem( 1335 HMENU hMenu, 1336 UINT uIDEnableItem, 1337 UINT uEnable); 1338 1339 BOOL 1340 NTAPI 1341 NtUserEndMenu(VOID); 1342 1343 BOOL 1344 NTAPI 1345 NtUserGetMenuBarInfo( 1346 HWND hwnd, 1347 LONG idObject, 1348 LONG idItem, 1349 PMENUBARINFO pmbi); 1350 1351 UINT 1352 NTAPI 1353 NtUserGetMenuIndex( 1354 HMENU hMenu, 1355 HMENU hSubMenu); 1356 1357 BOOL 1358 NTAPI 1359 NtUserGetMenuItemRect( 1360 HWND hWnd, 1361 HMENU hMenu, 1362 UINT uItem, 1363 LPRECT lprcItem); 1364 1365 HMENU 1366 NTAPI 1367 NtUserGetSystemMenu( 1368 HWND hWnd, 1369 BOOL bRevert); 1370 1371 BOOL 1372 NTAPI 1373 NtUserHiliteMenuItem( 1374 HWND hWnd, 1375 HMENU hMenu, 1376 UINT uItemHilite, 1377 UINT uHilite); 1378 1379 int 1380 NTAPI 1381 NtUserMenuItemFromPoint( 1382 HWND hWnd, 1383 HMENU hMenu, 1384 DWORD X, 1385 DWORD Y); 1386 1387 BOOL 1388 NTAPI 1389 NtUserRemoveMenu( 1390 HMENU hMenu, 1391 UINT uPosition, 1392 UINT uFlags); 1393 1394 BOOL 1395 NTAPI 1396 NtUserSetMenu( 1397 HWND hWnd, 1398 HMENU hMenu, 1399 BOOL bRepaint); 1400 1401 BOOL 1402 NTAPI 1403 NtUserSetMenuContextHelpId( 1404 HMENU hmenu, 1405 DWORD dwContextHelpId); 1406 1407 BOOL 1408 NTAPI 1409 NtUserSetMenuDefaultItem( 1410 HMENU hMenu, 1411 UINT uItem, 1412 UINT fByPos); 1413 1414 BOOL 1415 NTAPI 1416 NtUserSetMenuFlagRtoL( 1417 HMENU hMenu); 1418 1419 BOOL 1420 NTAPI 1421 NtUserSetSystemMenu( 1422 HWND hWnd, 1423 HMENU hMenu); 1424 1425 BOOL 1426 NTAPI 1427 NtUserThunkedMenuInfo( 1428 HMENU hMenu, 1429 LPCMENUINFO lpcmi); 1430 1431 BOOL 1432 NTAPI 1433 NtUserThunkedMenuItemInfo( 1434 HMENU hMenu, 1435 UINT uItem, 1436 BOOL fByPosition, 1437 BOOL bInsert, 1438 LPMENUITEMINFOW lpmii, 1439 PUNICODE_STRING lpszCaption); 1440 1441 BOOL 1442 NTAPI 1443 NtUserTrackPopupMenuEx( 1444 HMENU hmenu, 1445 UINT fuFlags, 1446 int x, 1447 int y, 1448 HWND hwnd, 1449 LPTPMPARAMS lptpm); 1450 1451 HKL 1452 NTAPI 1453 NtUserActivateKeyboardLayout( 1454 HKL hKL, 1455 ULONG Flags); 1456 1457 DWORD 1458 NTAPI 1459 NtUserAlterWindowStyle( 1460 HWND hWnd, 1461 DWORD Index, 1462 LONG NewValue); 1463 1464 BOOL 1465 NTAPI 1466 NtUserAttachThreadInput( 1467 IN DWORD idAttach, 1468 IN DWORD idAttachTo, 1469 IN BOOL fAttach); 1470 1471 HDC NTAPI 1472 NtUserBeginPaint( 1473 HWND hWnd, 1474 PAINTSTRUCT *lPs); 1475 1476 BOOL 1477 NTAPI 1478 NtUserBitBltSysBmp( 1479 HDC hdc, 1480 INT nXDest, 1481 INT nYDest, 1482 INT nWidth, 1483 INT nHeight, 1484 INT nXSrc, 1485 INT nYSrc, 1486 DWORD dwRop); 1487 1488 BOOL 1489 NTAPI 1490 NtUserBlockInput( 1491 BOOL BlockIt); 1492 1493 NTSTATUS 1494 NTAPI 1495 NtUserBuildHwndList( 1496 HDESK hDesktop, 1497 HWND hwndParent, 1498 BOOLEAN bChildren, 1499 ULONG dwThreadId, 1500 ULONG cHwnd, 1501 HWND *phwndList, 1502 ULONG *pcHwndNeeded); 1503 1504 NTSTATUS 1505 NTAPI 1506 NtUserBuildNameList( 1507 HWINSTA hWinSta, 1508 ULONG dwSize, 1509 PVOID lpBuffer, 1510 PULONG pRequiredSize); 1511 1512 NTSTATUS 1513 NTAPI 1514 NtUserBuildPropList( 1515 HWND hWnd, 1516 LPVOID Buffer, 1517 DWORD BufferSize, 1518 DWORD *Count); 1519 1520 /* apfnSimpleCall indices from Windows XP SP 2 */ 1521 /* TODO: Check for differences in Windows 2000, 2003 and 2008 */ 1522 #define WIN32K_VERSION NTDDI_WINXPSP2 /* FIXME: this should go somewhere else */ 1523 1524 enum SimpleCallRoutines 1525 { 1526 NOPARAM_ROUTINE_CREATEMENU, 1527 NOPARAM_ROUTINE_CREATEMENUPOPUP, 1528 #if (WIN32K_VERSION >= NTDDI_VISTA) 1529 NOPARAM_ROUTINE_ALLOWFOREGNDACTIVATION, 1530 NOPARAM_ROUTINE_MSQCLEARWAKEMASK, 1531 NOPARAM_ROUTINE_CREATESYSTEMTHREADS, 1532 NOPARAM_ROUTINE_DESTROY_CARET, 1533 #endif 1534 NOPARAM_ROUTINE_ENABLEPROCWNDGHSTING, 1535 #if (WIN32K_VERSION < NTDDI_VISTA) 1536 NOPARAM_ROUTINE_MSQCLEARWAKEMASK, 1537 NOPARAM_ROUTINE_ALLOWFOREGNDACTIVATION, 1538 NOPARAM_ROUTINE_DESTROY_CARET, 1539 #endif 1540 NOPARAM_ROUTINE_GETDEVICECHANGEINFO, 1541 NOPARAM_ROUTINE_GETIMESHOWSTATUS, 1542 NOPARAM_ROUTINE_GETINPUTDESKTOP, 1543 NOPARAM_ROUTINE_GETMSESSAGEPOS, 1544 #if (WIN32K_VERSION >= NTDDI_VISTA) 1545 NOPARAM_ROUTINE_HANDLESYSTHRDCREATFAIL, 1546 #else 1547 NOPARAM_ROUTINE_GETREMOTEPROCESSID, 1548 #endif 1549 NOPARAM_ROUTINE_HIDECURSORNOCAPTURE, 1550 NOPARAM_ROUTINE_LOADCURSANDICOS, 1551 #if (WIN32K_VERSION >= NTDDI_VISTA) 1552 NOPARAM_ROUTINE_LOADUSERAPIHOOK, 1553 NOPARAM_ROUTINE_PREPAREFORLOGOFF, /* 0x0f */ 1554 #endif 1555 NOPARAM_ROUTINE_RELEASECAPTURE, 1556 NOPARAM_ROUTINE_RESETDBLCLICK, 1557 NOPARAM_ROUTINE_ZAPACTIVEANDFOUS, 1558 NOPARAM_ROUTINE_REMOTECONSHDWSTOP, 1559 NOPARAM_ROUTINE_REMOTEDISCONNECT, 1560 NOPARAM_ROUTINE_REMOTELOGOFF, 1561 NOPARAM_ROUTINE_REMOTENTSECURITY, 1562 NOPARAM_ROUTINE_REMOTESHDWSETUP, 1563 NOPARAM_ROUTINE_REMOTESHDWSTOP, 1564 NOPARAM_ROUTINE_REMOTEPASSTHRUENABLE, 1565 NOPARAM_ROUTINE_REMOTEPASSTHRUDISABLE, 1566 NOPARAM_ROUTINE_REMOTECONNECTSTATE, 1567 NOPARAM_ROUTINE_UPDATEPERUSERIMMENABLING, 1568 NOPARAM_ROUTINE_USERPWRCALLOUTWORKER, 1569 #if (WIN32K_VERSION >= NTDDI_VISTA) 1570 NOPARAM_ROUTINE_WAKERITFORSHTDWN, 1571 #endif 1572 NOPARAM_ROUTINE_INIT_MESSAGE_PUMP, 1573 NOPARAM_ROUTINE_UNINIT_MESSAGE_PUMP, 1574 #if (WIN32K_VERSION < NTDDI_VISTA) 1575 NOPARAM_ROUTINE_LOADUSERAPIHOOK, 1576 #endif 1577 ONEPARAM_ROUTINE_BEGINDEFERWNDPOS, 1578 #if (WIN32K_VERSION >= NTDDI_VISTA) 1579 ONEPARAM_ROUTINE_GETSENDMSGRECVR, 1580 #endif 1581 ONEPARAM_ROUTINE_WINDOWFROMDC, 1582 ONEPARAM_ROUTINE_ALLOWSETFOREGND, 1583 ONEPARAM_ROUTINE_CREATEEMPTYCUROBJECT, 1584 #if (WIN32K_VERSION < NTDDI_VISTA) 1585 ONEPARAM_ROUTINE_CREATESYSTEMTHREADS, 1586 #endif 1587 ONEPARAM_ROUTINE_CSDDEUNINITIALIZE, 1588 ONEPARAM_ROUTINE_DIRECTEDYIELD, 1589 ONEPARAM_ROUTINE_ENUMCLIPBOARDFORMATS, 1590 #if (WIN32K_VERSION < NTDDI_VISTA) 1591 ONEPARAM_ROUTINE_GETCURSORPOS, 1592 #endif 1593 ONEPARAM_ROUTINE_GETINPUTEVENT, 1594 ONEPARAM_ROUTINE_GETKEYBOARDLAYOUT, 1595 ONEPARAM_ROUTINE_GETKEYBOARDTYPE, 1596 ONEPARAM_ROUTINE_GETPROCDEFLAYOUT, 1597 ONEPARAM_ROUTINE_GETQUEUESTATUS, 1598 ONEPARAM_ROUTINE_GETWINSTAINFO, 1599 #if (WIN32K_VERSION < NTDDI_VISTA) 1600 ONEPARAM_ROUTINE_HANDLESYSTHRDCREATFAIL, 1601 #endif 1602 ONEPARAM_ROUTINE_LOCKFOREGNDWINDOW, 1603 ONEPARAM_ROUTINE_LOADFONTS, 1604 ONEPARAM_ROUTINE_MAPDEKTOPOBJECT, 1605 ONEPARAM_ROUTINE_MESSAGEBEEP, 1606 ONEPARAM_ROUTINE_PLAYEVENTSOUND, 1607 ONEPARAM_ROUTINE_POSTQUITMESSAGE, 1608 #if (WIN32K_VERSION < NTDDI_VISTA) 1609 ONEPARAM_ROUTINE_PREPAREFORLOGOFF, 1610 #endif 1611 ONEPARAM_ROUTINE_REALIZEPALETTE, 1612 ONEPARAM_ROUTINE_REGISTERLPK, 1613 #if (WIN32K_VERSION >= NTDDI_VISTA) 1614 ONEPARAM_ROUTINE_REGISTERSYSTEMTHREAD, 1615 #endif 1616 ONEPARAM_ROUTINE_REMOTERECONNECT, 1617 ONEPARAM_ROUTINE_REMOTETHINWIRESTATUS, 1618 ONEPARAM_ROUTINE_RELEASEDC, 1619 #if (WIN32K_VERSION >= NTDDI_VISTA) 1620 ONEPARAM_ROUTINE_REMOTENOTIFY, 1621 #endif 1622 ONEPARAM_ROUTINE_REPLYMESSAGE, 1623 ONEPARAM_ROUTINE_SETCARETBLINKTIME, 1624 ONEPARAM_ROUTINE_SETDBLCLICKTIME, 1625 #if (WIN32K_VERSION < NTDDI_VISTA) 1626 ONEPARAM_ROUTINE_SETIMESHOWSTATUS, 1627 #endif 1628 ONEPARAM_ROUTINE_SETMESSAGEEXTRAINFO, 1629 ONEPARAM_ROUTINE_SETPROCDEFLAYOUT, 1630 #if (WIN32K_VERSION >= NTDDI_VISTA) 1631 ONEPARAM_ROUTINE_SETWATERMARKSTRINGS, 1632 #endif 1633 ONEPARAM_ROUTINE_SHOWCURSOR, 1634 ONEPARAM_ROUTINE_SHOWSTARTGLASS, 1635 ONEPARAM_ROUTINE_SWAPMOUSEBUTTON, 1636 X_ROUTINE_WOWMODULEUNLOAD, 1637 #if (WIN32K_VERSION < NTDDI_VISTA) 1638 X_ROUTINE_REMOTENOTIFY, 1639 #endif 1640 HWND_ROUTINE_DEREGISTERSHELLHOOKWINDOW, 1641 HWND_ROUTINE_DWP_GETENABLEDPOPUP, 1642 HWND_ROUTINE_GETWNDCONTEXTHLPID, 1643 HWND_ROUTINE_REGISTERSHELLHOOKWINDOW, 1644 HWND_ROUTINE_SETMSGBOX, 1645 HWNDOPT_ROUTINE_SETPROGMANWINDOW, 1646 HWNDOPT_ROUTINE_SETTASKMANWINDOW, 1647 HWNDPARAM_ROUTINE_GETCLASSICOCUR, 1648 HWNDPARAM_ROUTINE_CLEARWINDOWSTATE, 1649 HWNDPARAM_ROUTINE_KILLSYSTEMTIMER, 1650 HWNDPARAM_ROUTINE_SETDIALOGPOINTER, 1651 HWNDPARAM_ROUTINE_SETVISIBLE, 1652 HWNDPARAM_ROUTINE_SETWNDCONTEXTHLPID, 1653 HWNDPARAM_ROUTINE_SETWINDOWSTATE, 1654 HWNDLOCK_ROUTINE_WINDOWHASSHADOW, /* correct prefix ? */ 1655 HWNDLOCK_ROUTINE_ARRANGEICONICWINDOWS, 1656 HWNDLOCK_ROUTINE_DRAWMENUBAR, 1657 HWNDLOCK_ROUTINE_CHECKIMESHOWSTATUSINTHRD, 1658 HWNDLOCK_ROUTINE_GETSYSMENUHANDLE, 1659 HWNDLOCK_ROUTINE_REDRAWFRAME, 1660 HWNDLOCK_ROUTINE_REDRAWFRAMEANDHOOK, 1661 HWNDLOCK_ROUTINE_SETDLGSYSMENU, 1662 HWNDLOCK_ROUTINE_SETFOREGROUNDWINDOW, 1663 HWNDLOCK_ROUTINE_SETSYSMENU, 1664 HWNDLOCK_ROUTINE_UPDATECKIENTRECT, 1665 HWNDLOCK_ROUTINE_UPDATEWINDOW, 1666 TWOPARAM_ROUTINE_IMESHOWSTATUSCHANGE, 1667 TWOPARAM_ROUTINE_ENABLEWINDOW, 1668 TWOPARAM_ROUTINE_REDRAWTITLE, 1669 TWOPARAM_ROUTINE_SHOWOWNEDPOPUPS, 1670 TWOPARAM_ROUTINE_SWITCHTOTHISWINDOW, 1671 TWOPARAM_ROUTINE_UPDATEWINDOWS, 1672 TWOPARAM_ROUTINE_VALIDATERGN, 1673 #if (WIN32K_VERSION >= NTDDI_VISTA) 1674 TWOPARAM_ROUTINE_CHANGEWNDMSGFILTER, 1675 TWOPARAM_ROUTINE_GETCURSORPOS, 1676 #endif 1677 TWOPARAM_ROUTINE_GETHDEVNAME, 1678 TWOPARAM_ROUTINE_INITANSIOEM, 1679 TWOPARAM_ROUTINE_NLSSENDIMENOTIFY, 1680 #if (WIN32K_VERSION >= NTDDI_VISTA) 1681 TWOPARAM_ROUTINE_REGISTERGHSTWND, 1682 #endif 1683 TWOPARAM_ROUTINE_REGISTERLOGONPROCESS, 1684 #if (WIN32K_VERSION >= NTDDI_VISTA) 1685 TWOPARAM_ROUTINE_REGISTERSBLFROSTWND, 1686 #else 1687 TWOPARAM_ROUTINE_REGISTERSYSTEMTHREAD, 1688 #endif 1689 TWOPARAM_ROUTINE_REGISTERUSERHUNGAPPHANDLERS, 1690 TWOPARAM_ROUTINE_SHADOWCLEANUP, 1691 TWOPARAM_ROUTINE_REMOTESHADOWSTART, 1692 TWOPARAM_ROUTINE_SETCARETPOS, 1693 TWOPARAM_ROUTINE_SETCURSORPOS, 1694 #if (WIN32K_VERSION >= NTDDI_VISTA) 1695 TWOPARAM_ROUTINE_SETPHYSCURSORPOS, 1696 #endif 1697 TWOPARAM_ROUTINE_UNHOOKWINDOWSHOOK, 1698 TWOPARAM_ROUTINE_WOWCLEANUP 1699 }; 1700 1701 DWORD 1702 NTAPI 1703 NtUserCallHwnd( 1704 HWND hWnd, 1705 DWORD Routine); 1706 1707 BOOL 1708 NTAPI 1709 NtUserCallHwndLock( 1710 HWND hWnd, 1711 DWORD Routine); 1712 1713 HWND 1714 NTAPI 1715 NtUserCallHwndOpt( 1716 HWND hWnd, 1717 DWORD Routine); 1718 1719 DWORD 1720 NTAPI 1721 NtUserCallHwndParam( 1722 HWND hWnd, 1723 DWORD_PTR Param, 1724 DWORD Routine); 1725 1726 DWORD 1727 NTAPI 1728 NtUserCallHwndParamLock( 1729 HWND hWnd, 1730 DWORD_PTR Param, 1731 DWORD Routine); 1732 1733 BOOL 1734 NTAPI 1735 NtUserCallMsgFilter( 1736 LPMSG msg, 1737 INT code); 1738 1739 LRESULT 1740 NTAPI 1741 NtUserCallNextHookEx( 1742 int Code, 1743 WPARAM wParam, 1744 LPARAM lParam, 1745 BOOL Ansi); 1746 1747 DWORD_PTR 1748 NTAPI 1749 NtUserCallNoParam( 1750 DWORD Routine); 1751 1752 DWORD_PTR 1753 NTAPI 1754 NtUserCallOneParam( 1755 DWORD_PTR Param, 1756 DWORD Routine); 1757 1758 DWORD_PTR 1759 NTAPI 1760 NtUserCallTwoParam( 1761 DWORD_PTR Param1, 1762 DWORD_PTR Param2, 1763 DWORD Routine); 1764 1765 BOOL 1766 NTAPI 1767 NtUserChangeClipboardChain( 1768 HWND hWndRemove, 1769 HWND hWndNewNext); 1770 1771 LONG 1772 NTAPI 1773 NtUserChangeDisplaySettings( 1774 PUNICODE_STRING lpszDeviceName, 1775 LPDEVMODEW lpDevMode, 1776 DWORD dwflags, 1777 LPVOID lParam); 1778 1779 BOOL 1780 NTAPI 1781 NtUserCheckDesktopByThreadId( 1782 DWORD dwThreadId); 1783 1784 BOOL 1785 NTAPI 1786 NtUserCheckWindowThreadDesktop( 1787 HWND hwnd, 1788 DWORD dwThreadId, 1789 ULONG ReturnValue); 1790 1791 DWORD 1792 NTAPI 1793 NtUserCheckImeHotKey( 1794 UINT uVirtualKey, 1795 LPARAM lParam); 1796 1797 HWND NTAPI 1798 NtUserChildWindowFromPointEx( 1799 HWND Parent, 1800 LONG x, 1801 LONG y, 1802 UINT Flags); 1803 1804 BOOL 1805 NTAPI 1806 NtUserClipCursor( 1807 RECT *lpRect); 1808 1809 BOOL 1810 NTAPI 1811 NtUserCloseClipboard(VOID); 1812 1813 BOOL 1814 NTAPI 1815 NtUserCloseDesktop( 1816 HDESK hDesktop); 1817 1818 BOOL 1819 NTAPI 1820 NtUserCloseWindowStation( 1821 HWINSTA hWinSta); 1822 1823 /* Console commands for NtUserConsoleControl */ 1824 typedef enum _CONSOLECONTROL 1825 { 1826 ConsoleCtrlDesktopConsoleThread = 0, 1827 GuiConsoleWndClassAtom = 1, 1828 ConsoleMakePalettePublic = 5, 1829 ConsoleAcquireDisplayOwnership, 1830 } CONSOLECONTROL, *PCONSOLECONTROL; 1831 1832 typedef struct _DESKTOP_CONSOLE_THREAD 1833 { 1834 HDESK DesktopHandle; 1835 ULONG_PTR ThreadId; 1836 } DESKTOP_CONSOLE_THREAD, *PDESKTOP_CONSOLE_THREAD; 1837 1838 NTSTATUS 1839 APIENTRY 1840 NtUserConsoleControl( 1841 IN CONSOLECONTROL ConsoleCtrl, 1842 IN PVOID ConsoleCtrlInfo, 1843 IN ULONG ConsoleCtrlInfoLength); 1844 1845 HANDLE 1846 NTAPI 1847 NtUserConvertMemHandle( 1848 PVOID pData, 1849 DWORD cbData); 1850 1851 ULONG 1852 NTAPI 1853 NtUserCopyAcceleratorTable( 1854 HACCEL Table, 1855 LPACCEL Entries, 1856 ULONG EntriesCount); 1857 1858 DWORD 1859 NTAPI 1860 NtUserCountClipboardFormats(VOID); 1861 1862 HACCEL 1863 NTAPI 1864 NtUserCreateAcceleratorTable( 1865 LPACCEL Entries, 1866 ULONG EntriesCount); 1867 1868 BOOL 1869 NTAPI 1870 NtUserCreateCaret( 1871 HWND hWnd, 1872 HBITMAP hBitmap, 1873 int nWidth, 1874 int nHeight); 1875 1876 HDESK 1877 NTAPI 1878 NtUserCreateDesktop( 1879 POBJECT_ATTRIBUTES poa, 1880 PUNICODE_STRING lpszDesktopDevice, 1881 LPDEVMODEW lpdmw, 1882 DWORD dwFlags, 1883 ACCESS_MASK dwDesiredAccess); 1884 1885 HIMC 1886 NTAPI 1887 NtUserCreateInputContext(ULONG_PTR dwClientImcData); 1888 1889 NTSTATUS 1890 NTAPI 1891 NtUserCreateLocalMemHandle( 1892 HANDLE hMem, 1893 PVOID pData, 1894 DWORD cbData, 1895 DWORD *pcbData); 1896 1897 HWND 1898 NTAPI 1899 NtUserCreateWindowEx( 1900 DWORD dwExStyle, 1901 PLARGE_STRING plstrClassName, 1902 PLARGE_STRING plstrClsVersion, 1903 PLARGE_STRING plstrWindowName, 1904 DWORD dwStyle, 1905 int x, 1906 int y, 1907 int nWidth, 1908 int nHeight, 1909 HWND hWndParent, 1910 HMENU hMenu, 1911 HINSTANCE hInstance, 1912 LPVOID lpParam, 1913 DWORD dwFlags, 1914 PVOID acbiBuffer); 1915 1916 HWINSTA 1917 NTAPI 1918 NtUserCreateWindowStation( 1919 POBJECT_ATTRIBUTES ObjectAttributes, 1920 ACCESS_MASK dwDesiredAccess, 1921 DWORD Unknown2, 1922 DWORD Unknown3, 1923 DWORD Unknown4, 1924 DWORD Unknown5, 1925 DWORD Unknown6); 1926 1927 BOOL 1928 NTAPI 1929 NtUserDdeGetQualityOfService( 1930 IN HWND hwndClient, 1931 IN HWND hWndServer, 1932 OUT PSECURITY_QUALITY_OF_SERVICE pqosPrev); 1933 1934 DWORD 1935 NTAPI 1936 NtUserDdeInitialize( 1937 DWORD Unknown0, 1938 DWORD Unknown1, 1939 DWORD Unknown2, 1940 DWORD Unknown3, 1941 DWORD Unknown4); 1942 1943 BOOL 1944 NTAPI 1945 NtUserDdeSetQualityOfService( 1946 IN HWND hwndClient, 1947 IN PSECURITY_QUALITY_OF_SERVICE pqosNew, 1948 OUT PSECURITY_QUALITY_OF_SERVICE pqosPrev); 1949 1950 HDWP 1951 NTAPI 1952 NtUserDeferWindowPos( 1953 HDWP WinPosInfo, 1954 HWND Wnd, 1955 HWND WndInsertAfter, 1956 int x, 1957 int y, 1958 int cx, 1959 int cy, 1960 UINT Flags); 1961 1962 BOOL 1963 NTAPI 1964 NtUserDefSetText( 1965 HWND WindowHandle, 1966 PLARGE_STRING WindowText); 1967 1968 BOOLEAN 1969 NTAPI 1970 NtUserDestroyAcceleratorTable( 1971 HACCEL Table); 1972 1973 BOOL 1974 NTAPI 1975 NtUserDestroyCursor( 1976 _In_ HANDLE Handle, 1977 _In_ BOOL bForce); 1978 1979 BOOL 1980 NTAPI 1981 NtUserDestroyInputContext(HIMC hIMC); 1982 1983 BOOLEAN 1984 NTAPI 1985 NtUserDestroyWindow( 1986 HWND Wnd); 1987 1988 BOOL 1989 NTAPI 1990 NtUserDisableThreadIme( 1991 DWORD dwThreadID); 1992 1993 LRESULT 1994 NTAPI 1995 NtUserDispatchMessage( 1996 PMSG pMsg); 1997 1998 BOOL 1999 NTAPI 2000 NtUserDragDetect( 2001 HWND hWnd, 2002 POINT pt); 2003 2004 DWORD 2005 NTAPI 2006 NtUserDragObject( 2007 HWND hwnd1, 2008 HWND hwnd2, 2009 UINT u1, 2010 DWORD dw1, 2011 HCURSOR hc1); 2012 2013 BOOL 2014 NTAPI 2015 NtUserDrawAnimatedRects( 2016 HWND hwnd, 2017 INT idAni, 2018 RECT *lprcFrom, 2019 RECT *lprcTo); 2020 2021 BOOL 2022 NTAPI 2023 NtUserDrawCaption( 2024 HWND hWnd, 2025 HDC hDc, 2026 LPCRECT lpRc, 2027 UINT uFlags); 2028 2029 BOOL 2030 NTAPI 2031 NtUserDrawCaptionTemp( 2032 HWND hWnd, 2033 HDC hDC, 2034 LPCRECT lpRc, 2035 HFONT hFont, 2036 HICON hIcon, 2037 const PUNICODE_STRING str, 2038 UINT uFlags); 2039 2040 /* Used with NtUserDrawIconEx, last parameter. */ 2041 typedef struct _DRAWICONEXDATA 2042 { 2043 HBITMAP hbmMask; 2044 HBITMAP hbmColor; 2045 int cx; 2046 int cy; 2047 } DRAWICONEXDATA, *PDRAWICONEXDATA; 2048 2049 BOOL 2050 NTAPI 2051 NtUserDrawIconEx( 2052 HDC hdc, 2053 int xLeft, 2054 int yTop, 2055 HICON hIcon, 2056 int cxWidth, 2057 int cyWidth, 2058 UINT istepIfAniCur, 2059 HBRUSH hbrFlickerFreeDraw, 2060 UINT diFlags, 2061 BOOL bMetaHDC, 2062 PVOID pDIXData); 2063 2064 BOOL 2065 NTAPI 2066 NtUserEmptyClipboard(VOID); 2067 2068 BOOL 2069 NTAPI 2070 NtUserEnableScrollBar( 2071 HWND hWnd, 2072 UINT wSBflags, 2073 UINT wArrows); 2074 2075 BOOL 2076 NTAPI 2077 NtUserEndDeferWindowPosEx( 2078 HDWP WinPosInfo, 2079 BOOL bAsync); 2080 2081 BOOL 2082 NTAPI 2083 NtUserEndPaint( 2084 HWND hWnd, 2085 CONST PAINTSTRUCT *lPs); 2086 2087 BOOL 2088 NTAPI 2089 NtUserEnumDisplayDevices( 2090 PUNICODE_STRING lpDevice, /* device name */ 2091 DWORD iDevNum, /* display device */ 2092 PDISPLAY_DEVICEW lpDisplayDevice, /* device information */ 2093 DWORD dwFlags); /* reserved */ 2094 2095 /* 2096 BOOL 2097 NTAPI 2098 NtUserEnumDisplayMonitors( 2099 HDC hdc, 2100 LPCRECT lprcClip, 2101 MONITORENUMPROC lpfnEnum, 2102 LPARAM dwData); 2103 */ 2104 /* FIXME: The call below is ros-specific and should be rewritten to use the same params as the correct call above. */ 2105 INT 2106 NTAPI 2107 NtUserEnumDisplayMonitors( 2108 OPTIONAL IN HDC hDC, 2109 OPTIONAL IN LPCRECT pRect, 2110 OPTIONAL OUT HMONITOR *hMonitorList, 2111 OPTIONAL OUT LPRECT monitorRectList, 2112 OPTIONAL IN DWORD listSize); 2113 2114 2115 NTSTATUS 2116 NTAPI 2117 NtUserEnumDisplaySettings( 2118 PUNICODE_STRING lpszDeviceName, 2119 DWORD iModeNum, 2120 LPDEVMODEW lpDevMode, /* FIXME is this correct? */ 2121 DWORD dwFlags); 2122 2123 DWORD 2124 NTAPI 2125 NtUserEvent( 2126 DWORD Unknown0); 2127 2128 INT 2129 NTAPI 2130 NtUserExcludeUpdateRgn( 2131 HDC hDC, 2132 HWND hWnd); 2133 2134 BOOL 2135 NTAPI 2136 NtUserFillWindow( 2137 HWND hWndPaint, 2138 HWND hWndPaint1, 2139 HDC hDC, 2140 HBRUSH hBrush); 2141 2142 HWND 2143 NTAPI 2144 NtUserFindWindowEx( 2145 HWND hwndParent, 2146 HWND hwndChildAfter, 2147 PUNICODE_STRING ucClassName, 2148 PUNICODE_STRING ucWindowName, 2149 DWORD dwUnknown); 2150 2151 BOOL 2152 NTAPI 2153 NtUserFlashWindowEx( 2154 IN PFLASHWINFO pfwi); 2155 2156 BOOL 2157 NTAPI 2158 NtUserGetAltTabInfo( 2159 HWND hwnd, 2160 INT iItem, 2161 PALTTABINFO pati, 2162 LPWSTR pszItemText, 2163 UINT cchItemText, 2164 BOOL Ansi); 2165 2166 HWND 2167 NTAPI 2168 NtUserGetAncestor( 2169 HWND hWnd, 2170 UINT Flags); 2171 2172 DWORD 2173 NTAPI 2174 NtUserGetAppImeLevel(HWND hWnd); 2175 2176 SHORT 2177 NTAPI 2178 NtUserGetAsyncKeyState( 2179 INT Key); 2180 2181 _Success_(return != 0) 2182 _At_(pustrName->Buffer, _Out_z_bytecap_post_bytecount_(pustrName->MaximumLength, return * 2 + 2)) 2183 ULONG 2184 APIENTRY 2185 NtUserGetAtomName( 2186 _In_ ATOM atom, 2187 _Inout_ PUNICODE_STRING pustrName); 2188 2189 UINT 2190 NTAPI 2191 NtUserGetCaretBlinkTime(VOID); 2192 2193 BOOL 2194 NTAPI 2195 NtUserGetCaretPos( 2196 LPPOINT lpPoint); 2197 2198 BOOL 2199 NTAPI 2200 NtUserGetClassInfo( 2201 HINSTANCE hInstance, 2202 PUNICODE_STRING ClassName, 2203 LPWNDCLASSEXW wcex, 2204 LPWSTR *ppszMenuName, 2205 BOOL Ansi); 2206 2207 INT 2208 NTAPI 2209 NtUserGetClassName( 2210 HWND hWnd, 2211 BOOL Real, /* 0 GetClassNameW, 1 RealGetWindowClassA/W */ 2212 PUNICODE_STRING ClassName); 2213 2214 HANDLE 2215 NTAPI 2216 NtUserGetClipboardData( 2217 UINT fmt, 2218 PGETCLIPBDATA pgcd); 2219 2220 INT 2221 NTAPI 2222 NtUserGetClipboardFormatName( 2223 UINT uFormat, 2224 LPWSTR lpszFormatName, 2225 INT cchMaxCount); 2226 2227 HWND 2228 NTAPI 2229 NtUserGetClipboardOwner(VOID); 2230 2231 DWORD 2232 NTAPI 2233 NtUserGetClipboardSequenceNumber(VOID); 2234 2235 HWND 2236 NTAPI 2237 NtUserGetClipboardViewer(VOID); 2238 2239 BOOL 2240 NTAPI 2241 NtUserGetClipCursor( 2242 RECT *lpRect); 2243 2244 BOOL 2245 NTAPI 2246 NtUserGetComboBoxInfo( 2247 HWND hWnd, 2248 PCOMBOBOXINFO pcbi); 2249 2250 HBRUSH 2251 NTAPI 2252 NtUserGetControlBrush( 2253 HWND hwnd, 2254 HDC hdc, 2255 UINT ctlType); 2256 2257 HBRUSH 2258 NTAPI 2259 NtUserGetControlColor( 2260 HWND hwndParent, 2261 HWND hwnd, 2262 HDC hdc, 2263 UINT CtlMsg); 2264 2265 ULONG_PTR 2266 NTAPI 2267 NtUserGetCPD( 2268 HWND hWnd, 2269 GETCPD Flags, 2270 ULONG_PTR Proc); 2271 2272 HCURSOR 2273 NTAPI 2274 NtUserGetCursorFrameInfo( 2275 HCURSOR hCursor, 2276 DWORD istep, 2277 INT *rate_jiffies, 2278 DWORD *num_steps); 2279 2280 BOOL 2281 NTAPI 2282 NtUserGetCursorInfo( 2283 PCURSORINFO pci); 2284 2285 HDC 2286 NTAPI 2287 NtUserGetDC( 2288 HWND hWnd); 2289 2290 HDC 2291 NTAPI 2292 NtUserGetDCEx( 2293 HWND hWnd, 2294 HANDLE hRegion, 2295 ULONG Flags); 2296 2297 UINT 2298 NTAPI 2299 NtUserGetDoubleClickTime(VOID); 2300 2301 HWND 2302 NTAPI 2303 NtUserGetForegroundWindow(VOID); 2304 2305 DWORD 2306 NTAPI 2307 NtUserGetGuiResources( 2308 HANDLE hProcess, 2309 DWORD uiFlags); 2310 2311 BOOL 2312 NTAPI 2313 NtUserGetGUIThreadInfo( 2314 DWORD idThread, 2315 LPGUITHREADINFO lpgui); 2316 2317 _Success_(return != FALSE) 2318 BOOL 2319 NTAPI 2320 NtUserGetIconInfo( 2321 _In_ HANDLE hCurIcon, 2322 _Out_opt_ PICONINFO IconInfo, 2323 _Inout_opt_ PUNICODE_STRING lpInstName, 2324 _Inout_opt_ PUNICODE_STRING lpResName, 2325 _Out_opt_ LPDWORD pbpp, 2326 _In_ BOOL bInternal); 2327 2328 BOOL 2329 NTAPI 2330 NtUserGetIconSize( 2331 HANDLE Handle, 2332 UINT istepIfAniCur, 2333 LONG *plcx, 2334 LONG *plcy); 2335 2336 BOOL 2337 NTAPI 2338 NtUserGetImeHotKey(DWORD dwHotKeyId, 2339 LPUINT lpuModifiers, 2340 LPUINT lpuVirtualKey, 2341 LPHKL lphKL); 2342 2343 BOOL 2344 NTAPI 2345 NtUserGetImeInfoEx( 2346 PIMEINFOEX pImeInfoEx, 2347 IMEINFOEXCLASS SearchType); 2348 2349 DWORD 2350 NTAPI 2351 NtUserGetInternalWindowPos( 2352 HWND hwnd, 2353 LPRECT rectWnd, 2354 LPPOINT ptIcon); 2355 2356 HKL 2357 NTAPI 2358 NtUserGetKeyboardLayout( 2359 DWORD dwThreadid); 2360 2361 UINT 2362 NTAPI 2363 NtUserGetKeyboardLayoutList( 2364 ULONG nItems, 2365 HKL *pHklBuff); 2366 2367 BOOL 2368 NTAPI 2369 NtUserGetKeyboardLayoutName( 2370 _Inout_ PUNICODE_STRING pustrName); 2371 2372 DWORD 2373 NTAPI 2374 NtUserGetKeyboardState( 2375 LPBYTE Unknown0); 2376 2377 DWORD 2378 NTAPI 2379 NtUserGetKeyboardType( 2380 DWORD TypeFlag); 2381 2382 DWORD 2383 NTAPI 2384 NtUserGetKeyNameText( 2385 LONG lParam, 2386 LPWSTR lpString, 2387 int nSize); 2388 2389 SHORT 2390 NTAPI 2391 NtUserGetKeyState( 2392 INT VirtKey); 2393 2394 BOOL 2395 NTAPI 2396 NtUserGetLayeredWindowAttributes( 2397 HWND hwnd, 2398 COLORREF *pcrKey, 2399 BYTE *pbAlpha, 2400 DWORD *pdwFlags); 2401 2402 DWORD 2403 NTAPI 2404 NtUserGetListBoxInfo( 2405 HWND hWnd); 2406 2407 BOOL 2408 APIENTRY 2409 NtUserGetMessage( 2410 PMSG pMsg, 2411 HWND hWnd, 2412 UINT MsgFilterMin, 2413 UINT MsgFilterMax); 2414 2415 DWORD 2416 NTAPI 2417 NtUserGetMouseMovePointsEx( 2418 UINT cbSize, 2419 LPMOUSEMOVEPOINT lppt, 2420 LPMOUSEMOVEPOINT lpptBuf, 2421 int nBufPoints, 2422 DWORD resolution); 2423 2424 BOOL 2425 NTAPI 2426 NtUserGetObjectInformation( 2427 HANDLE hObject, 2428 DWORD nIndex, 2429 PVOID pvInformation, 2430 DWORD nLength, 2431 PDWORD nLengthNeeded); 2432 2433 HWND 2434 NTAPI 2435 NtUserGetOpenClipboardWindow(VOID); 2436 2437 INT 2438 NTAPI 2439 NtUserGetPriorityClipboardFormat( 2440 UINT *paFormatPriorityList, 2441 INT cFormats); 2442 2443 HWINSTA 2444 NTAPI 2445 NtUserGetProcessWindowStation(VOID); 2446 2447 DWORD 2448 NTAPI 2449 NtUserGetRawInputBuffer( 2450 PRAWINPUT pData, 2451 PUINT pcbSize, 2452 UINT cbSizeHeader); 2453 2454 DWORD 2455 NTAPI 2456 NtUserGetRawInputData( 2457 HRAWINPUT hRawInput, 2458 UINT uiCommand, 2459 LPVOID pData, 2460 PUINT pcbSize, 2461 UINT cbSizeHeader); 2462 2463 DWORD 2464 NTAPI 2465 NtUserGetRawInputDeviceInfo( 2466 HANDLE hDevice, 2467 UINT uiCommand, 2468 LPVOID pData, 2469 PUINT pcbSize); 2470 2471 DWORD 2472 NTAPI 2473 NtUserGetRawInputDeviceList( 2474 PRAWINPUTDEVICELIST pRawInputDeviceList, 2475 PUINT puiNumDevices, 2476 UINT cbSize); 2477 2478 DWORD 2479 NTAPI 2480 NtUserGetRegisteredRawInputDevices( 2481 PRAWINPUTDEVICE pRawInputDevices, 2482 PUINT puiNumDevices, 2483 UINT cbSize); 2484 2485 BOOL 2486 NTAPI 2487 NtUserGetScrollBarInfo( 2488 HWND hWnd, 2489 LONG idObject, 2490 PSCROLLBARINFO psbi); 2491 2492 HDESK 2493 NTAPI 2494 NtUserGetThreadDesktop( 2495 DWORD dwThreadId, 2496 HDESK hConsoleDesktop); 2497 2498 enum ThreadStateRoutines 2499 { 2500 THREADSTATE_FOCUSWINDOW = 0, 2501 THREADSTATE_ACTIVEWINDOW, 2502 THREADSTATE_CAPTUREWINDOW, 2503 THREADSTATE_DEFAULTIMEWINDOW, 2504 THREADSTATE_DEFAULTINPUTCONTEXT, 2505 THREADSTATE_GETINPUTSTATE, 2506 THREADSTATE_GETCURSOR, 2507 THREADSTATE_CHANGEBITS, 2508 THREADSTATE_UPTIMELASTREAD, 2509 THREADSTATE_GETMESSAGEEXTRAINFO, 2510 THREADSTATE_INSENDMESSAGE, 2511 THREADSTATE_GETMESSAGETIME, 2512 THREADSTATE_FOREGROUNDTHREAD, 2513 THREADSTATE_IMECOMPATFLAGS, 2514 THREADSTATE_OLDKEYBOARDLAYOUT, 2515 THREADSTATE_ISWINLOGON, 2516 THREADSTATE_ISWINLOGON2, 2517 THREADSTATE_CHECKCONIME, 2518 THREADSTATE_GETTHREADINFO, 2519 THREADSTATE_PROGMANWINDOW, /* FIXME: Delete this HACK */ 2520 THREADSTATE_TASKMANWINDOW, /* FIXME: Delete this HACK */ 2521 }; 2522 2523 DWORD_PTR 2524 NTAPI 2525 NtUserGetThreadState( 2526 DWORD Routine); 2527 2528 BOOLEAN 2529 NTAPI 2530 NtUserGetTitleBarInfo( 2531 HWND hwnd, 2532 PTITLEBARINFO pti); 2533 2534 BOOL 2535 NTAPI 2536 NtUserGetUpdateRect( 2537 HWND hWnd, 2538 LPRECT lpRect, 2539 BOOL fErase); 2540 2541 INT 2542 NTAPI 2543 NtUserGetUpdateRgn( 2544 HWND hWnd, 2545 HRGN hRgn, 2546 BOOL bErase); 2547 2548 HDC 2549 NTAPI 2550 NtUserGetWindowDC( 2551 HWND hWnd); 2552 2553 BOOL 2554 NTAPI 2555 NtUserGetWindowPlacement( 2556 HWND hWnd, 2557 WINDOWPLACEMENT *lpwndpl); 2558 2559 PCLS 2560 NTAPI 2561 NtUserGetWOWClass( 2562 HINSTANCE hInstance, 2563 PUNICODE_STRING ClassName); 2564 2565 DWORD 2566 NTAPI 2567 NtUserHardErrorControl( 2568 DWORD dwUnknown1, 2569 DWORD dwUnknown2, 2570 DWORD dwUnknown3); 2571 2572 BOOL 2573 NTAPI 2574 NtUserImpersonateDdeClientWindow( 2575 HWND hWndClient, 2576 HWND hWndServer); 2577 2578 NTSTATUS 2579 NTAPI 2580 NtUserInitialize( 2581 DWORD dwWinVersion, 2582 HANDLE hPowerRequestEvent, 2583 HANDLE hMediaRequestEvent); 2584 2585 NTSTATUS 2586 NTAPI 2587 NtUserInitializeClientPfnArrays( 2588 PPFNCLIENT pfnClientA, 2589 PPFNCLIENT pfnClientW, 2590 PPFNCLIENTWORKER pfnClientWorker, 2591 HINSTANCE hmodUser); 2592 2593 DWORD 2594 NTAPI 2595 NtUserInitTask( 2596 DWORD Unknown0, 2597 DWORD Unknown1, 2598 DWORD Unknown2, 2599 DWORD Unknown3, 2600 DWORD Unknown4, 2601 DWORD Unknown5, 2602 DWORD Unknown6, 2603 DWORD Unknown7, 2604 DWORD Unknown8, 2605 DWORD Unknown9, 2606 DWORD Unknown10, 2607 DWORD Unknown11); 2608 2609 INT 2610 NTAPI 2611 NtUserInternalGetWindowText( 2612 HWND hWnd, 2613 LPWSTR lpString, 2614 INT nMaxCount); 2615 2616 BOOL 2617 NTAPI 2618 NtUserInvalidateRect( 2619 HWND hWnd, 2620 CONST RECT *lpRect, 2621 BOOL bErase); 2622 2623 BOOL 2624 NTAPI 2625 NtUserInvalidateRgn( 2626 HWND hWnd, 2627 HRGN hRgn, 2628 BOOL bErase); 2629 2630 BOOL 2631 NTAPI 2632 NtUserIsClipboardFormatAvailable( 2633 UINT format); 2634 2635 BOOL 2636 NTAPI 2637 NtUserKillTimer( 2638 HWND hWnd, 2639 UINT_PTR uIDEvent); 2640 2641 HKL 2642 NTAPI 2643 NtUserLoadKeyboardLayoutEx( 2644 IN HANDLE hFile, 2645 IN DWORD offTable, 2646 IN PVOID pTables, 2647 IN HKL hOldKL, 2648 IN PUNICODE_STRING puszKLID, 2649 IN DWORD dwNewKL, 2650 IN UINT Flags); 2651 2652 BOOL 2653 NTAPI 2654 NtUserLockWindowStation( 2655 HWINSTA hWindowStation); 2656 2657 BOOL 2658 NTAPI 2659 NtUserLockWindowUpdate( 2660 HWND hWnd); 2661 2662 BOOL 2663 NTAPI 2664 NtUserLockWorkStation(VOID); 2665 2666 UINT 2667 NTAPI 2668 NtUserMapVirtualKeyEx( 2669 UINT keyCode, 2670 UINT transType, 2671 DWORD keyboardId, 2672 HKL dwhkl); 2673 2674 typedef struct tagDOSENDMESSAGE 2675 { 2676 UINT uFlags; 2677 UINT uTimeout; 2678 ULONG_PTR Result; 2679 } 2680 DOSENDMESSAGE, *PDOSENDMESSAGE; 2681 2682 BOOL 2683 NTAPI 2684 NtUserMessageCall( 2685 HWND hWnd, 2686 UINT Msg, 2687 WPARAM wParam, 2688 LPARAM lParam, 2689 ULONG_PTR ResultInfo, 2690 DWORD dwType, /* FNID_XX types */ 2691 BOOL Ansi); 2692 2693 DWORD 2694 NTAPI 2695 NtUserMinMaximize( 2696 HWND hWnd, 2697 UINT cmd, /* Wine SW_ commands */ 2698 BOOL Hide); 2699 2700 DWORD 2701 NTAPI 2702 NtUserMNDragLeave(VOID); 2703 2704 DWORD 2705 NTAPI 2706 NtUserMNDragOver( 2707 DWORD Unknown0, 2708 DWORD Unknown1); 2709 2710 DWORD 2711 NTAPI 2712 NtUserModifyUserStartupInfoFlags( 2713 DWORD Unknown0, 2714 DWORD Unknown1); 2715 2716 BOOL 2717 NTAPI 2718 NtUserMoveWindow( 2719 HWND hWnd, 2720 int X, 2721 int Y, 2722 int nWidth, 2723 int nHeight, 2724 BOOL bRepaint 2725 ); 2726 2727 DWORD 2728 NTAPI 2729 NtUserNotifyIMEStatus(HWND hwnd, BOOL fOpen, DWORD dwConversion); 2730 2731 BOOL 2732 NTAPI 2733 NtUserNotifyProcessCreate( 2734 HANDLE NewProcessId, 2735 HANDLE ParentThreadId, 2736 ULONG dwUnknown, 2737 ULONG CreateFlags); 2738 2739 VOID 2740 NTAPI 2741 NtUserNotifyWinEvent( 2742 DWORD Event, 2743 HWND hWnd, 2744 LONG idObject, 2745 LONG idChild); 2746 2747 BOOL 2748 NTAPI 2749 NtUserOpenClipboard( 2750 HWND hWnd, 2751 DWORD Unknown1); 2752 2753 HDESK 2754 NTAPI 2755 NtUserOpenDesktop( 2756 POBJECT_ATTRIBUTES ObjectAttributes, 2757 DWORD dwFlags, 2758 ACCESS_MASK dwDesiredAccess); 2759 2760 HDESK 2761 NTAPI 2762 NtUserOpenInputDesktop( 2763 DWORD dwFlags, 2764 BOOL fInherit, 2765 ACCESS_MASK dwDesiredAccess); 2766 2767 HWINSTA 2768 NTAPI 2769 NtUserOpenWindowStation( 2770 POBJECT_ATTRIBUTES ObjectAttributes, 2771 ACCESS_MASK dwDesiredAccess); 2772 2773 BOOL 2774 NTAPI 2775 NtUserPaintDesktop( 2776 HDC hDC); 2777 2778 DWORD 2779 NTAPI 2780 NtUserPaintMenuBar( 2781 HWND hWnd, 2782 HDC hDC, 2783 ULONG left, // x, 2784 ULONG right, // width, // Scale the edge thickness, offset? 2785 ULONG top, // y, 2786 BOOL bActive); // DWORD Flags); DC_ACTIVE or WS_ACTIVECAPTION, by checking WNDS_ACTIVEFRAME and foreground. 2787 2788 BOOL 2789 APIENTRY 2790 NtUserPeekMessage( 2791 PMSG pMsg, 2792 HWND hWnd, 2793 UINT MsgFilterMin, 2794 UINT MsgFilterMax, 2795 UINT RemoveMsg); 2796 2797 BOOL 2798 NTAPI 2799 NtUserPostMessage( 2800 HWND hWnd, 2801 UINT Msg, 2802 WPARAM wParam, 2803 LPARAM lParam); 2804 2805 BOOL 2806 NTAPI 2807 NtUserPostThreadMessage( 2808 DWORD idThread, 2809 UINT Msg, 2810 WPARAM wParam, 2811 LPARAM lParam); 2812 2813 BOOL 2814 NTAPI 2815 NtUserPrintWindow( 2816 HWND hwnd, 2817 HDC hdcBlt, 2818 UINT nFlags); 2819 2820 NTSTATUS 2821 NTAPI 2822 NtUserProcessConnect( 2823 IN HANDLE ProcessHandle, 2824 OUT PUSERCONNECT pUserConnect, 2825 IN ULONG Size); /* sizeof(USERCONNECT) */ 2826 2827 NTSTATUS 2828 NTAPI 2829 NtUserQueryInformationThread( 2830 IN HANDLE ThreadHandle, 2831 IN USERTHREADINFOCLASS ThreadInformationClass, 2832 OUT PVOID ThreadInformation, 2833 IN ULONG ThreadInformationLength); 2834 2835 DWORD_PTR 2836 NTAPI 2837 NtUserQueryInputContext( 2838 HIMC hIMC, 2839 DWORD dwType); 2840 2841 DWORD 2842 NTAPI 2843 NtUserQuerySendMessage( 2844 DWORD Unknown0); 2845 2846 DWORD 2847 NTAPI 2848 NtUserQueryUserCounters( 2849 DWORD Unknown0, 2850 DWORD Unknown1, 2851 DWORD Unknown2, 2852 DWORD Unknown3, 2853 DWORD Unknown4); 2854 2855 #define QUERY_WINDOW_UNIQUE_PROCESS_ID 0x00 2856 #define QUERY_WINDOW_UNIQUE_THREAD_ID 0x01 2857 #define QUERY_WINDOW_ACTIVE 0x02 2858 #define QUERY_WINDOW_FOCUS 0x03 2859 #define QUERY_WINDOW_ISHUNG 0x04 2860 #define QUERY_WINDOW_REAL_ID 0x05 2861 #define QUERY_WINDOW_FOREGROUND 0x06 2862 #define QUERY_WINDOW_DEFAULT_IME 0x07 2863 #define QUERY_WINDOW_DEFAULT_ICONTEXT 0x08 2864 #define QUERY_WINDOW_ACTIVE_IME 0x09 2865 2866 DWORD_PTR 2867 NTAPI 2868 NtUserQueryWindow( 2869 HWND hWnd, 2870 DWORD Index); 2871 2872 BOOL 2873 NTAPI 2874 NtUserRealInternalGetMessage( 2875 LPMSG lpMsg, 2876 HWND hWnd, 2877 UINT wMsgFilterMin, 2878 UINT wMsgFilterMax, 2879 UINT wRemoveMsg, 2880 BOOL bGMSG); 2881 2882 HWND 2883 NTAPI 2884 NtUserRealChildWindowFromPoint( 2885 HWND Parent, 2886 LONG x, 2887 LONG y); 2888 2889 BOOL 2890 NTAPI 2891 NtUserRealWaitMessageEx( 2892 DWORD dwWakeMask, 2893 UINT uTimeout); 2894 2895 BOOL 2896 NTAPI 2897 NtUserRedrawWindow( 2898 HWND hWnd, 2899 CONST RECT *lprcUpdate, 2900 HRGN hrgnUpdate, 2901 UINT flags); 2902 2903 RTL_ATOM 2904 NTAPI 2905 NtUserRegisterClassExWOW( 2906 WNDCLASSEXW* lpwcx, 2907 PUNICODE_STRING pustrClassName, 2908 PUNICODE_STRING pustrCVersion, 2909 PCLSMENUNAME pClassMenuName, 2910 DWORD fnID, 2911 DWORD Flags, 2912 LPDWORD pWow); 2913 2914 BOOL 2915 NTAPI 2916 NtUserRegisterRawInputDevices( 2917 IN PCRAWINPUTDEVICE pRawInputDevices, 2918 IN UINT uiNumDevices, 2919 IN UINT cbSize); 2920 2921 BOOL 2922 NTAPI 2923 NtUserRegisterUserApiHook( 2924 PUNICODE_STRING m_dllname1, 2925 PUNICODE_STRING m_funname1, 2926 DWORD dwUnknown3, 2927 DWORD dwUnknown4); 2928 2929 BOOL 2930 NTAPI 2931 NtUserRegisterHotKey( 2932 HWND hWnd, 2933 int id, 2934 UINT fsModifiers, 2935 UINT vk); 2936 2937 DWORD 2938 NTAPI 2939 NtUserRegisterTasklist( 2940 DWORD Unknown0); 2941 2942 UINT 2943 NTAPI 2944 NtUserRegisterWindowMessage( 2945 PUNICODE_STRING MessageName); 2946 2947 DWORD 2948 NTAPI 2949 NtUserRemoteConnect( 2950 DWORD dwUnknown1, 2951 DWORD dwUnknown2, 2952 DWORD dwUnknown3); 2953 2954 DWORD 2955 NTAPI 2956 NtUserRemoteRedrawRectangle( 2957 DWORD dwUnknown1, 2958 DWORD dwUnknown2, 2959 DWORD dwUnknown3, 2960 DWORD dwUnknown4); 2961 2962 DWORD 2963 NTAPI 2964 NtUserRemoteRedrawScreen(VOID); 2965 2966 DWORD 2967 NTAPI 2968 NtUserRemoteStopScreenUpdates(VOID); 2969 2970 HANDLE 2971 NTAPI 2972 NtUserRemoveProp( 2973 HWND hWnd, 2974 ATOM Atom); 2975 2976 HDESK 2977 NTAPI 2978 NtUserResolveDesktop( 2979 IN HANDLE ProcessHandle, 2980 IN PUNICODE_STRING DesktopPath, 2981 IN BOOL bInherit, 2982 OUT HWINSTA* phWinSta); 2983 2984 DWORD 2985 NTAPI 2986 NtUserResolveDesktopForWOW( 2987 DWORD Unknown0); 2988 2989 BOOL 2990 NTAPI 2991 NtUserSBGetParms( 2992 HWND hwnd, 2993 int fnBar, 2994 PSBDATA pSBData, 2995 LPSCROLLINFO lpsi); 2996 2997 BOOL 2998 NTAPI 2999 NtUserScrollDC( 3000 HDC hDC, 3001 int dx, 3002 int dy, 3003 CONST RECT *lprcScroll, 3004 CONST RECT *lprcClip , 3005 HRGN hrgnUpdate, 3006 LPRECT lprcUpdate); 3007 3008 DWORD 3009 NTAPI 3010 NtUserScrollWindowEx( 3011 HWND hWnd, 3012 INT dx, 3013 INT dy, 3014 const RECT *rect, 3015 const RECT *clipRect, 3016 HRGN hrgnUpdate, 3017 LPRECT rcUpdate, 3018 UINT flags); 3019 3020 UINT 3021 NTAPI 3022 NtUserSendInput( 3023 UINT nInputs, 3024 LPINPUT pInput, 3025 INT cbSize); 3026 3027 HWND 3028 NTAPI 3029 NtUserSetActiveWindow( 3030 HWND Wnd); 3031 3032 BOOL 3033 NTAPI 3034 NtUserSetAppImeLevel( 3035 HWND hWnd, 3036 DWORD dwLevel); 3037 3038 HWND 3039 NTAPI 3040 NtUserSetCapture( 3041 HWND Wnd); 3042 3043 ULONG_PTR 3044 NTAPI 3045 NtUserSetClassLong( 3046 HWND hWnd, 3047 INT Offset, 3048 ULONG_PTR dwNewLong, 3049 BOOL Ansi); 3050 3051 WORD 3052 NTAPI 3053 NtUserSetClassWord( 3054 HWND hWnd, 3055 INT nIndex, 3056 WORD wNewWord); 3057 3058 HANDLE 3059 NTAPI 3060 NtUserSetClipboardData( 3061 UINT fmt, 3062 HANDLE hMem, 3063 PSETCLIPBDATA scd); 3064 3065 HWND 3066 NTAPI 3067 NtUserSetClipboardViewer( 3068 HWND hWndNewViewer); 3069 3070 HPALETTE 3071 NTAPI 3072 NtUserSelectPalette( 3073 HDC hDC, 3074 HPALETTE hpal, 3075 BOOL ForceBackground); 3076 3077 DWORD 3078 NTAPI 3079 NtUserSetConsoleReserveKeys( 3080 DWORD Unknown0, 3081 DWORD Unknown1); 3082 3083 HCURSOR 3084 NTAPI 3085 NtUserSetCursor( 3086 HCURSOR hCursor); 3087 3088 BOOL 3089 NTAPI 3090 NtUserSetCursorContents( 3091 HANDLE Handle, 3092 PICONINFO IconInfo); 3093 3094 BOOL 3095 NTAPI 3096 NtUserSetCursorIconData( 3097 _In_ HCURSOR hCursor, 3098 _In_opt_ PUNICODE_STRING pustrModule, 3099 _In_opt_ PUNICODE_STRING puSrcName, 3100 _In_ const CURSORDATA *pCursorData); 3101 3102 typedef struct _tagFINDEXISTINGCURICONPARAM 3103 { 3104 BOOL bIcon; 3105 LONG cx; 3106 LONG cy; 3107 } FINDEXISTINGCURICONPARAM; 3108 3109 HICON 3110 NTAPI 3111 NtUserFindExistingCursorIcon( 3112 _In_ PUNICODE_STRING pustrModule, 3113 _In_ PUNICODE_STRING pustrRsrc, 3114 _In_ FINDEXISTINGCURICONPARAM *param); 3115 3116 LONG_PTR 3117 APIENTRY 3118 NtUserSetClassLongPtr( 3119 VOID); 3120 3121 DWORD 3122 NTAPI 3123 NtUserSetDbgTag( 3124 DWORD Unknown0, 3125 DWORD Unknown1); 3126 3127 DWORD 3128 APIENTRY 3129 NtUserSetDbgTagCount( 3130 DWORD Unknown0); 3131 3132 HWND 3133 NTAPI 3134 NtUserSetFocus( 3135 HWND hWnd); 3136 3137 BOOL 3138 NTAPI 3139 NtUserSetImeHotKey( 3140 DWORD dwHotKeyId, 3141 UINT uModifiers, 3142 UINT uVirtualKey, 3143 HKL hKL, 3144 DWORD dwAction); 3145 3146 BOOL 3147 NTAPI 3148 NtUserSetImeInfoEx( 3149 PIMEINFOEX pImeInfoEx); 3150 3151 BOOL 3152 NTAPI 3153 NtUserSetImeOwnerWindow(HWND hImeWnd, HWND hwndFocus); 3154 3155 DWORD 3156 NTAPI 3157 NtUserSetInformationProcess( 3158 DWORD dwUnknown1, 3159 DWORD dwUnknown2, 3160 DWORD dwUnknown3, 3161 DWORD dwUnknown4); 3162 3163 NTSTATUS 3164 NTAPI 3165 NtUserSetInformationThread( 3166 IN HANDLE ThreadHandle, 3167 IN USERTHREADINFOCLASS ThreadInformationClass, 3168 IN PVOID ThreadInformation, 3169 IN ULONG ThreadInformationLength); 3170 3171 DWORD 3172 NTAPI 3173 NtUserSetInternalWindowPos( 3174 HWND hwnd, 3175 UINT showCmd, 3176 LPRECT rect, 3177 LPPOINT pt); 3178 3179 BOOL 3180 NTAPI 3181 NtUserSetKeyboardState( 3182 LPBYTE lpKeyState); 3183 3184 BOOL 3185 NTAPI 3186 NtUserSetLayeredWindowAttributes( 3187 HWND hwnd, 3188 COLORREF crKey, 3189 BYTE bAlpha, 3190 DWORD dwFlags); 3191 3192 BOOL 3193 NTAPI 3194 NtUserSetLogonNotifyWindow( 3195 HWND hWnd); 3196 3197 BOOL 3198 NTAPI 3199 NtUserSetObjectInformation( 3200 HANDLE hObject, 3201 DWORD nIndex, 3202 PVOID pvInformation, 3203 DWORD nLength); 3204 3205 HWND 3206 NTAPI 3207 NtUserSetParent( 3208 HWND hWndChild, 3209 HWND hWndNewParent); 3210 3211 BOOL 3212 NTAPI 3213 NtUserSetProcessWindowStation( 3214 HWINSTA hWindowStation); 3215 3216 BOOL 3217 NTAPI 3218 NtUserSetProp( 3219 HWND hWnd, 3220 ATOM Atom, 3221 HANDLE Data); 3222 3223 DWORD 3224 NTAPI 3225 NtUserSetRipFlags( 3226 DWORD Unknown0); 3227 3228 DWORD 3229 NTAPI 3230 NtUserSetScrollInfo( 3231 HWND hwnd, 3232 int fnBar, 3233 LPCSCROLLINFO lpsi, 3234 BOOL bRedraw); 3235 3236 BOOL 3237 NTAPI 3238 NtUserSetShellWindowEx( 3239 HWND hwndShell, 3240 HWND hwndShellListView); 3241 3242 BOOL 3243 NTAPI 3244 NtUserSetSysColors( 3245 int cElements, 3246 IN CONST INT *lpaElements, 3247 IN CONST COLORREF *lpaRgbValues, 3248 FLONG Flags); 3249 3250 BOOL 3251 NTAPI 3252 NtUserSetSystemCursor( 3253 HCURSOR hcur, 3254 DWORD id); 3255 3256 BOOL 3257 NTAPI 3258 NtUserSetThreadDesktop( 3259 HDESK hDesktop); 3260 3261 DWORD 3262 NTAPI 3263 NtUserSetThreadState( 3264 DWORD Unknown0, 3265 DWORD Unknown1); 3266 3267 UINT_PTR 3268 NTAPI 3269 NtUserSetSystemTimer( 3270 HWND hWnd, 3271 UINT_PTR nIDEvent, 3272 UINT uElapse, 3273 TIMERPROC lpTimerFunc); 3274 3275 DWORD 3276 NTAPI 3277 NtUserSetThreadLayoutHandles(HKL hNewKL, HKL hOldKL); 3278 3279 UINT_PTR 3280 NTAPI 3281 NtUserSetTimer( 3282 HWND hWnd, 3283 UINT_PTR nIDEvent, 3284 UINT uElapse, 3285 TIMERPROC lpTimerFunc); 3286 3287 BOOL 3288 NTAPI 3289 NtUserSetWindowFNID( 3290 HWND hWnd, 3291 WORD fnID); 3292 3293 LONG 3294 NTAPI 3295 NtUserSetWindowLong( 3296 HWND hWnd, 3297 DWORD Index, 3298 LONG NewValue, 3299 BOOL Ansi); 3300 3301 #ifdef _WIN64 3302 LONG_PTR 3303 NTAPI 3304 NtUserSetWindowLongPtr( 3305 HWND hWnd, 3306 DWORD Index, 3307 LONG_PTR NewValue, 3308 BOOL Ansi); 3309 #else 3310 #define NtUserSetWindowLongPtr NtUserSetWindowLong 3311 #endif // _WIN64 3312 3313 BOOL 3314 NTAPI 3315 NtUserSetWindowPlacement( 3316 HWND hWnd, 3317 WINDOWPLACEMENT *lpwndpl); 3318 3319 BOOL 3320 NTAPI 3321 NtUserSetWindowPos( 3322 HWND hWnd, 3323 HWND hWndInsertAfter, 3324 int X, 3325 int Y, 3326 int cx, 3327 int cy, 3328 UINT uFlags); 3329 3330 INT 3331 NTAPI 3332 NtUserSetWindowRgn( 3333 HWND hWnd, 3334 HRGN hRgn, 3335 BOOL bRedraw); 3336 3337 HHOOK 3338 NTAPI 3339 NtUserSetWindowsHookAW( 3340 int idHook, 3341 HOOKPROC lpfn, 3342 BOOL Ansi); 3343 3344 HHOOK 3345 NTAPI 3346 NtUserSetWindowsHookEx( 3347 HINSTANCE Mod, 3348 PUNICODE_STRING ModuleName, 3349 DWORD ThreadId, 3350 int HookId, 3351 HOOKPROC HookProc, 3352 BOOL Ansi); 3353 3354 BOOL 3355 NTAPI 3356 NtUserSetWindowStationUser( 3357 IN HWINSTA hWindowStation, 3358 IN PLUID pluid, 3359 IN PSID psid OPTIONAL, 3360 IN DWORD size); 3361 3362 WORD 3363 NTAPI 3364 NtUserSetWindowWord( 3365 HWND hWnd, 3366 INT Index, 3367 WORD NewVal); 3368 3369 HWINEVENTHOOK 3370 NTAPI 3371 NtUserSetWinEventHook( 3372 UINT eventMin, 3373 UINT eventMax, 3374 HMODULE hmodWinEventProc, 3375 PUNICODE_STRING puString, 3376 WINEVENTPROC lpfnWinEventProc, 3377 DWORD idProcess, 3378 DWORD idThread, 3379 UINT dwflags); 3380 3381 BOOL 3382 NTAPI 3383 NtUserShowCaret( 3384 HWND hWnd); 3385 3386 BOOL 3387 NTAPI 3388 NtUserHideCaret( 3389 HWND hWnd); 3390 3391 DWORD 3392 NTAPI 3393 NtUserShowScrollBar( 3394 HWND hWnd, 3395 int wBar, 3396 DWORD bShow); 3397 3398 BOOL 3399 NTAPI 3400 NtUserShowWindow( 3401 HWND hWnd, 3402 LONG nCmdShow); 3403 3404 BOOL 3405 NTAPI 3406 NtUserShowWindowAsync( 3407 HWND hWnd, 3408 LONG nCmdShow); 3409 3410 BOOL 3411 NTAPI 3412 NtUserSoundSentry(VOID); 3413 3414 BOOL 3415 NTAPI 3416 NtUserSwitchDesktop( 3417 HDESK hDesktop); 3418 3419 BOOL 3420 NTAPI 3421 NtUserSystemParametersInfo( 3422 UINT uiAction, 3423 UINT uiParam, 3424 PVOID pvParam, 3425 UINT fWinIni); 3426 3427 DWORD 3428 NTAPI 3429 NtUserTestForInteractiveUser( 3430 DWORD dwUnknown1); 3431 3432 INT 3433 NTAPI 3434 NtUserToUnicodeEx( 3435 UINT wVirtKey, 3436 UINT wScanCode, 3437 PBYTE lpKeyState, 3438 LPWSTR pwszBuff, 3439 int cchBuff, 3440 UINT wFlags, 3441 HKL dwhkl); 3442 3443 BOOL 3444 NTAPI 3445 NtUserTrackMouseEvent( 3446 LPTRACKMOUSEEVENT lpEventTrack); 3447 3448 int 3449 NTAPI 3450 NtUserTranslateAccelerator( 3451 HWND Window, 3452 HACCEL Table, 3453 LPMSG Message); 3454 3455 BOOL 3456 NTAPI 3457 NtUserTranslateMessage( 3458 LPMSG lpMsg, 3459 UINT flags ); 3460 3461 BOOL 3462 NTAPI 3463 NtUserUnhookWindowsHookEx( 3464 HHOOK Hook); 3465 3466 BOOL 3467 NTAPI 3468 NtUserUnhookWinEvent( 3469 HWINEVENTHOOK hWinEventHook); 3470 3471 BOOL 3472 NTAPI 3473 NtUserUnloadKeyboardLayout( 3474 HKL hKl); 3475 3476 BOOL 3477 NTAPI 3478 NtUserUnlockWindowStation( 3479 HWINSTA hWindowStation); 3480 3481 BOOL 3482 NTAPI 3483 NtUserUnregisterClass( 3484 PUNICODE_STRING ClassNameOrAtom, 3485 HINSTANCE hInstance, 3486 PCLSMENUNAME pClassMenuName); 3487 3488 BOOL 3489 NTAPI 3490 NtUserUnregisterHotKey( 3491 HWND hWnd, 3492 int id); 3493 3494 BOOL 3495 NTAPI 3496 NtUserUnregisterUserApiHook(VOID); 3497 3498 BOOL 3499 NTAPI 3500 NtUserUpdateInputContext( 3501 HIMC hIMC, 3502 DWORD dwType, 3503 DWORD_PTR dwValue); 3504 3505 DWORD 3506 NTAPI 3507 NtUserUpdateInstance( 3508 DWORD Unknown0, 3509 DWORD Unknown1, 3510 DWORD Unknown2); 3511 3512 BOOL 3513 NTAPI 3514 NtUserUpdateLayeredWindow( 3515 HWND hwnd, 3516 HDC hdcDst, 3517 POINT *pptDst, 3518 SIZE *psize, 3519 HDC hdcSrc, 3520 POINT *pptSrc, 3521 COLORREF crKey, 3522 BLENDFUNCTION *pblend, 3523 DWORD dwFlags, 3524 RECT *prcDirty); 3525 3526 BOOL 3527 NTAPI 3528 NtUserUpdatePerUserSystemParameters( 3529 DWORD dwReserved, 3530 BOOL bEnable); 3531 3532 BOOL 3533 NTAPI 3534 NtUserUserHandleGrantAccess( 3535 IN HANDLE hUserHandle, 3536 IN HANDLE hJob, 3537 IN BOOL bGrant); 3538 3539 BOOL 3540 NTAPI 3541 NtUserValidateHandleSecure( 3542 HANDLE hHdl); 3543 3544 BOOL 3545 NTAPI 3546 NtUserValidateRect( 3547 HWND hWnd, 3548 CONST RECT *lpRect); 3549 3550 BOOL 3551 APIENTRY 3552 NtUserValidateTimerCallback( 3553 LPARAM lParam); 3554 3555 DWORD 3556 NTAPI 3557 NtUserVkKeyScanEx( 3558 WCHAR wChar, 3559 HKL KeyboardLayout, 3560 BOOL bUsehHK); 3561 3562 DWORD 3563 NTAPI 3564 NtUserWaitForInputIdle( 3565 IN HANDLE hProcess, 3566 IN DWORD dwMilliseconds, 3567 IN BOOL bSharedWow); /* Always FALSE */ 3568 3569 DWORD 3570 NTAPI 3571 NtUserWaitForMsgAndEvent( 3572 DWORD Unknown0); 3573 3574 BOOL 3575 NTAPI 3576 NtUserWaitMessage(VOID); 3577 3578 DWORD 3579 NTAPI 3580 NtUserWin32PoolAllocationStats( 3581 DWORD Unknown0, 3582 DWORD Unknown1, 3583 DWORD Unknown2, 3584 DWORD Unknown3, 3585 DWORD Unknown4, 3586 DWORD Unknown5); 3587 3588 HWND 3589 NTAPI 3590 NtUserWindowFromPoint( 3591 LONG X, 3592 LONG Y); 3593 3594 DWORD 3595 NTAPI 3596 NtUserYieldTask(VOID); 3597 3598 /* NtUserBad 3599 * ReactOS-specific NtUser calls and their related structures, both which shouldn't exist. 3600 */ 3601 3602 #define NOPARAM_ROUTINE_ISCONSOLEMODE 0xffff0001 3603 #define ONEPARAM_ROUTINE_ENABLEPROCWNDGHSTING 0xfffe000d 3604 #define ONEPARAM_ROUTINE_GETDESKTOPMAPPING 0xfffe000e 3605 #define TWOPARAM_ROUTINE_SETMENUBARHEIGHT 0xfffd0050 3606 #define TWOPARAM_ROUTINE_SETGUITHRDHANDLE 0xfffd0051 3607 #define HWNDLOCK_ROUTINE_SETFOREGROUNDWINDOWMOUSE 0xfffd0052 3608 3609 #define MSQ_STATE_CAPTURE 0x1 3610 #define MSQ_STATE_ACTIVE 0x2 3611 #define MSQ_STATE_FOCUS 0x3 3612 #define MSQ_STATE_MENUOWNER 0x4 3613 #define MSQ_STATE_MOVESIZE 0x5 3614 #define MSQ_STATE_CARET 0x6 3615 3616 #define TWOPARAM_ROUTINE_ROS_UPDATEUISTATE 0x1004 3617 #define HWNDPARAM_ROUTINE_ROS_NOTIFYWINEVENT 0x1005 3618 3619 BOOL 3620 NTAPI 3621 NtUserGetMonitorInfo( 3622 IN HMONITOR hMonitor, 3623 OUT LPMONITORINFO pMonitorInfo); 3624 3625 /* Should be done in usermode */ 3626 3627 HMONITOR 3628 NTAPI 3629 NtUserMonitorFromPoint( 3630 IN POINT point, 3631 IN DWORD dwFlags); 3632 3633 HMONITOR 3634 NTAPI 3635 NtUserMonitorFromRect( 3636 IN LPCRECT pRect, 3637 IN DWORD dwFlags); 3638 3639 HMONITOR 3640 NTAPI 3641 NtUserMonitorFromWindow( 3642 IN HWND hWnd, 3643 IN DWORD dwFlags); 3644 3645 typedef struct _SETSCROLLBARINFO 3646 { 3647 int nTrackPos; 3648 int reserved; 3649 DWORD rgstate[CCHILDREN_SCROLLBAR + 1]; 3650 } SETSCROLLBARINFO, *PSETSCROLLBARINFO; 3651 3652 BOOL 3653 NTAPI 3654 NtUserSetScrollBarInfo( 3655 HWND hwnd, 3656 LONG idObject, 3657 SETSCROLLBARINFO *info); 3658 3659 #endif /* __WIN32K_NTUSER_H */ 3660 3661 /* EOF */ 3662