📄 jwawinuser.pas
字号:
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}
function IsHungAppWindow(hwnd: HWND): BOOL; stdcall;
{$EXTERNALSYM IsHungAppWindow}
//
// Message structure
//
type
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);
{$EXTERNALSYM GCLP_MENUNAME}
GCLP_HBRBACKGROUND = DWORD(-10);
{$EXTERNALSYM GCLP_HBRBACKGROUND}
GCLP_HCURSOR = DWORD(-12);
{$EXTERNALSYM GCLP_HCURSOR}
GCLP_HICON = DWORD(-14);
{$EXTERNALSYM GCLP_HICON}
GCLP_HMODULE = DWORD(-16);
{$EXTERNALSYM GCLP_HMODULE}
GCLP_WNDPROC = DWORD(-24);
{$EXTERNALSYM GCLP_WNDPROC}
GCLP_HICONSM = DWORD(-34);
{$EXTERNALSYM GCLP_HICONSM}
//
// Window Messages
//
WM_NULL = $0000;
{$EXTERNALSYM WM_NULL}
WM_CREATE = $0001;
{$EXTERNALSYM WM_CREATE}
WM_DESTROY = $0002;
{$EXTERNALSYM WM_DESTROY}
WM_MOVE = $0003;
{$EXTERNALSYM WM_MOVE}
WM_SIZE = $0005;
{$EXTERNALSYM WM_SIZE}
WM_ACTIVATE = $0006;
{$EXTERNALSYM WM_ACTIVATE}
//
// WM_ACTIVATE state values
//
WA_INACTIVE = 0;
{$EXTERNALSYM WA_INACTIVE}
WA_ACTIVE = 1;
{$EXTERNALSYM WA_ACTIVE}
WA_CLICKACTIVE = 2;
{$EXTERNALSYM WA_CLICKACTIVE}
WM_SETFOCUS = $0007;
{$EXTERNALSYM WM_SETFOCUS}
WM_KILLFOCUS = $0008;
{$EXTERNALSYM WM_KILLFOCUS}
WM_ENABLE = $000A;
{$EXTERNALSYM WM_ENABLE}
WM_SETREDRAW = $000B;
{$EXTERNALSYM WM_SETREDRAW}
WM_SETTEXT = $000C;
{$EXTERNALSYM WM_SETTEXT}
WM_GETTEXT = $000D;
{$EXTERNALSYM WM_GETTEXT}
WM_GETTEXTLENGTH = $000E;
{$EXTERNALSYM WM_GETTEXTLENGTH}
WM_PAINT = $000F;
{$EXTERNALSYM WM_PAINT}
WM_CLOSE = $0010;
{$EXTERNALSYM WM_CLOSE}
WM_QUERYENDSESSION = $0011;
{$EXTERNALSYM WM_QUERYENDSESSION}
WM_QUERYOPEN = $0013;
{$EXTERNALSYM WM_QUERYOPEN}
WM_ENDSESSION = $0016;
{$EXTERNALSYM WM_ENDSESSION}
WM_QUIT = $0012;
{$EXTERNALSYM WM_QUIT}
WM_ERASEBKGND = $0014;
{$EXTERNALSYM WM_ERASEBKGND}
WM_SYSCOLORCHANGE = $0015;
{$EXTERNALSYM WM_SYSCOLORCHANGE}
WM_SHOWWINDOW = $0018;
{$EXTERNALSYM WM_SHOWWINDOW}
WM_WININICHANGE = $001A;
{$EXTERNALSYM WM_WININICHANGE}
WM_SETTINGCHANGE = WM_WININICHANGE;
{$EXTERNALSYM WM_SETTINGCHANGE}
WM_DEVMODECHANGE = $001B;
{$EXTERNALSYM WM_DEVMODECHANGE}
WM_ACTIVATEAPP = $001C;
{$EXTERNALSYM WM_ACTIVATEAPP}
WM_FONTCHANGE = $001D;
{$EXTERNALSYM WM_FONTCHANGE}
WM_TIMECHANGE = $001E;
{$EXTERNALSYM WM_TIMECHANGE}
WM_CANCELMODE = $001F;
{$EXTERNALSYM WM_CANCELMODE}
WM_SETCURSOR = $0020;
{$EXTERNALSYM WM_SETCURSOR}
WM_MOUSEACTIVATE = $0021;
{$EXTERNALSYM WM_MOUSEACTIVATE}
WM_CHILDACTIVATE = $0022;
{$EXTERNALSYM WM_CHILDACTIVATE}
WM_QUEUESYNC = $0023;
{$EXTERNALSYM WM_QUEUESYNC}
WM_GETMINMAXINFO = $0024;
{$EXTERNALSYM WM_GETMINMAXINFO}
//
// Struct pointed to by WM_GETMINMAXINFO lParam
//
type
LPMINMAXINFO = ^MINMAXINFO;
{$EXTERNALSYM LPMINMAXINFO}
tagMINMAXINFO = record
ptReserved: POINT;
ptMaxSize: POINT;
ptMaxPosition: POINT;
ptMinTrackSize: POINT;
ptMaxTrackSize: POINT;
end;
{$EXTERNALSYM tagMINMAXINFO}
MINMAXINFO = tagMINMAXINFO;
{$EXTERNALSYM MINMAXINFO}
TMinMaxInfo = MINMAXINFO;
PMinMaxInfo = LPMINMAXINFO;
const
WM_PAINTICON = $0026;
{$EXTERNALSYM WM_PAINTICON}
WM_ICONERASEBKGND = $0027;
{$EXTERNALSYM WM_ICONERASEBKGND}
WM_NEXTDLGCTL = $0028;
{$EXTERNALSYM WM_NEXTDLGCTL}
WM_SPOOLERSTATUS = $002A;
{$EXTERNALSYM WM_SPOOLERSTATUS}
WM_DRAWITEM = $002B;
{$EXTERNALSYM WM_DRAWITEM}
WM_MEASUREITEM = $002C;
{$EXTERNALSYM WM_MEASUREITEM}
WM_DELETEITEM = $002D;
{$EXTERNALSYM WM_DELETEITEM}
WM_VKEYTOITEM = $002E;
{$EXTERNALSYM WM_VKEYTOITEM}
WM_CHARTOITEM = $002F;
{$EXTERNALSYM WM_CHARTOITEM}
WM_SETFONT = $0030;
{$EXTERNALSYM WM_SETFONT}
WM_GETFONT = $0031;
{$EXTERNALSYM WM_GETFONT}
WM_SETHOTKEY = $0032;
{$EXTERNALSYM WM_SETHOTKEY}
WM_GETHOTKEY = $0033;
{$EXTERNALSYM WM_GETHOTKEY}
WM_QUERYDRAGICON = $0037;
{$EXTERNALSYM WM_QUERYDRAGICON}
WM_COMPAREITEM = $0039;
{$EXTERNALSYM WM_COMPAREITEM}
WM_GETOBJECT = $003D;
{$EXTERNALSYM WM_GETOBJECT}
WM_COMPACTING = $0041;
{$EXTERNALSYM WM_COMPACTING}
WM_COMMNOTIFY = $0044; // no longer suported
{$EXTERNALSYM WM_COMMNOTIFY}
WM_WINDOWPOSCHANGING = $0046;
{$EXTERNALSYM WM_WINDOWPOSCHANGING}
WM_WINDOWPOSCHANGED = $0047;
{$EXTERNALSYM WM_WINDOWPOSCHANGED}
WM_POWER = $0048;
{$EXTERNALSYM WM_POWER}
//
// wParam for WM_POWER window message and DRV_POWER driver notification
//
PWR_OK = 1;
{$EXTERNALSYM PWR_OK}
PWR_FAIL = DWORD(-1);
{$EXTERNALSYM PWR_FAIL}
PWR_SUSPENDREQUEST = 1;
{$EXTERNALSYM PWR_SUSPENDREQUEST}
PWR_SUSPENDRESUME = 2;
{$EXTERNALSYM PWR_SUSPENDRESUME}
PWR_CRITICALRESUME = 3;
{$EXTERNALSYM PWR_CRITICALRESUME}
WM_COPYDATA = $004A;
{$EXTERNALSYM WM_COPYDATA}
WM_CANCELJOURNAL = $004B;
{$EXTERNALSYM WM_CANCELJOURNAL}
//
// lParam of WM_COPYDATA message points to...
//
type
PCOPYDATASTRUCT = ^COPYDATASTRUCT;
tagCOPYDATASTRUCT = record
dwData: ULONG_PTR;
cbData: DWORD;
lpData: PVOID;
end;
{$EXTERNALSYM tagCOPYDATASTRUCT}
COPYDATASTRUCT = tagCOPYDATASTRUCT;
{$EXTERNALSYM COPYDATASTRUCT}
TCopyDataStruct = COPYDATASTRUCT;
LPMDINEXTMENU = ^MDINEXTMENU;
{$EXTERNALSYM LPMDINEXTMENU}
tagMDINEXTMENU = record
hmenuIn: HMENU;
hmenuNext: HMENU;
hwndNext: HWND;
end;
{$EXTERNALSYM tagMDINEXTMENU}
MDINEXTMENU = tagMDINEXTMENU;
{$EXTERNALSYM MDINEXTMENU}
TMdiNextMenu = MDINEXTMENU;
PMdiNextMenu = LPMDINEXTMENU;
const
WM_NOTIFY = $004E;
{$EXTERNALSYM WM_NOTIFY}
WM_INPUTLANGCHANGEREQUEST = $0050;
{$EXTERNALSYM WM_INPUTLANGCHANGEREQUEST}
WM_INPUTLANGCHANGE = $0051;
{$EXTERNALSYM WM_INPUTLANGCHANGE}
WM_TCARD = $0052;
{$EXTERNALSYM WM_TCARD}
WM_HELP = $0053;
{$EXTERNALSYM WM_HELP}
WM_USERCHANGED = $0054;
{$EXTERNALSYM WM_USERCHANGED}
WM_NOTIFYFORMAT = $0055;
{$EXTERNALSYM WM_NOTIFYFORMAT}
NFR_ANSI = 1;
{$EXTERNALSYM NFR_ANSI}
NFR_UNICODE = 2;
{$EXTERNALSYM NFR_UNICODE}
NF_QUERY = 3;
{$EXTERNALSYM NF_QUERY}
NF_REQUERY = 4;
{$EXTERNALSYM NF_REQUERY}
WM_CONTEXTMENU = $007B;
{$EXTERNALSYM WM_CONTEXTMENU}
WM_STYLECHANGING = $007C;
{$EXTERNALSYM WM_STYLECHANGING}
WM_STYLECHANGED = $007D;
{$EXTERNALSYM WM_STYLECHANGED}
WM_DISPLAYCHANGE = $007E;
{$EXTERNALSYM WM_DISPLAYCHANGE}
WM_GETICON = $007F;
{$EXTERNALSYM WM_GETICON}
WM_SETICON = $0080;
{$EXTERNALSYM WM_SETICON}
WM_NCCREATE = $0081;
{$EXTERNALSYM WM_NCCREATE}
WM_NCDESTROY = $0082;
{$EXTERNALSYM WM_NCD
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -