📄 winuser.h
字号:
#define HCBT_CREATEWND 3
#define HCBT_DESTROYWND 4
#define HCBT_ACTIVATE 5
#define HCBT_CLICKSKIPPED 6
#define HCBT_KEYSKIPPED 7
#define HCBT_SYSCOMMAND 8
#define HCBT_SETFOCUS 9
/*
* HCBT_CREATEWND parameters pointed to by lParam
*/
typedef struct tagCBT_CREATEWNDA
{
struct tagCREATESTRUCTA *lpcs;
HWND hwndInsertAfter;
} CBT_CREATEWNDA, *LPCBT_CREATEWNDA;
/*
* HCBT_CREATEWND parameters pointed to by lParam
*/
typedef struct tagCBT_CREATEWNDW
{
struct tagCREATESTRUCTW *lpcs;
HWND hwndInsertAfter;
} CBT_CREATEWNDW, *LPCBT_CREATEWNDW;
#ifdef UNICODE
typedef CBT_CREATEWNDW CBT_CREATEWND;
typedef LPCBT_CREATEWNDW LPCBT_CREATEWND;
#else
typedef CBT_CREATEWNDA CBT_CREATEWND;
typedef LPCBT_CREATEWNDA LPCBT_CREATEWND;
#endif // UNICODE
/*
* HCBT_ACTIVATE structure pointed to by lParam
*/
typedef struct tagCBTACTIVATESTRUCT
{
BOOL fMouse;
HWND hWndActive;
} CBTACTIVATESTRUCT, *LPCBTACTIVATESTRUCT;
/*
* WH_MSGFILTER Filter Proc Codes
*/
#define MSGF_DIALOGBOX 0
#define MSGF_MESSAGEBOX 1
#define MSGF_MENU 2
#define MSGF_SCROLLBAR 5
#define MSGF_NEXTWINDOW 6
#define MSGF_MAX 8 // unused
#define MSGF_USER 4096
/*
* Shell support
*/
#define HSHELL_WINDOWCREATED 1
#define HSHELL_WINDOWDESTROYED 2
#define HSHELL_ACTIVATESHELLWINDOW 3
#if(WINVER >= 0x0400)
#define HSHELL_WINDOWACTIVATED 4
#define HSHELL_GETMINRECT 5
#define HSHELL_REDRAW 6
#define HSHELL_TASKMAN 7
#define HSHELL_LANGUAGE 8
#if(_WIN32_WINNT >= 0x0500)
#define HSHELL_ACCESSIBILITYSTATE 11
#define ACCESS_STICKYKEYS 0x0001
#define ACCESS_FILTERKEYS 0x0002
#define ACCESS_MOUSEKEYS 0x0003
#endif /* _WIN32_WINNT >= 0x0500 */
#endif /* WINVER >= 0x0400 */
/*
* Message Structure used in Journaling
*/
typedef struct tagEVENTMSG {
UINT message;
UINT paramL;
UINT paramH;
DWORD time;
HWND hwnd;
} EVENTMSG, *PEVENTMSGMSG, NEAR *NPEVENTMSGMSG, FAR *LPEVENTMSGMSG;
typedef struct tagEVENTMSG *PEVENTMSG, NEAR *NPEVENTMSG, FAR *LPEVENTMSG;
/*
* Message structure used by WH_CALLWNDPROC
*/
typedef struct tagCWPSTRUCT {
LPARAM lParam;
WPARAM wParam;
UINT message;
HWND hwnd;
} CWPSTRUCT, *PCWPSTRUCT, NEAR *NPCWPSTRUCT, FAR *LPCWPSTRUCT;
#if(WINVER >= 0x0400)
/*
* Message structure used by WH_CALLWNDPROCRET
*/
typedef struct tagCWPRETSTRUCT {
LRESULT lResult;
LPARAM lParam;
WPARAM wParam;
UINT message;
HWND hwnd;
} CWPRETSTRUCT, *PCWPRETSTRUCT, NEAR *NPCWPRETSTRUCT, FAR *LPCWPRETSTRUCT;
#endif /* WINVER >= 0x0400 */
#if (_WIN32_WINNT >= 0x0400)
/*
* Low level hook flags
*/
#define LLKHF_EXTENDED 0x00000001
#define LLKHF_INJECTED 0x00000010
#define LLKHF_ALTDOWN 0x00000020
#define LLKHF_UP 0x00000080
#define LLMHF_INJECTED 0x00000001
/*
* Structure used by WH_KEYBOARD_LL
*/
typedef struct tagKBDLLHOOKSTRUCT {
DWORD vkCode;
DWORD scanCode;
DWORD flags;
DWORD time;
DWORD dwExtraInfo;
} KBDLLHOOKSTRUCT, FAR *LPKBDLLHOOKSTRUCT, *PKBDLLHOOKSTRUCT;
/*
* Structure used by WH_MOUSE_LL
*/
typedef struct tagMSLLHOOKSTRUCT {
POINT pt;
DWORD mouseData;
DWORD flags;
DWORD time;
DWORD dwExtraInfo;
} MSLLHOOKSTRUCT, FAR *LPMSLLHOOKSTRUCT, *PMSLLHOOKSTRUCT;
#endif // (_WIN32_WINNT >= 0x0400)
/*
* Structure used by WH_DEBUG
*/
typedef struct tagDEBUGHOOKINFO
{
DWORD idThread;
DWORD idThreadInstaller;
LPARAM lParam;
WPARAM wParam;
int code;
} DEBUGHOOKINFO, *PDEBUGHOOKINFO, NEAR *NPDEBUGHOOKINFO, FAR* LPDEBUGHOOKINFO;
/*
* Structure used by WH_MOUSE
*/
typedef struct tagMOUSEHOOKSTRUCT {
POINT pt;
HWND hwnd;
UINT wHitTestCode;
DWORD dwExtraInfo;
} MOUSEHOOKSTRUCT, FAR *LPMOUSEHOOKSTRUCT, *PMOUSEHOOKSTRUCT;
#if(WINVER >= 0x0400)
/*
* Structure used by WH_HARDWARE
*/
typedef struct tagHARDWAREHOOKSTRUCT {
HWND hwnd;
UINT message;
WPARAM wParam;
LPARAM lParam;
} HARDWAREHOOKSTRUCT, FAR *LPHARDWAREHOOKSTRUCT, *PHARDWAREHOOKSTRUCT;
#endif /* WINVER >= 0x0400 */
#endif /* !NOWH */
/*
* Keyboard Layout API
*/
#define HKL_PREV 0
#define HKL_NEXT 1
#define KLF_ACTIVATE 0x00000001
#define KLF_SUBSTITUTE_OK 0x00000002
#define KLF_UNLOADPREVIOUS 0x00000004
#define KLF_REORDER 0x00000008
#if(WINVER >= 0x0400)
#define KLF_REPLACELANG 0x00000010
#define KLF_NOTELLSHELL 0x00000080
#endif /* WINVER >= 0x0400 */
#define KLF_SETFORPROCESS 0x00000100
/*
* Size of KeyboardLayoutName (number of characters), including nul terminator
*/
#define KL_NAMELENGTH 9
WINUSERAPI
HKL
WINAPI
LoadKeyboardLayoutA(
LPCSTR pwszKLID,
UINT Flags);
WINUSERAPI
HKL
WINAPI
LoadKeyboardLayoutW(
LPCWSTR pwszKLID,
UINT Flags);
#ifdef UNICODE
#define LoadKeyboardLayout LoadKeyboardLayoutW
#else
#define LoadKeyboardLayout LoadKeyboardLayoutA
#endif // !UNICODE
#if(WINVER >= 0x0400)
WINUSERAPI
HKL
WINAPI
ActivateKeyboardLayout(
HKL hkl,
UINT Flags);
#else
WINUSERAPI
BOOL
WINAPI
ActivateKeyboardLayout(
HKL hkl,
UINT Flags);
#endif /* WINVER >= 0x0400 */
#if(WINVER >= 0x0400)
WINUSERAPI
int
WINAPI
ToUnicodeEx(
UINT wVirtKey,
UINT wScanCode,
PBYTE lpKeyState,
LPWSTR pwszBuff,
int cchBuff,
UINT wFlags,
HKL dwhkl);
#endif /* WINVER >= 0x0400 */
WINUSERAPI
BOOL
WINAPI
UnloadKeyboardLayout(
HKL hkl);
WINUSERAPI
BOOL
WINAPI
GetKeyboardLayoutNameA(
LPSTR pwszKLID);
WINUSERAPI
BOOL
WINAPI
GetKeyboardLayoutNameW(
LPWSTR pwszKLID);
#ifdef UNICODE
#define GetKeyboardLayoutName GetKeyboardLayoutNameW
#else
#define GetKeyboardLayoutName GetKeyboardLayoutNameA
#endif // !UNICODE
#if(WINVER >= 0x0400)
WINUSERAPI
int
WINAPI
GetKeyboardLayoutList(
int nBuff,
HKL FAR *lpList);
WINUSERAPI
HKL
WINAPI
GetKeyboardLayout(
DWORD dwLayout
);
#endif /* WINVER >= 0x0400 */
#if(WINVER >= 0x0500)
typedef struct tagMOUSEMOVEPOINT {
int x;
int y;
DWORD time;
DWORD dwExtraInfo;
} MOUSEMOVEPOINT, *PMOUSEMOVEPOINT, FAR* LPMOUSEMOVEPOINT;
/*
* Values for resolution parameter of GetMouseMovePoints
*/
#define GMMP_USE_DISPLAY_POINTS 1
#define GMMP_USE_DRIVER_POINTS 2
WINUSERAPI
int
WINAPI
GetMouseMovePoints(
UINT cbSize,
LPMOUSEMOVEPOINT lppt,
LPMOUSEMOVEPOINT lpptBuf,
int nBufPoints,
DWORD resolution
);
#endif /* WINVER >= 0x0500 */
#ifndef NODESKTOP
/*
* Desktop-specific access flags
*/
#define DESKTOP_READOBJECTS 0x0001L
#define DESKTOP_CREATEWINDOW 0x0002L
#define DESKTOP_CREATEMENU 0x0004L
#define DESKTOP_HOOKCONTROL 0x0008L
#define DESKTOP_JOURNALRECORD 0x0010L
#define DESKTOP_JOURNALPLAYBACK 0x0020L
#define DESKTOP_ENUMERATE 0x0040L
#define DESKTOP_WRITEOBJECTS 0x0080L
#define DESKTOP_SWITCHDESKTOP 0x0100L
/*
* Desktop-specific control flags
*/
#define DF_ALLOWOTHERACCOUNTHOOK 0x0001L
#ifdef _WINGDI_
#ifndef NOGDI
WINUSERAPI
HDESK
WINAPI
CreateDesktopA(
LPSTR lpszDesktop,
LPSTR lpszDevice,
LPDEVMODEA pDevmode,
DWORD dwFlags,
ACCESS_MASK dwDesiredAccess,
LPSECURITY_ATTRIBUTES lpsa);
WINUSERAPI
HDESK
WINAPI
CreateDesktopW(
LPWSTR lpszDesktop,
LPWSTR lpszDevice,
LPDEVMODEW pDevmode,
DWORD dwFlags,
ACCESS_MASK dwDesiredAccess,
LPSECURITY_ATTRIBUTES lpsa);
#ifdef UNICODE
#define CreateDesktop CreateDesktopW
#else
#define CreateDesktop CreateDesktopA
#endif // !UNICODE
#endif /* NOGDI */
#endif /* _WINGDI_ */
WINUSERAPI
HDESK
WINAPI
OpenDesktopA(
LPSTR lpszDesktop,
DWORD dwFlags,
BOOL fInherit,
ACCESS_MASK dwDesiredAccess);
WINUSERAPI
HDESK
WINAPI
OpenDesktopW(
LPWSTR lpszDesktop,
DWORD dwFlags,
BOOL fInherit,
ACCESS_MASK dwDesiredAccess);
#ifdef UNICODE
#define OpenDesktop OpenDesktopW
#else
#define OpenDesktop OpenDesktopA
#endif // !UNICODE
WINUSERAPI
HDESK
WINAPI
OpenInputDesktop(
DWORD dwFlags,
BOOL fInherit,
ACCESS_MASK dwDesiredAccess);
WINUSERAPI
BOOL
WINAPI
EnumDesktopsA(
HWINSTA hwinsta,
DESKTOPENUMPROCA lpEnumFunc,
LPARAM lParam);
WINUSERAPI
BOOL
WINAPI
EnumDesktopsW(
HWINSTA hwinsta,
DESKTOPENUMPROCW lpEnumFunc,
LPARAM lParam);
#ifdef UNICODE
#define EnumDesktops EnumDesktopsW
#else
#define EnumDesktops EnumDesktopsA
#endif // !UNICODE
WINUSERAPI
BOOL
WINAPI
EnumDesktopWindows(
HDESK hDesktop,
WNDENUMPROC lpfn,
LPARAM lParam);
WINUSERAPI
BOOL
WINAPI
SwitchDesktop(
HDESK hDesktop);
WINUSERAPI
BOOL
WINAPI
SetThreadDesktop(
HDESK hDesktop);
WINUSERAPI
BOOL
WINAPI
CloseDesktop(
HDESK hDesktop);
WINUSERAPI
HDESK
WINAPI
GetThreadDesktop(
DWORD dwThreadId);
#endif /* !NODESKTOP */
#ifndef NOWINDOWSTATION
/*
* Windowstation-specific access flags
*/
#define WINSTA_ENUMDESKTOPS 0x0001L
#define WINSTA_READATTRIBUTES 0x0002L
#define WINSTA_ACCESSCLIPBOARD 0x0004L
#define WINSTA_CREATEDESKTOP 0x0008L
#define WINSTA_WRITEATTRIBUTES 0x0010L
#define WINSTA_ACCESSGLOBALATOMS 0x0020L
#define WINSTA_EXITWINDOWS 0x0040L
#define WINSTA_ENUMERATE 0x0100L
#define WINSTA_READSCREEN 0x0200L
/*
* Windowstation-specific attribute flags
*/
#define WSF_VISIBLE 0x0001L
WINUSERAPI
HWINSTA
WINAPI
CreateWindowStationA(
LPSTR lpwinsta,
DWORD dwReserved,
ACCESS_MASK dwDesiredAccess,
LPSECURITY_ATTRIBUTES lpsa);
WINUSERAPI
HWINSTA
WINAPI
CreateWindowStationW(
LPWSTR lpwinsta,
DWORD dwReserved,
ACCESS_MASK dwDesiredAccess,
LPSECURITY_ATTRIBUTES lpsa);
#ifdef UNICODE
#define CreateWindowStation CreateWindowStationW
#else
#define CreateWindowStation CreateWindowStationA
#endif // !UNICODE
WINUSERAPI
HWINSTA
WINAPI
OpenWindowStationA(
LPSTR lpszWinSta,
BOOL fInherit,
ACCESS_MASK dwDesiredAccess);
WINUSERAPI
HWINSTA
WINAPI
OpenWindowStationW(
LPWSTR lpszWinSta,
BOOL fInherit,
ACCESS_MASK dwDesiredAccess);
#ifdef UNICODE
#define OpenWindowStation OpenWindowStationW
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -