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