📄 ntuser.h
字号:
#ifndef __WIN32K_NTUSER_H
#define __WIN32K_NTUSER_H
struct _W32PROCESSINFO;
struct _W32THREADINFO;
typedef struct _DESKTOP
{
HANDLE hKernelHeap;
WCHAR szDesktopName[1];
HWND hTaskManWindow;
HWND hProgmanWindow;
} DESKTOP, *PDESKTOP;
typedef struct _CALLPROC
{
struct _W32PROCESSINFO *pi;
WNDPROC WndProc;
UINT Unicode : 1;
} CALLPROC, *PCALLPROC;
typedef struct _WINDOWCLASS
{
struct _WINDOWCLASS *Next;
struct _WINDOWCLASS *Clone;
struct _WINDOWCLASS *Base;
PDESKTOP Desktop;
RTL_ATOM Atom;
ULONG Windows;
UINT Style;
WNDPROC WndProc;
union
{
WNDPROC WndProcExtra;
PCALLPROC CallProc;
};
PCALLPROC CallProc2;
INT ClsExtra;
INT WndExtra;
HINSTANCE hInstance;
HANDLE hIcon; /* FIXME - Use pointer! */
HANDLE hIconSm; /* FIXME - Use pointer! */
HANDLE hCursor; /* FIXME - Use pointer! */
HBRUSH hbrBackground;
HANDLE hMenu; /* FIXME - Use pointer! */
PWSTR MenuName;
PSTR AnsiMenuName;
UINT Destroying : 1;
UINT Unicode : 1;
UINT System : 1;
UINT Global : 1;
UINT GlobalCallProc : 1;
UINT GlobalCallProc2 : 1;
UINT MenuNameIsString : 1;
} WINDOWCLASS, *PWINDOWCLASS;
typedef struct _W32PROCESSINFO
{
PVOID UserHandleTable;
HINSTANCE hModUser;
PWINDOWCLASS LocalClassList;
PWINDOWCLASS GlobalClassList;
PWINDOWCLASS SystemClassList;
} W32PROCESSINFO, *PW32PROCESSINFO;
typedef struct _W32THREADINFO
{
PW32PROCESSINFO pi; /* [USER] */
PW32PROCESSINFO kpi; /* [KERNEL] */
PDESKTOP Desktop;
ULONG_PTR DesktopHeapDelta;
} W32THREADINFO, *PW32THREADINFO;
PW32THREADINFO GetW32ThreadInfo(VOID);
PW32PROCESSINFO GetW32ProcessInfo(VOID);
DWORD
NTAPI
NtUserBuildMenuItemList(
HMENU hMenu,
PVOID Buffer,
ULONG nBufSize,
DWORD Reserved);
DWORD
NTAPI
NtUserCheckMenuItem(
HMENU hmenu,
UINT uIDCheckItem,
UINT uCheck);
HMENU
NTAPI
NtUserCreateMenu(BOOL PopupMenu);
BOOL
NTAPI
NtUserDeleteMenu(
HMENU hMenu,
UINT uPosition,
UINT uFlags);
BOOL
NTAPI
NtUserDestroyMenu(
HMENU hMenu);
DWORD
NTAPI
NtUserDrawMenuBarTemp(
HWND hWnd,
HDC hDC,
PRECT hRect,
HMENU hMenu,
HFONT hFont);
UINT
NTAPI
NtUserEnableMenuItem(
HMENU hMenu,
UINT uIDEnableItem,
UINT uEnable);
UINT
NTAPI
NtUserEnumClipboardFormats(
UINT format);
DWORD
NTAPI
NtUserInsertMenuItem(
HMENU hMenu,
UINT uItem,
BOOL fByPosition,
LPCMENUITEMINFOW lpmii);
BOOL
NTAPI
NtUserEndMenu(VOID);
UINT NTAPI
NtUserGetMenuDefaultItem(
HMENU hMenu,
UINT fByPos,
UINT gmdiFlags);
BOOL
NTAPI
NtUserGetMenuBarInfo(
HWND hwnd,
LONG idObject,
LONG idItem,
PMENUBARINFO pmbi);
UINT
NTAPI
NtUserGetMenuIndex(
HMENU hMenu,
UINT wID);
BOOL
NTAPI
NtUserGetMenuItemRect(
HWND hWnd,
HMENU hMenu,
UINT uItem,
LPRECT lprcItem);
HMENU
NTAPI
NtUserGetSystemMenu(
HWND hWnd,
BOOL bRevert);
BOOL
NTAPI
NtUserHiliteMenuItem(
HWND hwnd,
HMENU hmenu,
UINT uItemHilite,
UINT uHilite);
BOOL
NTAPI
NtUserMenuInfo(
HMENU hmenu,
PROSMENUINFO lpmi,
BOOL fsog
);
int
NTAPI
NtUserMenuItemFromPoint(
HWND hWnd,
HMENU hMenu,
DWORD X,
DWORD Y);
BOOL
NTAPI
NtUserMenuItemInfo(
HMENU hMenu,
UINT uItem,
BOOL fByPosition,
PROSMENUITEMINFO lpmii,
BOOL fsog
);
BOOL
NTAPI
NtUserRemoveMenu(
HMENU hMenu,
UINT uPosition,
UINT uFlags);
BOOL
NTAPI
NtUserSetMenu(
HWND hWnd,
HMENU hMenu,
BOOL bRepaint);
BOOL
NTAPI
NtUserSetMenuContextHelpId(
HMENU hmenu,
DWORD dwContextHelpId);
BOOL
NTAPI
NtUserSetMenuDefaultItem(
HMENU hMenu,
UINT uItem,
UINT fByPos);
BOOL
NTAPI
NtUserSetMenuFlagRtoL(
HMENU hMenu);
BOOL
NTAPI
NtUserSetSystemMenu(
HWND hWnd,
HMENU hMenu);
DWORD
NTAPI
NtUserThunkedMenuInfo(
HMENU hMenu,
LPCMENUINFO lpcmi);
DWORD
NTAPI
NtUserThunkedMenuItemInfo(
HMENU hMenu,
UINT uItem,
BOOL fByPosition,
BOOL bInsert,
LPMENUITEMINFOW lpmii,
PUNICODE_STRING lpszCaption);
BOOL
NTAPI
NtUserTrackPopupMenuEx(
HMENU hmenu,
UINT fuFlags,
int x,
int y,
HWND hwnd,
LPTPMPARAMS lptpm);
ULONG NTAPI
NtUserGetSystemMetrics(ULONG Index);
ULONG_PTR NTAPI
NtUserGetClassLong(HWND hWnd, INT Offset, BOOL Ansi);
LONG NTAPI
NtUserGetWindowLong(HWND hWnd, DWORD Index, BOOL Ansi);
INT NTAPI
NtUserReleaseDC(HWND hWnd, HDC hDc);
BOOL NTAPI
NtUserGetWindowRect(HWND hWnd, LPRECT Rect);
BOOL NTAPI
NtUserGetClientRect(HWND hWnd, LPRECT Rect);
HANDLE NTAPI
NtUserGetProp(HWND hWnd, ATOM Atom);
BOOL NTAPI
NtUserGetClientOrigin(HWND hWnd, LPPOINT Point);
HWND NTAPI
NtUserGetDesktopWindow();
NTSTATUS
NTAPI
NtUserAcquireOrReleaseInputOwnership(
BOOLEAN Release);
HKL
NTAPI
NtUserActivateKeyboardLayout(
HKL hKl,
ULONG Flags);
DWORD
NTAPI
NtUserAlterWindowStyle(
DWORD Unknown0,
DWORD Unknown1,
DWORD Unknown2);
DWORD
NTAPI
NtUserAttachThreadInput(
DWORD Unknown0,
DWORD Unknown1,
DWORD Unknown2);
HDC NTAPI
NtUserBeginPaint(HWND hWnd, PAINTSTRUCT* lPs);
DWORD
NTAPI
NtUserBitBltSysBmp(
DWORD Unknown0,
DWORD Unknown1,
DWORD Unknown2,
DWORD Unknown3,
DWORD Unknown4,
DWORD Unknown5,
DWORD Unknown6,
DWORD Unknown7);
BOOL
NTAPI
NtUserBlockInput(
BOOL BlockIt);
ULONG
NTAPI
NtUserBuildHwndList(
HDESK hDesktop,
HWND hwndParent,
BOOLEAN bChildren,
ULONG dwThreadId,
ULONG lParam,
HWND* pWnd,
ULONG nBufSize);
NTSTATUS NTAPI
NtUserBuildNameList(
HWINSTA hWinSta,
ULONG dwSize,
PVOID lpBuffer,
PULONG pRequiredSize);
NTSTATUS
NTAPI
NtUserBuildPropList(
HWND hWnd,
LPVOID Buffer,
DWORD BufferSize,
DWORD *Count);
enum {
HWND_ROUTINE_REGISTERSHELLHOOKWINDOW,
HWND_ROUTINE_DEREGISTERSHELLHOOKWINDOW
};
DWORD
NTAPI
NtUserCallHwnd(
DWORD Unknown0,
DWORD Unknown1);
#define HWNDLOCK_ROUTINE_ARRANGEICONICWINDOWS 0x54
#define HWNDLOCK_ROUTINE_DRAWMENUBAR 0x55
#define HWNDLOCK_ROUTINE_REDRAWFRAME 0x58
#define HWNDLOCK_ROUTINE_SETFOREGROUNDWINDOW 0x5B
#define HWNDLOCK_ROUTINE_UPDATEWINDOW 0x5E
BOOL
NTAPI
NtUserCallHwndLock(
HWND hWnd,
DWORD Routine);
#define HWNDOPT_ROUTINE_SETPROGMANWINDOW 0x4A
#define HWNDOPT_ROUTINE_SETTASKMANWINDOW 0x4B
HWND
NTAPI
NtUserCallHwndOpt(
HWND Param,
DWORD Routine);
DWORD
NTAPI
NtUserCallHwndParam(
DWORD Unknown0,
DWORD Unknown1,
DWORD Unknown2);
DWORD
NTAPI
NtUserCallHwndParamLock(
DWORD Unknown0,
DWORD Unknown1,
DWORD Unknown2);
BOOL
NTAPI
NtUserCallMsgFilter(
LPMSG msg,
INT code);
LRESULT
NTAPI
NtUserCallNextHookEx(
HHOOK Hook,
int Code,
WPARAM wParam,
LPARAM lParam);
#define NOPARAM_ROUTINE_MSQCLEARWAKEMASK 0x3
#define NOPARAM_ROUTINE_REGISTER_PRIMITIVE 0xffff0001 /* Private ROS */
#define NOPARAM_ROUTINE_DESTROY_CARET 0xffff0002
#define NOPARAM_ROUTINE_UNINIT_MESSAGE_PUMP 0xffff0003
#define NOPARAM_ROUTINE_INIT_MESSAGE_PUMP 0xffff0004
#define NOPARAM_ROUTINE_GETMESSAGEEXTRAINFO 0xffff0005
#define NOPARAM_ROUTINE_ANYPOPUP 0xffff0006
#define NOPARAM_ROUTINE_CSRSS_INITIALIZED 0xffff0007
DWORD
NTAPI
NtUserCallNoParam(
DWORD Routine);
#define ONEPARAM_ROUTINE_GETMENU 0x01
#define ONEPARAM_ROUTINE_ISWINDOWUNICODE 0x02
#define ONEPARAM_ROUTINE_WINDOWFROMDC 0x03
#define ONEPARAM_ROUTINE_GETWNDCONTEXTHLPID 0x04
#define ONEPARAM_ROUTINE_SWAPMOUSEBUTTON 0x05
#define ONEPARAM_ROUTINE_SETCARETBLINKTIME 0x06
#define ONEPARAM_ROUTINE_GETCARETINFO 0x07
#define ONEPARAM_ROUTINE_SWITCHCARETSHOWING 0x08
#define ONEPARAM_ROUTINE_ENUMCLIPBOARDFORMATS 0x09
#define ONEPARAM_ROUTINE_SETMESSAGEEXTRAINFO 0x0a
#define ONEPARAM_ROUTINE_GETCURSORPOSITION 0x0b
#define ONEPARAM_ROUTINE_ISWINDOWINDESTROY 0x0c
#define ONEPARAM_ROUTINE_ENABLEPROCWNDGHSTING 0x0d
#define ONEPARAM_ROUTINE_GETWINDOWINSTANCE 0x10
#define ONEPARAM_ROUTINE_MSQSETWAKEMASK 0x27
#define ONEPARAM_ROUTINE_GETKEYBOARDTYPE 0x28
#define ONEPARAM_ROUTINE_GETKEYBOARDLAYOUT 0x29
#define ONEPARAM_ROUTINE_SHOWCURSOR 0x30
#define ONEPARAM_ROUTINE_REGISTERUSERMODULE 0x31
DWORD
NTAPI
NtUserCallOneParam(
DWORD Param,
DWORD Routine);
#define TWOPARAM_ROUTINE_SETDCPENCOLOR 0x45
#define TWOPARAM_ROUTINE_SETDCBRUSHCOLOR 0x46
#define TWOPARAM_ROUTINE_GETDCCOLOR 0x47
#define TWOPARAM_ROUTINE_GETWINDOWRGNBOX 0x48
#define TWOPARAM_ROUTINE_GETWINDOWRGN 0x49
#define TWOPARAM_ROUTINE_SETMENUBARHEIGHT 0x50
#define TWOPARAM_ROUTINE_SETMENUITEMRECT 0x51
#define TWOPARAM_ROUTINE_SETGUITHRDHANDLE 0x52
#define MSQ_STATE_CAPTURE 0x1
#define MSQ_STATE_ACTIVE 0x2
#define MSQ_STATE_FOCUS 0x3
#define MSQ_STATE_MENUOWNER 0x4
#define MSQ_STATE_MOVESIZE 0x5
#define MSQ_STATE_CARET 0x6
#define TWOPARAM_ROUTINE_ENABLEWINDOW 0x53
#define TWOPARAM_ROUTINE_UNKNOWN 0x54
#define TWOPARAM_ROUTINE_SHOWOWNEDPOPUPS 0x55
#define TWOPARAM_ROUTINE_SWITCHTOTHISWINDOW 0x56
#define TWOPARAM_ROUTINE_SETWNDCONTEXTHLPID 0x58
#define TWOPARAM_ROUTINE_SETCARETPOS 0x60
#define TWOPARAM_ROUTINE_GETWINDOWINFO 0x61
#define TWOPARAM_ROUTINE_REGISTERLOGONPROC 0x62
#define TWOPARAM_ROUTINE_GETSYSCOLORBRUSHES 0x63
#define TWOPARAM_ROUTINE_GETSYSCOLORPENS 0x64
#define TWOPARAM_ROUTINE_GETSYSCOLORS 0x65
#define TWOPARAM_ROUTINE_SETSYSCOLORS 0x66
#define TWOPARAM_ROUTINE_ROS_SHOWWINDOW 0x1000
#define TWOPARAM_ROUTINE_ROS_ISACTIVEICON 0x1001
#define TWOPARAM_ROUTINE_ROS_NCDESTROY 0x1002
DWORD
NTAPI
NtUserCallTwoParam(
DWORD Param1,
DWORD Param2,
DWORD Routine);
BOOL
NTAPI
NtUserChangeClipboardChain(
HWND hWndRemove,
HWND hWndNewNext);
LONG
NTAPI
NtUserChangeDisplaySettings(
PUNICODE_STRING lpszDeviceName,
LPDEVMODEW lpDevMode,
HWND hwnd,
DWORD dwflags,
LPVOID lParam);
HWND NTAPI
NtUserChildWindowFromPointEx(HWND Parent,
LONG x,
LONG y,
UINT Flags);
BOOL
NTAPI
NtUserClipCursor(
RECT *lpRect);
BOOL
NTAPI
NtUserCloseClipboard(VOID);
BOOL
NTAPI
NtUserCloseDesktop(
HDESK hDesktop);
BOOL
NTAPI
NtUserCloseWindowStation(
HWINSTA hWinSta);
DWORD
NTAPI
NtUserConvertMemHandle(
DWORD Unknown0,
DWORD Unknown1);
int
NTAPI
NtUserCopyAcceleratorTable(
HACCEL Table,
LPACCEL Entries,
int EntriesCount);
DWORD
NTAPI
NtUserCountClipboardFormats(VOID);
HACCEL
NTAPI
NtUserCreateAcceleratorTable(
LPACCEL Entries,
SIZE_T EntriesCount);
BOOL
NTAPI
NtUserCreateCaret(
HWND hWnd,
HBITMAP hBitmap,
int nWidth,
int nHeight);
HANDLE
NTAPI
NtUserCreateCursorIconHandle(
PICONINFO IconInfo,
BOOL Indirect);
HDESK
NTAPI
NtUserCreateDesktop(
PUNICODE_STRING lpszDesktopName,
DWORD dwFlags,
ACCESS_MASK dwDesiredAccess,
LPSECURITY_ATTRIBUTES lpSecurity,
HWINSTA hWindowStation);
DWORD
NTAPI
NtUserCreateLocalMemHandle(
DWORD Unknown0,
DWORD Unknown1,
DWORD Unknown2,
DWORD Unknown3);
HWND
NTAPI
NtUserCreateWindowEx(
DWORD dwExStyle,
PUNICODE_STRING lpClassName,
PUNICODE_STRING lpWindowName,
DWORD dwStyle,
LONG x,
LONG y,
LONG nWidth,
LONG nHeight,
HWND hWndParent,
HMENU hMenu,
HINSTANCE hInstance,
LPVOID lpParam,
DWORD dwShowMode,
BOOL bUnicodeWindow);
HWINSTA
NTAPI
NtUserCreateWindowStation(
PUNICODE_STRING lpszWindowStationName,
ACCESS_MASK dwDesiredAccess,
LPSECURITY_ATTRIBUTES lpSecurity,
DWORD Unknown3,
DWORD Unknown4,
DWORD Unknown5);
DWORD
NTAPI
NtUserDdeGetQualityOfService(
DWORD Unknown0,
DWORD Unknown1,
DWORD Unknown2);
DWORD
NTAPI
NtUserDdeInitialize(
DWORD Unknown0,
DWORD Unknown1,
DWORD Unknown2,
DWORD Unknown3,
DWORD Unknown4);
DWORD
NTAPI
NtUserDdeSetQualityOfService(
DWORD Unknown0,
DWORD Unknown1,
DWORD Unknown2);
HDWP NTAPI
NtUserDeferWindowPos(HDWP WinPosInfo,
HWND Wnd,
HWND WndInsertAfter,
int x,
int y,
int cx,
int cy,
UINT Flags);
BOOL NTAPI
NtUserDefSetText(HWND WindowHandle, PUNICODE_STRING WindowText);
BOOLEAN
NTAPI
NtUserDestroyAcceleratorTable(
HACCEL Table);
BOOL
NTAPI
NtUserDestroyCursorIcon(
HANDLE Handle,
DWORD Unknown);
BOOLEAN NTAPI
NtUserDestroyWindow(HWND Wnd);
typedef struct tagNTUSERDISPATCHMESSAGEINFO
{
BOOL HandledByKernel;
BOOL Ansi;
WNDPROC Proc;
MSG Msg;
} NTUSERDISPATCHMESSAGEINFO, *PNTUSERDISPATCHMESSAGEINFO;
LRESULT
NTAPI
NtUserDispatchMessage(PNTUSERDISPATCHMESSAGEINFO MsgInfo);
BOOL
NTAPI
NtUserDragDetect(
HWND hWnd,
LONG x,
LONG y);
DWORD
NTAPI
NtUserDragObject(
HWND hwnd1,
HWND hwnd2,
UINT u1,
DWORD dw1,
HCURSOR hc1);
DWORD
NTAPI
NtUserDrawAnimatedRects(
DWORD Unknown0,
DWORD Unknown1,
DWORD Unknown2,
DWORD Unknown3);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -