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