📄 winuser.pas
字号:
{$EXTERNALSYM DESKTOP_CREATEWINDOW}
DESKTOP_CREATEMENU = $0004;
{$EXTERNALSYM DESKTOP_CREATEMENU}
DESKTOP_HOOKCONTROL = $0008;
{$EXTERNALSYM DESKTOP_HOOKCONTROL}
DESKTOP_JOURNALRECORD = $0010;
{$EXTERNALSYM DESKTOP_JOURNALRECORD}
DESKTOP_JOURNALPLAYBACK = $0020;
{$EXTERNALSYM DESKTOP_JOURNALPLAYBACK}
DESKTOP_ENUMERATE = $0040;
{$EXTERNALSYM DESKTOP_ENUMERATE}
DESKTOP_WRITEOBJECTS = $0080;
{$EXTERNALSYM DESKTOP_WRITEOBJECTS}
DESKTOP_SWITCHDESKTOP = $0100;
{$EXTERNALSYM DESKTOP_SWITCHDESKTOP}
//
// Desktop-specific control flags
//
DF_ALLOWOTHERACCOUNTHOOK = $0001;
{$EXTERNALSYM DF_ALLOWOTHERACCOUNTHOOK}
function CreateDesktopA(lpszDesktop, lpszDevice: LPCSTR; pDevmode: LPDEVMODEA;
dwFlags: DWORD; dwDesiredAccess: ACCESS_MASK; lpsa: LPSECURITY_ATTRIBUTES): HDESK; stdcall;
{$EXTERNALSYM CreateDesktopA}
function CreateDesktopW(lpszDesktop, lpszDevice: LPCWSTR; pDevmode: LPDEVMODEW;
dwFlags: DWORD; dwDesiredAccess: ACCESS_MASK; lpsa: LPSECURITY_ATTRIBUTES): HDESK; stdcall;
{$EXTERNALSYM CreateDesktopW}
{$IFDEF UNICODE}
function CreateDesktop(lpszDesktop, lpszDevice: LPCWSTR; pDevmode: LPDEVMODEW;
dwFlags: DWORD; dwDesiredAccess: ACCESS_MASK; lpsa: LPSECURITY_ATTRIBUTES): HDESK; stdcall;
{$EXTERNALSYM CreateDesktop}
{$ELSE}
function CreateDesktop(lpszDesktop, lpszDevice: LPCSTR; pDevmode: LPDEVMODEA;
dwFlags: DWORD; dwDesiredAccess: ACCESS_MASK; lpsa: LPSECURITY_ATTRIBUTES): HDESK; stdcall;
{$EXTERNALSYM CreateDesktop}
{$ENDIF}
function OpenDesktopA(lpszDesktop: LPCSTR; dwFlags: DWORD; fInherit: BOOL;
dwDesiredAccess: ACCESS_MASK): HDESK; stdcall;
{$EXTERNALSYM OpenDesktopA}
function OpenDesktopW(lpszDesktop: LPCWSTR; dwFlags: DWORD; fInherit: BOOL;
dwDesiredAccess: ACCESS_MASK): HDESK; stdcall;
{$EXTERNALSYM OpenDesktopW}
{$IFDEF UNICODE}
function OpenDesktop(lpszDesktop: LPCWSTR; dwFlags: DWORD; fInherit: BOOL;
dwDesiredAccess: ACCESS_MASK): HDESK; stdcall;
{$EXTERNALSYM OpenDesktop}
{$ELSE}
function OpenDesktop(lpszDesktop: LPCSTR; dwFlags: DWORD; fInherit: BOOL;
dwDesiredAccess: ACCESS_MASK): HDESK; stdcall;
{$EXTERNALSYM OpenDesktop}
{$ENDIF}
function OpenInputDesktop(dwFlags: DWORD; fInherit: BOOL;
dwDesiredAccess: ACCESS_MASK): HDESK; stdcall;
{$EXTERNALSYM OpenInputDesktop}
function EnumDesktopsA(hwinsta: HWINSTA; lpEnumFunc: DESKTOPENUMPROCA;
lParam: LPARAM): BOOL; stdcall;
{$EXTERNALSYM EnumDesktopsA}
function EnumDesktopsW(hwinsta: HWINSTA; lpEnumFunc: DESKTOPENUMPROCW;
lParam: LPARAM): BOOL; stdcall;
{$EXTERNALSYM EnumDesktopsW}
{$IFDEF UNICODE}
function EnumDesktops(hwinsta: HWINSTA; lpEnumFunc: DESKTOPENUMPROCW;
lParam: LPARAM): BOOL; stdcall;
{$EXTERNALSYM EnumDesktops}
{$ELSE}
function EnumDesktops(hwinsta: HWINSTA; lpEnumFunc: DESKTOPENUMPROCA;
lParam: LPARAM): BOOL; stdcall;
{$EXTERNALSYM EnumDesktops}
{$ENDIF}
function EnumDesktopWindows(hDesktop: HDESK; lpfn: WNDENUMPROC; lParam: LPARAM): BOOL; stdcall;
{$EXTERNALSYM EnumDesktopWindows}
function SwitchDesktop(hDesktop: HDESK): BOOL; stdcall;
{$EXTERNALSYM SwitchDesktop}
function SetThreadDesktop(hDesktop: HDESK): BOOL; stdcall;
{$EXTERNALSYM SetThreadDesktop}
function CloseDesktop(hDesktop: HDESK): BOOL; stdcall;
{$EXTERNALSYM CloseDesktop}
function GetThreadDesktop(dwThreadId: DWORD): HDESK; stdcall;
{$EXTERNALSYM GetThreadDesktop}
//
// Windowstation-specific access flags
//
const
WINSTA_ENUMDESKTOPS = $0001;
{$EXTERNALSYM WINSTA_ENUMDESKTOPS}
WINSTA_READATTRIBUTES = $0002;
{$EXTERNALSYM WINSTA_READATTRIBUTES}
WINSTA_ACCESSCLIPBOARD = $0004;
{$EXTERNALSYM WINSTA_ACCESSCLIPBOARD}
WINSTA_CREATEDESKTOP = $0008;
{$EXTERNALSYM WINSTA_CREATEDESKTOP}
WINSTA_WRITEATTRIBUTES = $0010;
{$EXTERNALSYM WINSTA_WRITEATTRIBUTES}
WINSTA_ACCESSGLOBALATOMS = $0020;
{$EXTERNALSYM WINSTA_ACCESSGLOBALATOMS}
WINSTA_EXITWINDOWS = $0040;
{$EXTERNALSYM WINSTA_EXITWINDOWS}
WINSTA_ENUMERATE = $0100;
{$EXTERNALSYM WINSTA_ENUMERATE}
WINSTA_READSCREEN = $0200;
{$EXTERNALSYM WINSTA_READSCREEN}
//
// Windowstation-specific attribute flags
//
WSF_VISIBLE = $0001;
{$EXTERNALSYM WSF_VISIBLE}
function CreateWindowStationA(lpwinsta: LPCSTR; dwReserved: DWORD;
dwDesiredAccess: ACCESS_MASK; lpsa: LPSECURITY_ATTRIBUTES): HWINSTA; stdcall;
{$EXTERNALSYM CreateWindowStationA}
function CreateWindowStationW(lpwinsta: LPCWSTR; dwReserved: DWORD;
dwDesiredAccess: ACCESS_MASK; lpsa: LPSECURITY_ATTRIBUTES): HWINSTA; stdcall;
{$EXTERNALSYM CreateWindowStationW}
{$IFDEF UNICODE}
function CreateWindowStation(lpwinsta: LPCWSTR; dwReserved: DWORD;
dwDesiredAccess: ACCESS_MASK; lpsa: LPSECURITY_ATTRIBUTES): HWINSTA; stdcall;
{$EXTERNALSYM CreateWindowStation}
{$ELSE}
function CreateWindowStation(lpwinsta: LPCSTR; dwReserved: DWORD;
dwDesiredAccess: ACCESS_MASK; lpsa: LPSECURITY_ATTRIBUTES): HWINSTA; stdcall;
{$EXTERNALSYM CreateWindowStation}
{$ENDIF}
function OpenWindowStationA(lpszWinSta: LPCSTR; fInherit: BOOL;
dwDesiredAccess: ACCESS_MASK): HWINSTA; stdcall;
{$EXTERNALSYM OpenWindowStationA}
function OpenWindowStationW(lpszWinSta: LPCWSTR; fInherit: BOOL;
dwDesiredAccess: ACCESS_MASK): HWINSTA; stdcall;
{$EXTERNALSYM OpenWindowStationW}
{$IFDEF UNICODE}
function OpenWindowStation(lpszWinSta: LPCWSTR; fInherit: BOOL;
dwDesiredAccess: ACCESS_MASK): HWINSTA; stdcall;
{$EXTERNALSYM OpenWindowStation}
{$ELSE}
function OpenWindowStation(lpszWinSta: LPCSTR; fInherit: BOOL;
dwDesiredAccess: ACCESS_MASK): HWINSTA; stdcall;
{$EXTERNALSYM OpenWindowStation}
{$ENDIF}
function EnumWindowStationsA(lpEnumFunc: WINSTAENUMPROCA; lParam: LPARAM): BOOL; stdcall;
{$EXTERNALSYM EnumWindowStationsA}
function EnumWindowStationsW(lpEnumFunc: WINSTAENUMPROCW; lParam: LPARAM): BOOL; stdcall;
{$EXTERNALSYM EnumWindowStationsW}
{$IFDEF UNICODE}
function EnumWindowStations(lpEnumFunc: WINSTAENUMPROCW; lParam: LPARAM): BOOL; stdcall;
{$EXTERNALSYM EnumWindowStations}
{$ELSE}
function EnumWindowStations(lpEnumFunc: WINSTAENUMPROCA; lParam: LPARAM): BOOL; stdcall;
{$EXTERNALSYM EnumWindowStations}
{$ENDIF}
function CloseWindowStation(hWinSta: HWINSTA): BOOL; stdcall;
{$EXTERNALSYM CloseWindowStation}
function SetProcessWindowStation(hWinSta: HWINSTA): BOOL; stdcall;
{$EXTERNALSYM SetProcessWindowStation}
function GetProcessWindowStation: HWINSTA; stdcall;
{$EXTERNALSYM GetProcessWindowStation}
function SetUserObjectSecurity(hObj: HANDLE; var pSIRequested: SECURITY_INFORMATION;
pSID: PSECURITY_DESCRIPTOR): BOOL; stdcall;
{$EXTERNALSYM SetUserObjectSecurity}
function GetUserObjectSecurity(hObj: HANDLE; var pSIRequested: SECURITY_INFORMATION;
pSID: PSECURITY_DESCRIPTOR; nLength: DWORD; var lpnLengthNeeded: DWORD): BOOL; stdcall;
{$EXTERNALSYM GetUserObjectSecurity}
const
UOI_FLAGS = 1;
{$EXTERNALSYM UOI_FLAGS}
UOI_NAME = 2;
{$EXTERNALSYM UOI_NAME}
UOI_TYPE = 3;
{$EXTERNALSYM UOI_TYPE}
UOI_USER_SID = 4;
{$EXTERNALSYM UOI_USER_SID}
type
PUSEROBJECTFLAGS = ^USEROBJECTFLAGS;
tagUSEROBJECTFLAGS = record
fInherit: BOOL;
fReserved: BOOL;
dwFlags: DWORD;
end;
{$EXTERNALSYM tagUSEROBJECTFLAGS}
USEROBJECTFLAGS = tagUSEROBJECTFLAGS;
{$EXTERNALSYM USEROBJECTFLAGS}
TUserObjectFlags = USEROBJECTFLAGS;
function GetUserObjectInformationA(hObj: HANDLE; nIndex: Integer; pvInfo: PVOID;
nLength: DWORD; var lpnLengthNeeded: DWORD): BOOL; stdcall;
{$EXTERNALSYM GetUserObjectInformationA}
function GetUserObjectInformationW(hObj: HANDLE; nIndex: Integer; pvInfo: PVOID;
nLength: DWORD; var lpnLengthNeeded: DWORD): BOOL; stdcall;
{$EXTERNALSYM GetUserObjectInformationW}
{$IFDEF UNICODE}
function GetUserObjectInformation(hObj: HANDLE; nIndex: Integer; pvInfo: PVOID;
nLength: DWORD; var lpnLengthNeeded: DWORD): BOOL; stdcall;
{$EXTERNALSYM GetUserObjectInformation}
{$ELSE}
function GetUserObjectInformation(hObj: HANDLE; nIndex: Integer; pvInfo: PVOID;
nLength: DWORD; var lpnLengthNeeded: DWORD): BOOL; stdcall;
{$EXTERNALSYM GetUserObjectInformation}
{$ENDIF}
function SetUserObjectInformationA(hObj: HANDLE; nIndex: Integer; pvInfo: PVOID;
nLength: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetUserObjectInformationA}
function SetUserObjectInformationW(hObj: HANDLE; nIndex: Integer; pvInfo: PVOID;
nLength: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetUserObjectInformationW}
{$IFDEF UNICODE}
function SetUserObjectInformation(hObj: HANDLE; nIndex: Integer; pvInfo: PVOID;
nLength: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetUserObjectInformation}
{$ELSE}
function SetUserObjectInformation(hObj: HANDLE; nIndex: Integer; pvInfo: PVOID;
nLength: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetUserObjectInformation}
{$ENDIF}
type
LPWNDCLASSEXA = ^WNDCLASSEXA;
{$EXTERNALSYM LPWNDCLASSEXA}
tagWNDCLASSEXA = record
cbSize: UINT;
// Win 3.x
style: UINT;
lpfnWndProc: WNDPROC;
cbClsExtra: Integer;
cbWndExtra: Integer;
hInstance: HINSTANCE;
hIcon: HICON;
hCursor: HCURSOR;
hbrBackground: HBRUSH;
lpszMenuName: LPCSTR;
lpszClassName: LPCSTR;
// Win 4.0
hIconSm: HICON;
end;
{$EXTERNALSYM tagWNDCLASSEXA}
WNDCLASSEXA = tagWNDCLASSEXA;
{$EXTERNALSYM WNDCLASSEXA}
NPWNDCLASSEXA = ^WNDCLASSEXA;
{$EXTERNALSYM NPWNDCLASSEXA}
TWndClassExA = WNDCLASSEXA;
PWndClassExA = LPWNDCLASSEXA;
LPWNDCLASSEXW = ^WNDCLASSEXW;
{$EXTERNALSYM LPWNDCLASSEXW}
tagWNDCLASSEXW = record
cbSize: UINT;
// Win 3.x
style: UINT;
lpfnWndProc: WNDPROC;
cbClsExtra: Integer;
cbWndExtra: Integer;
hInstance: HINSTANCE;
hIcon: HICON;
hCursor: HCURSOR;
hbrBackground: HBRUSH;
lpszMenuName: LPCWSTR;
lpszClassName: LPCWSTR;
// Win 4.0
hIconSm: HICON;
end;
{$EXTERNALSYM tagWNDCLASSEXW}
WNDCLASSEXW = tagWNDCLASSEXW;
{$EXTERNALSYM WNDCLASSEXW}
NPWNDCLASSEXW = ^WNDCLASSEXW;
{$EXTERNALSYM NPWNDCLASSEXW}
TWndClassExW = WNDCLASSEXW;
PWndClassExW = LPWNDCLASSEXW;
{$IFDEF UNICODE}
WNDCLASSEX = WNDCLASSEXW;
{$EXTERNALSYM WNDCLASSEX}
NPWNDCLASSEX = NPWNDCLASSEXW;
{$EXTERNALSYM NPWNDCLASSEX}
LPWNDCLASSEX = LPWNDCLASSEXW;
{$EXTERNALSYM LPWNDCLASSEX}
TWndClassEx = TWndClassExW;
PWndClassEx = PWndClassExW;
{$ELSE}
WNDCLASSEX = WNDCLASSEXA;
{$EXTERNALSYM WNDCLASSEX}
NPWNDCLASSEX = NPWNDCLASSEXA;
{$EXTERNALSYM NPWNDCLASSEX}
LPWNDCLASSEX = LPWNDCLASSEXA;
{$EXTERNALSYM LPWNDCLASSEX}
TWndClassEx = TWndClassExA;
PWndClassEx = PWndClassExA;
{$ENDIF}
LPWNDCLASSA = ^WNDCLASSA;
{$EXTERNALSYM LPWNDCLASSA}
tagWNDCLASSA = record
style: UINT;
lpfnWndProc: WNDPROC;
cbClsExtra: Integer;
cbWndExtra: Integer;
hInstance: HINSTANCE;
hIcon: HICON;
hCursor: HCURSOR;
hbrBackground: HBRUSH;
lpszMenuName: LPCSTR;
lpszClassName: LPCSTR;
end;
{$EXTERNALSYM tagWNDCLASSA}
WNDCLASSA = tagWNDCLASSA;
{$EXTERNALSYM WNDCLASSA}
NPWNDCLASSA = ^WNDCLASSA;
{$EXTERNALSYM NPWNDCLASSA}
TWndClassA = WNDCLASSA;
PWndClassA = LPWNDCLASSA;
LPWNDCLASSW = ^WNDCLASSW;
{$EXTERNALSYM LPWNDCLASSW}
tagWNDCLASSW = record
style: UINT;
lpfnWndProc: WNDPROC;
cbClsExtra: Integer;
cbWndExtra: Integer;
hInstance: HINSTANCE;
hIcon: HICON;
hCursor: HCURSOR;
hbrBackground: HBRUSH;
lpszMenuName: LPCWSTR;
lpszClassName: LPCWSTR;
end;
{$EXTERNALSYM tagWNDCLASSW}
WNDCLASSW = tagWNDCLASSW;
{$EXTERNALSYM WNDCLASSW}
NPWNDCLASSW = ^WNDCLASSW;
{$EXTERNALSYM NPWNDCLASSW}
TWndClassW = WNDCLASSW;
PWndClassW = LPWNDCLASSW;
{$IFDEF UNICODE}
WNDCLASS = WNDCLASSW;
{$EXTERNALSYM WNDCLASS}
NPWNDCLASS = NPWNDCLASSW;
{$EXTERNALSYM NPWNDCLASS}
LPWNDCLASS = LPWNDCLASSW;
{$EXTERNALSYM LPWNDCLASS}
TWndClass = TWndClassW;
PWndClass = PWndClassW;
{$ELSE}
WNDCLASS = WNDCLASSA;
{$EXTERNALSYM WNDCLASS}
NPWNDCLASS = NPWNDCLASSA;
{$EXTERNALSYM NPWNDCLASS}
LPWNDCLASS = LPWNDCLASSA;
{$EXTERNALSYM LPWNDCLASS}
TWndClass = TWndClassA;
PWndClass = PWndClassA;
{$ENDIF}
//
// Message structure
//
LPMSG = ^MSG;
{$EXTERNALSYM LPMSG}
tagMSG = record
hwnd: HWND;
message: UINT;
wParam: WPARAM;
lParam: LPARAM;
time: DWORD;
pt: POINT;
end;
{$EXTERNALSYM tagMSG}
MSG = tagMSG;
{$EXTERNALSYM MSG}
NPMSG = ^MSG;
{$EXTERNALSYM NPMSG}
TMsg = MSG;
PMsg = LPMSG;
function MAKEWPARAM(wLow, wHigh: WORD): WPARAM;
{$EXTERNALSYM MAKEWPARAM}
function MAKELPARAM(wLow, wHigh: WORD): LPARAM;
{$EXTERNALSYM MAKELPARAM}
function MAKELRESULT(wLow, wHigh: WORD): LRESULT;
{$EXTERNALSYM MAKELRESULT}
//
// Window field offsets for GetWindowLong()
//
const
GWL_WNDPROC = -4;
{$EXTERNALSYM GWL_WNDPROC}
GWL_HINSTANCE = -6;
{$EXTERNALSYM GWL_HINSTANCE}
GWL_HWNDPARENT = -8;
{$EXTERNALSYM GWL_HWNDPARENT}
GWL_STYLE = -16;
{$EXTERNALSYM GWL_STYLE}
GWL_EXSTYLE = -20;
{$EXTERNALSYM GWL_EXSTYLE}
GWL_USERDATA = -21;
{$EXTERNALSYM GWL_USERDATA}
GWL_ID = -12;
{$EXTERNALSYM GWL_ID}
GWLP_WNDPROC = -4;
{$EXTERNALSYM GWLP_WNDPROC}
GWLP_HINSTANCE = -6;
{$EXTERNALSYM GWLP_HINSTANCE}
GWLP_HWNDPARENT = -8;
{$EXTERNALSYM GWLP_HWNDPARENT}
GWLP_USERDATA = -21;
{$EXTERNALSYM GWLP_USERDATA}
GWLP_ID = -12;
{$EXTERNALSYM GWLP_ID}
//
// Class field offsets for GetClassLong()
//
GCL_MENUNAME = DWORD(-8);
{$EXTERNALSYM GCL_MENUNAME}
GCL_HBRBACKGROUND = DWORD(-10);
{$EXTERNALSYM GCL_HBRBACKGROUND}
GCL_HCURSOR = DWORD(-12);
{$EXTERNALSYM GCL_HCURSOR}
GCL_HICON = DWORD(-14);
{$EXTERNALSYM GCL_HICON}
GCL_HMODULE = DWORD(-16);
{$EXTERNALSYM GCL_HMODULE}
GCL_CBWNDEXTRA = DWORD(-18);
{$EXTERNALSYM GCL_CBWNDEXTRA}
GCL_CBCLSEXTRA = DWORD(-20);
{$EXTERNALSYM GCL_CBCLSEXTRA}
GCL_WNDPROC = DWORD(-24);
{$EXTERNALSYM GCL_WNDPROC}
GCL_STYLE = DWORD(-26);
{$EXTERNALSYM GCL_STYLE}
GCW_ATOM = DWORD(-32);
{$EXTERNALSYM GCW_ATOM}
GCL_HICONSM = DWORD(-34);
{$EXTERNALSYM GCL_HICONSM}
GCLP_MENUNAME = DWORD(-8);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -