⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ntuser.h

📁 这是一个开放源代码的与WINNT/WIN2K/WIN2003兼容的操作系统
💻 H
📖 第 1 页 / 共 3 页
字号:
#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 + -