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