📄 winuser.h
字号:
POINT pt;
HWND hwnd;
UINT wHitTestCode;
ULONG_PTR dwExtraInfo;
} MOUSEHOOKSTRUCT, FAR *LPMOUSEHOOKSTRUCT, *PMOUSEHOOKSTRUCT;
#if(_WIN32_WINNT >= 0x0500)
#ifdef __cplusplus
typedef struct tagMOUSEHOOKSTRUCTEX : public tagMOUSEHOOKSTRUCT
{
DWORD mouseData;
} MOUSEHOOKSTRUCTEX, *LPMOUSEHOOKSTRUCTEX, *PMOUSEHOOKSTRUCTEX;
#else // ndef __cplusplus
typedef struct tagMOUSEHOOKSTRUCTEX
{
MOUSEHOOKSTRUCT;
DWORD mouseData;
} MOUSEHOOKSTRUCTEX, *LPMOUSEHOOKSTRUCTEX, *PMOUSEHOOKSTRUCTEX;
#endif
#endif /* _WIN32_WINNT >= 0x0500 */
#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_REORDER 0x00000008
#if(WINVER >= 0x0400)
#define KLF_REPLACELANG 0x00000010
#define KLF_NOTELLSHELL 0x00000080
#endif /* WINVER >= 0x0400 */
#define KLF_SETFORPROCESS 0x00000100
#if(_WIN32_WINNT >= 0x0500)
#define KLF_SHIFTLOCK 0x00010000
#define KLF_RESET 0x40000000
#endif /* _WIN32_WINNT >= 0x0500 */
#if(WINVER >= 0x0500)
/*
* Bits in wParam of WM_INPUTLANGCHANGEREQUEST message
*/
#define INPUTLANGCHANGE_SYSCHARSET 0x0001
#define INPUTLANGCHANGE_FORWARD 0x0002
#define INPUTLANGCHANGE_BACKWARD 0x0004
#endif /* WINVER >= 0x0500 */
/*
* Size of KeyboardLayoutName (number of characters), including nul terminator
*/
#define KL_NAMELENGTH 9
WINUSERAPI
HKL
WINAPI
LoadKeyboardLayoutA(
IN LPCSTR pwszKLID,
IN UINT Flags);
WINUSERAPI
HKL
WINAPI
LoadKeyboardLayoutW(
IN LPCWSTR pwszKLID,
IN UINT Flags);
#ifdef UNICODE
#define LoadKeyboardLayout LoadKeyboardLayoutW
#else
#define LoadKeyboardLayout LoadKeyboardLayoutA
#endif // !UNICODE
#if(WINVER >= 0x0400)
WINUSERAPI
HKL
WINAPI
ActivateKeyboardLayout(
IN HKL hkl,
IN UINT Flags);
#else
WINUSERAPI
BOOL
WINAPI
ActivateKeyboardLayout(
IN HKL hkl,
IN UINT Flags);
#endif /* WINVER >= 0x0400 */
#if(WINVER >= 0x0400)
WINUSERAPI
int
WINAPI
ToUnicodeEx(
IN UINT wVirtKey,
IN UINT wScanCode,
IN CONST BYTE *lpKeyState,
OUT LPWSTR pwszBuff,
IN int cchBuff,
IN UINT wFlags,
IN HKL dwhkl);
#endif /* WINVER >= 0x0400 */
WINUSERAPI
BOOL
WINAPI
UnloadKeyboardLayout(
IN HKL hkl);
WINUSERAPI
BOOL
WINAPI
GetKeyboardLayoutNameA(
OUT LPSTR pwszKLID);
WINUSERAPI
BOOL
WINAPI
GetKeyboardLayoutNameW(
OUT LPWSTR pwszKLID);
#ifdef UNICODE
#define GetKeyboardLayoutName GetKeyboardLayoutNameW
#else
#define GetKeyboardLayoutName GetKeyboardLayoutNameA
#endif // !UNICODE
#if(WINVER >= 0x0400)
WINUSERAPI
int
WINAPI
GetKeyboardLayoutList(
IN int nBuff,
OUT HKL FAR *lpList);
WINUSERAPI
HKL
WINAPI
GetKeyboardLayout(
IN DWORD idThread
);
#endif /* WINVER >= 0x0400 */
#if(WINVER >= 0x0500)
typedef struct tagMOUSEMOVEPOINT {
int x;
int y;
DWORD time;
ULONG_PTR dwExtraInfo;
} MOUSEMOVEPOINT, *PMOUSEMOVEPOINT, FAR* LPMOUSEMOVEPOINT;
/*
* Values for resolution parameter of GetMouseMovePointsEx
*/
#define GMMP_USE_DISPLAY_POINTS 1
#define GMMP_USE_HIGH_RESOLUTION_POINTS 2
WINUSERAPI
int
WINAPI
GetMouseMovePointsEx(
IN UINT cbSize,
IN LPMOUSEMOVEPOINT lppt,
IN LPMOUSEMOVEPOINT lpptBuf,
IN int nBufPoints,
IN 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(
IN LPCSTR lpszDesktop,
IN LPCSTR lpszDevice,
IN LPDEVMODEA pDevmode,
IN DWORD dwFlags,
IN ACCESS_MASK dwDesiredAccess,
IN LPSECURITY_ATTRIBUTES lpsa);
WINUSERAPI
HDESK
WINAPI
CreateDesktopW(
IN LPCWSTR lpszDesktop,
IN LPCWSTR lpszDevice,
IN LPDEVMODEW pDevmode,
IN DWORD dwFlags,
IN ACCESS_MASK dwDesiredAccess,
IN LPSECURITY_ATTRIBUTES lpsa);
#ifdef UNICODE
#define CreateDesktop CreateDesktopW
#else
#define CreateDesktop CreateDesktopA
#endif // !UNICODE
#endif /* NOGDI */
#endif /* _WINGDI_ */
WINUSERAPI
HDESK
WINAPI
OpenDesktopA(
IN LPCSTR lpszDesktop,
IN DWORD dwFlags,
IN BOOL fInherit,
IN ACCESS_MASK dwDesiredAccess);
WINUSERAPI
HDESK
WINAPI
OpenDesktopW(
IN LPCWSTR lpszDesktop,
IN DWORD dwFlags,
IN BOOL fInherit,
IN ACCESS_MASK dwDesiredAccess);
#ifdef UNICODE
#define OpenDesktop OpenDesktopW
#else
#define OpenDesktop OpenDesktopA
#endif // !UNICODE
WINUSERAPI
HDESK
WINAPI
OpenInputDesktop(
IN DWORD dwFlags,
IN BOOL fInherit,
IN ACCESS_MASK dwDesiredAccess);
WINUSERAPI
BOOL
WINAPI
EnumDesktopsA(
IN HWINSTA hwinsta,
IN DESKTOPENUMPROCA lpEnumFunc,
IN LPARAM lParam);
WINUSERAPI
BOOL
WINAPI
EnumDesktopsW(
IN HWINSTA hwinsta,
IN DESKTOPENUMPROCW lpEnumFunc,
IN LPARAM lParam);
#ifdef UNICODE
#define EnumDesktops EnumDesktopsW
#else
#define EnumDesktops EnumDesktopsA
#endif // !UNICODE
WINUSERAPI
BOOL
WINAPI
EnumDesktopWindows(
IN HDESK hDesktop,
IN WNDENUMPROC lpfn,
IN LPARAM lParam);
WINUSERAPI
BOOL
WINAPI
SwitchDesktop(
IN HDESK hDesktop);
WINUSERAPI
BOOL
WINAPI
SetThreadDesktop(
IN HDESK hDesktop);
WINUSERAPI
BOOL
WINAPI
CloseDesktop(
IN HDESK hDesktop);
WINUSERAPI
HDESK
WINAPI
GetThreadDesktop(
IN 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 creation flags.
*/
#define CWF_CREATE_ONLY 0x0001L
/*
* Windowstation-specific attribute flags
*/
#define WSF_VISIBLE 0x0001L
WINUSERAPI
HWINSTA
WINAPI
CreateWindowStationA(
IN LPCSTR lpwinsta,
IN DWORD dwFlags,
IN ACCESS_MASK dwDesiredAccess,
IN LPSECURITY_ATTRIBUTES lpsa);
WINUSERAPI
HWINSTA
WINAPI
CreateWindowStationW(
IN LPCWSTR lpwinsta,
IN DWORD dwFlags,
IN ACCESS_MASK dwDesiredAccess,
IN LPSECURITY_ATTRIBUTES lpsa);
#ifdef UNICODE
#define CreateWindowStation CreateWindowStationW
#else
#define CreateWindowStation CreateWindowStationA
#endif // !UNICODE
WINUSERAPI
HWINSTA
WINAPI
OpenWindowStationA(
IN LPCSTR lpszWinSta,
IN BOOL fInherit,
IN ACCESS_MASK dwDesiredAccess);
WINUSERAPI
HWINSTA
WINAPI
OpenWindowStationW(
IN LPCWSTR lpszWinSta,
IN BOOL fInherit,
IN ACCESS_MASK dwDesiredAccess);
#ifdef UNICODE
#define OpenWindowStation OpenWindowStationW
#else
#define OpenWindowStation OpenWindowStationA
#endif // !UNICODE
WINUSERAPI
BOOL
WINAPI
EnumWindowStationsA(
IN WINSTAENUMPROCA lpEnumFunc,
IN LPARAM lParam);
WINUSERAPI
BOOL
WINAPI
EnumWindowStationsW(
IN WINSTAENUMPROCW lpEnumFunc,
IN LPARAM lParam);
#ifdef UNICODE
#define EnumWindowStations EnumWindowStationsW
#else
#define EnumWindowStations EnumWindowStationsA
#endif // !UNICODE
WINUSERAPI
BOOL
WINAPI
CloseWindowStation(
IN HWINSTA hWinSta);
WINUSERAPI
BOOL
WINAPI
SetProcessWindowStation(
IN HWINSTA hWinSta);
WINUSERAPI
HWINSTA
WINAPI
GetProcessWindowStation(
VOID);
#endif /* !NOWINDOWSTATION */
#ifndef NOSECURITY
WINUSERAPI
BOOL
WINAPI
SetUserObjectSecurity(
IN HANDLE hObj,
IN PSECURITY_INFORMATION pSIRequested,
IN PSECURITY_DESCRIPTOR pSID);
WINUSERAPI
BOOL
WINAPI
GetUserObjectSecurity(
IN HANDLE hObj,
IN PSECURITY_INFORMATION pSIRequested,
IN OUT PSECURITY_DESCRIPTOR pSID,
IN DWORD nLength,
OUT LPDWORD lpnLengthNeeded);
#define UOI_FLAGS 1
#define UOI_NAME 2
#define UOI_TYPE 3
#define UOI_USER_SID 4
typedef struct tagUSEROBJECTFLAGS {
BOOL fInherit;
BOOL fReserved;
DWORD dwFlags;
} USEROBJECTFLAGS, *PUSEROBJECTFLAGS;
WINUSERAPI
BOOL
WINAPI
GetUserObjectInformationA(
IN HANDLE hObj,
IN int nIndex,
OUT PVOID pvInfo,
IN DWORD nLength,
OUT LPDWORD lpnLengthNeeded);
WINUSERAPI
BOOL
WINAPI
GetUserObjectInformationW(
IN HANDLE hObj,
IN int nIndex,
OUT PVOID pvInfo,
IN DWORD nLength,
OUT LPDWORD lpnLengthNeeded);
#ifdef UNICODE
#define GetUserObjectInformation GetUserObjectInformationW
#else
#define GetUserObjectInformation GetUserObjectInformationA
#endif // !UNICODE
WINUSERAPI
BOOL
WINAPI
SetUserObjectInformationA(
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -