📄 jwawintype.pas
字号:
UNICODE_STRING64 = STRING64;
{$EXTERNALSYM UNICODE_STRING64}
PUNICODE_STRING64 = ^UNICODE_STRING64;
{$EXTERNALSYM PUNICODE_STRING64}
ANSI_STRING64 = STRING64;
{$EXTERNALSYM ANSI_STRING64}
PANSI_STRING64 = ^ANSI_STRING64;
{$EXTERNALSYM PANSI_STRING64}
//
// Valid values for the Attributes field
//
const
OBJ_INHERIT = $00000002;
{$EXTERNALSYM OBJ_INHERIT}
OBJ_PERMANENT = $00000010;
{$EXTERNALSYM OBJ_PERMANENT}
OBJ_EXCLUSIVE = $00000020;
{$EXTERNALSYM OBJ_EXCLUSIVE}
OBJ_CASE_INSENSITIVE = $00000040;
{$EXTERNALSYM OBJ_CASE_INSENSITIVE}
OBJ_OPENIF = $00000080;
{$EXTERNALSYM OBJ_OPENIF}
OBJ_OPENLINK = $00000100;
{$EXTERNALSYM OBJ_OPENLINK}
OBJ_KERNEL_HANDLE = $00000200;
{$EXTERNALSYM OBJ_KERNEL_HANDLE}
OBJ_VALID_ATTRIBUTES = $000003F2;
{$EXTERNALSYM OBJ_VALID_ATTRIBUTES}
//
// Object Attributes structure
//
type
POBJECT_ATTRIBUTES = ^OBJECT_ATTRIBUTES;
{$EXTERNALSYM POBJECT_ATTRIBUTES}
_OBJECT_ATTRIBUTES = record
Length: ULONG;
RootDirectory: HANDLE;
ObjectName: PUNICODE_STRING;
Attributes: ULONG;
SecurityDescriptor: PVOID; // Points to type SECURITY_DESCRIPTOR
SecurityQualityOfService: PVOID; // Points to type SECURITY_QUALITY_OF_SERVICE
end;
{$EXTERNALSYM _OBJECT_ATTRIBUTES}
OBJECT_ATTRIBUTES = _OBJECT_ATTRIBUTES;
{$EXTERNALSYM OBJECT_ATTRIBUTES}
TObjectAttributes = OBJECT_ATTRIBUTES;
PObjectAttributes = POBJECT_ATTRIBUTES;
procedure InitializeObjectAttributes(p: POBJECT_ATTRIBUTES; n: PUNICODE_STRING;
a: ULONG; r: HANDLE; s: PVOID{PSECURITY_DESCRIPTOR});
{$EXTERNALSYM InitializeObjectAttributes}
//
// Constants
//
const
//#define FALSE 0
//#define TRUE 1
NULL = 0;
{$EXTERNALSYM NULL}
NULL64 = 0;
{$EXTERNALSYM NULL64}
//#include <guiddef.h>
type
PObjectId = ^OBJECTID;
_OBJECTID = record // size is 20
Lineage: GUID;
Uniquifier: ULONG;
end;
{$EXTERNALSYM _OBJECTID}
OBJECTID = _OBJECTID;
{$EXTERNALSYM OBJECTID}
TObjectId = OBJECTID;
const
MINCHAR = $80;
{$EXTERNALSYM MINCHAR}
MAXCHAR = $7f;
{$EXTERNALSYM MAXCHAR}
MINSHORT = $8000;
{$EXTERNALSYM MINSHORT}
MAXSHORT = $7fff;
{$EXTERNALSYM MAXSHORT}
MINLONG = DWORD($80000000);
{$EXTERNALSYM MINLONG}
MAXLONG = $7fffffff;
{$EXTERNALSYM MAXLONG}
MAXUCHAR = $ff;
{$EXTERNALSYM MAXUCHAR}
MAXUSHORT = $ffff;
{$EXTERNALSYM MAXUSHORT}
MAXULONG = DWORD($ffffffff);
{$EXTERNALSYM MAXULONG}
//
// Useful Helper Macros
//
//
// Determine if an argument is present by testing the value of the pointer
// to the argument value.
//
function ARGUMENT_PRESENT(ArgumentPointer: Pointer): BOOL;
{$EXTERNALSYM ARGUMENT_PRESENT}
//
// Exception handler routine definition.
//
// struct _CONTEXT;
// struct _EXCEPTION_RECORD;
//type
// PEXCEPTION_ROUTINE = function (ExceptionRecord: LP_EXCEPTION_RECORD;
// EstablisherFrame: PVOID; ContextRecord: LPCONTEXT;
// DispatcherContext: PVOID): EXCEPTION_DISPOSITION; stdcall;
// {$EXTERNALSYM PEXCEPTION_ROUTINE}
//
// Interrupt Request Level (IRQL)
//
type
KIRQL = UCHAR;
{$EXTERNALSYM KIRQL}
PKIRQL = ^KIRQL;
{$EXTERNALSYM PKIRQL}
//
// Product types
//
_NT_PRODUCT_TYPE = (Filler0, NtProductWinNt, NtProductLanManNt, NtProductServer);
{$EXTERNALSYM _NT_PRODUCT_TYPE}
NT_PRODUCT_TYPE = _NT_PRODUCT_TYPE;
{$EXTERNALSYM NT_PRODUCT_TYPE}
PNT_PRODUCT_TYPE = ^NT_PRODUCT_TYPE;
TNtProductType = _NT_PRODUCT_TYPE;
//
// the bit mask, SharedUserData->SuiteMask, is a ULONG
// so there can be a maximum of 32 entries
// in this enum.
//
type
_SUITE_TYPE = (
SmallBusiness,
Enterprise,
BackOffice,
CommunicationServer,
TerminalServer,
SmallBusinessRestricted,
EmbeddedNT,
DataCenter,
SingleUserTS,
MaxSuiteType);
{$EXTERNALSYM _SUITE_TYPE}
SUITE_TYPE = _SUITE_TYPE;
{$EXTERNALSYM SUITE_TYPE}
TSuiteType = SUITE_TYPE;
const
VER_SERVER_NT = DWORD($80000000);
{$EXTERNALSYM VER_SERVER_NT}
VER_WORKSTATION_NT = $40000000;
{$EXTERNALSYM VER_WORKSTATION_NT}
VER_SUITE_SMALLBUSINESS = $00000001;
{$EXTERNALSYM VER_SUITE_SMALLBUSINESS}
VER_SUITE_ENTERPRISE = $00000002;
{$EXTERNALSYM VER_SUITE_ENTERPRISE}
VER_SUITE_BACKOFFICE = $00000004;
{$EXTERNALSYM VER_SUITE_BACKOFFICE}
VER_SUITE_COMMUNICATIONS = $00000008;
{$EXTERNALSYM VER_SUITE_COMMUNICATIONS}
VER_SUITE_TERMINAL = $00000010;
{$EXTERNALSYM VER_SUITE_TERMINAL}
VER_SUITE_SMALLBUSINESS_RESTRICTED = $00000020;
{$EXTERNALSYM VER_SUITE_SMALLBUSINESS_RESTRICTED}
VER_SUITE_EMBEDDEDNT = $00000040;
{$EXTERNALSYM VER_SUITE_EMBEDDEDNT}
VER_SUITE_DATACENTER = $00000080;
{$EXTERNALSYM VER_SUITE_DATACENTER}
VER_SUITE_SINGLEUSERTS = $00000100;
{$EXTERNALSYM VER_SUITE_SINGLEUSERTS}
VER_SUITE_PERSONAL = $00000200;
{$EXTERNALSYM VER_SUITE_PERSONAL}
VER_SUITE_BLADE = $00000400;
{$EXTERNALSYM VER_SUITE_BLADE}
// ntdef.h
type
error_status_t = Longword;
{$EXTERNALSYM error_status_t}
wchar_t = Word;
{$EXTERNALSYM wchar_t}
//
// The following types are guaranteed to be signed and 32 bits wide.
//
type
INT_PTR = Integer;
{$EXTERNALSYM INT_PTR}
PINT_PTR = ^INT_PTR;
{$EXTERNALSYM PINT_PTR}
UINT_PTR = Longword;
{$EXTERNALSYM UINT_PTR}
PUINT_PTR = ^UINT_PTR;
{$EXTERNALSYM PUINT_PTR}
LONG_PTR = Longint;
{$EXTERNALSYM LONG_PTR}
PLONG_PTR = ^LONG_PTR;
{$EXTERNALSYM PLONG_PTR}
ULONG_PTR = Longword;
{$EXTERNALSYM ULONG_PTR}
PULONG_PTR = ^PULONG_PTR;
{$EXTERNALSYM PULONG_PTR}
LONG32 = Integer;
{$EXTERNALSYM LONG32}
PLONG32 = ^LONG32;
{$EXTERNALSYM PLONG32}
INT32 = Integer;
{$EXTERNALSYM INT32}
PINT32 = ^INT32;
{$EXTERNALSYM PINT32}
//
// The following types are guaranteed to be unsigned and 32 bits wide.
//
ULONG32 = Longword;
{$EXTERNALSYM ULONG32}
PULONG32 = ^ULONG32;
{$EXTERNALSYM PULONG32}
DWORD32 = Longword;
{$EXTERNALSYM DWORD32}
PDWORD32 = ^DWORD32;
{$EXTERNALSYM PDWORD32}
UINT32 = Longword;
{$EXTERNALSYM UINT32}
PUINT32 = ^UINT32;
{$EXTERNALSYM PUINT32}
const
MAX_PATH = 260;
{$EXTERNALSYM MAX_PATH}
type
//unsigned char BYTE;
//unsigned short WORD;
FLOAT = Single;
{$EXTERNALSYM FLOAT}
PFLOAT = ^FLOAT;
{$EXTERNALSYM PFLOAT}
PBOOL = {$IFDEF USE_DELPHI_TYPES}Windows.PBOOL{$ELSE}^BOOL{$ENDIF};
{$EXTERNALSYM PBOOL}
LPBOOL = {$IFDEF USE_DELPHI_TYPES}Windows.PBOOL{$ELSE}^BOOL{$ENDIF};
{$EXTERNALSYM LPBOOL}
PBYTE = {$IFDEF USE_DELPHI_TYPES}Windows.PBYTE{$ELSE}^BYTE{$ENDIF};
{$EXTERNALSYM PBYTE}
LPBYTE = {$IFDEF USE_DELPHI_TYPES}Windows.PBYTE{$ELSE}^BYTE{$ENDIF};
{$EXTERNALSYM LPBYTE}
PINT = {$IFDEF USE_DELPHI_TYPES}Windows.PINT{$ELSE}^INT{$ENDIF};
{$EXTERNALSYM PINT}
PUINT = {$IFDEF USE_DELPHI_TYPES}Windows.PUINT{$ELSE}^UINT{$ENDIF};
{$EXTERNALSYM PUINT}
LPUINT = {$IFDEF USE_DELPHI_TYPES}Windows.PUINT{$ELSE}^UINT{$ENDIF};
{$EXTERNALSYM LPUINT}
LPINT = {$IFDEF USE_DELPHI_TYPES}Windows.PINT{$ELSE}^INT{$ENDIF};
{$EXTERNALSYM LPINT}
PWORD = {$IFDEF USE_DELPHI_TYPES}Windows.PWORD{$ELSE}^WORD{$ENDIF};
{$EXTERNALSYM PWORD}
LPWORD = {$IFDEF USE_DELPHI_TYPES}Windows.PWORD{$ELSE}^WORD{$ENDIF};
{$EXTERNALSYM LPWORD}
LPLONG = ^LONG;
{$EXTERNALSYM LPLONG}
PDWORD = {$IFDEF USE_DELPHI_TYPES}Windows.PDWORD{$ELSE}^DWORD{$ENDIF};
{$EXTERNALSYM PDWORD}
LPDWORD = {$IFDEF USE_DELPHI_TYPES}Windows.LPDWORD{$ELSE}^DWORD{$ENDIF};
{$EXTERNALSYM LPDWORD}
LPVOID = Pointer;
{$EXTERNALSYM LPVOID}
LPCVOID = Pointer;
{$EXTERNALSYM LPCVOID}
LPLPVOID = ^LPVOID;
{$NODEFINE LPVOID}
INT = Integer;
{$EXTERNALSYM INT}
UINT = {$IFDEF USE_DELPHI_TYPES}Windows.UINT{$ELSE}Longword{$ENDIF};
{$EXTERNALSYM UINT}
// Types use for passing & returning polymorphic values
WPARAM = {$IFDEF USE_DELPHI_TYPES}Windows.WPARAM{$ELSE}UINT_PTR{$ENDIF};
{$EXTERNALSYM WPARAM}
LPARAM = {$IFDEF USE_DELPHI_TYPES}Windows.LPARAM{$ELSE}LONG_PTR{$ENDIF};
{$EXTERNALSYM LPARAM}
LRESULT = {$IFDEF USE_DELPHI_TYPES}Windows.LRESULT{$ELSE}LONG_PTR{$ENDIF};
{$EXTERNALSYM LRESULT}
function MAKEWORD(a, b: BYTE): WORD;
{$EXTERNALSYM MAKEWORD}
function MAKELONG(a, b: WORD): DWORD;
{$EXTERNALSYM MAKELONG}
function LOWORD(L: DWORD): WORD;
{$EXTERNALSYM LOWORD}
function HIWORD(L: DWORD): WORD;
{$EXTERNALSYM HIWORD}
function LOBYTE(W: WORD): BYTE;
{$EXTERNALSYM LOBYTE}
function HIBYTE(W: WORD): BYTE;
{$EXTERNALSYM HIBYTE}
type
HWND = {$IFDEF USE_DELPHI_TYPES}Windows.HWND{$ELSE}HANDLE{$ENDIF};
{$EXTERNALSYM HWND}
LPHWND = ^HWND;
{$EXTERNALSYM LPHWND}
HHOOK = {$IFDEF USE_DELPHI_TYPES}Windows.HHOOK{$ELSE}HANDLE{$ENDIF};
{$EXTERNALSYM HHOOK}
LPHHOOK = ^HHOOK;
{$EXTERNALSYM LPHHOOK}
HEVENT = HANDLE;
{$EXTERNALSYM HEVENT}
ATOM = {$IFDEF USE_DELPHI_TYPES}Windows.ATOM{$ELSE}WORD{$ENDIF};
{$EXTERNALSYM ATOM}
SPHANDLE = ^HANDLE;
{$EXTERNALSYM SPHANDLE}
LPHANDLE = ^HANDLE;
{$EXTERNALSYM LPHANDLE}
HGLOBAL = {$IFDEF USE_DELPHI_TYPES}Windows.HGLOBAL{$ELSE}HANDLE{$ENDIF};
{$EXTERNALSYM HGLOBAL}
HLOCAL = {$IFDEF USE_DELPHI_TYPES}Windows.HLOCAL{$ELSE}HANDLE{$ENDIF};
{$EXTERNALSYM HLOCAL}
GLOBALHANDLE = HANDLE;
{$EXTERNALSYM GLOBALHANDLE}
//LOCALHANDLE = HANDLE; // todo clashes with WinBase.LocalHandle function
//{$EXTERNALSYM LOCALHANDLE}
FARPROC = {$IFDEF USE_DELPHI_TYPES}Windows.FARPROC{$ELSE}function: Integer{$ENDIF};
{$EXTERNALSYM FARPROC}
NEARPROC = function: Integer; stdcall;
{$EXTERNALSYM NEARPROC}
PROC = function: Integer; stdcall;
{$EXTERNALSYM PROC}
HGDIOBJ = {$IFDEF USE_DELPHI_TYPES}Windows.HGDIOBJ{$ELSE}HANDLE{$ENDIF};
{$EXTERNALSYM HGDIOBJ}
HKEY = {$IFDEF USE_DELPHI_TYPES}Windows.HKEY{$ELSE}HANDLE{$ENDIF};
{$EXTERNALSYM HKEY}
PHKEY = {$IFDEF USE_DELPHI_TYPES}Windows.PHKEY{$ELSE}^HKEY{$ENDIF};
{$EXTERNALSYM PHKEY}
HACCEL = {$IFDEF USE_DELPHI_TYPES}Windows.HACCEL{$ELSE}HANDLE{$ENDIF};
{$EXTERNALSYM HACCEL}
HBITMAP = {$IFDEF USE_DELPHI_TYPES}Windows.HBITMAP{$ELSE}HANDLE{$ENDIF};
{$EXTERNALSYM HBITMAP}
HBRUSH = {$IFDEF USE_DELPHI_TYPES}Windows.HBRUSH{$ELSE}HANDLE{$ENDIF};
{$EXTERNALSYM HBRUSH}
HCOLORSPACE = {$IFDEF USE_DELPHI_TYPES}Windows.HCOLORSPACE{$ELSE}HANDLE{$ENDIF};
{$EXTERNALSYM HCOLORSPACE}
HDC = {$IFDEF USE_DELPHI_TYPES}Windows.HDC{$ELSE}HANDLE{$ENDIF};
{$EXTERNALSYM HDC}
HGLRC = {$IFDEF USE_DELPHI_TYPES}Windows.HGLRC{$ELSE}HANDLE{$ENDIF};
{$EXTERNALSYM HGLRC}
HDESK = {$IFDEF USE_DELPHI_TYPES}Windows.HDESK{$ELSE}HANDLE{$ENDIF};
{$EXTERNALSYM HDESK}
HENHMETAFILE = {$IFDEF USE_DELPHI_TYPES}Windows.HENHMETAFILE{$ELSE}HANDLE{$ENDIF};
{$EXTERNALSYM HENHMETAFILE}
HFONT = {$IFDEF USE_DELPHI_TYPES}Windows.HFONT{$ELSE}HANDLE{$ENDIF};
{$EXTERNALSYM HFONT}
HICON = {$IFDEF USE_DELPHI_TYPES}Windows.HICON{$ELSE}HANDLE{$ENDIF};
{$EXTERNALSYM HICON}
HMENU = {$IFDEF USE_DELPHI_TYPES}Windows.HMENU{$ELSE}HANDLE{$ENDIF};
{$EXTERNALSYM HMENU}
HMETAFILE = {$IFDEF USE_DELPHI_TYPES}Windows.HMETAFILE{$ELSE}HANDLE{$ENDIF};
{$EXTERNALSYM HMETAFILE}
HINSTANCE = {$IFDEF USE_DELPHI_TYPES}Windows.HINST{$ELSE}HANDLE{$ENDIF};
{$EXTERNALSYM HINSTANCE}
HMODULE = {$IFDEF USE_DELPHI_TYPES}Windows.HMODULE{$ELSE}HINSTANCE{$ENDIF};
{$EXTERNALSYM HMODULE}
HPALETTE = {$IFDEF USE_DELPHI_TYPES}Windows.HPALETTE{$ELSE}HANDLE{$ENDIF};
{$EXTERNALSYM HPALETTE}
HPEN = {$IFDEF USE_DELPHI_TYPES}Windows.HPEN{$ELSE}HANDLE{$ENDIF};
{$EXTERNALSYM HPEN}
HRGN = {$IFDEF USE_DELPHI_TYPES}Windows.HRGN{$ELSE}HANDLE{$ENDIF};
{$EXTERNALSYM HRGN}
HRSRC = {$IFDEF USE_DELPHI_TYPES}Windows.HRSRC{$ELSE}HANDLE{$ENDIF};
{$EXTERNALSYM HRSRC}
HSTR = {$IFDEF USE_DELPHI_TYPES}Windows.HSTR{$ELSE}HANDLE{$ENDIF};
{$EXTERNALSYM HSTR}
HTASK = {$IFDEF USE_DELPHI_TYPES}Windows.HTASK{$ELSE}HANDLE{$ENDIF};
{$EXTERNALSYM HTASK}
HWINSTA = {$IFDEF USE_DELPHI_TYPES}Windows.HWINSTA{$ELSE}HANDLE{$ENDIF};
{$EXTERNALSYM HWINSTA}
HKL = {$IFDEF USE_DELPHI_TYPES}Windows.HKL{$ELSE}HANDLE{$ENDIF};
{$EXTERNALSYM HKL}
PHKL = {$IFDEF USE_DELPHI_TYPES}^HKL{$ELSE}^HANDLE{$ENDIF};
{$EXTERNALSYM PHKL}
HMONITOR = HANDLE;
{$EXTERNALSYM HMONITOR}
HWINEVENTHOOK = HANDLE;
{$EXTERNALSYM HWINEVENTHOOK}
HUMPD = HANDLE;
{$EXTERNALSYM HUMPD}
HFILE = {$IFDEF USE_DELPHI_TYPES}Windows.HFILE{$ELSE}Integer{$ENDIF};
{$EXTERNALSYM HFILE}
HCURSOR = {$IFDEF USE_DELPHI_TYPES}Windows.HCURSOR{$ELSE}HICON{$ENDIF};
{$EXTERNALSYM HCURSOR}
COLORREF = {$IFDEF USE_DELPHI_TYPES}Windows.COLORREF{$ELSE}DWORD{$ENDIF};
{$EXTERNALSYM COLORREF}
LPCOLORREF = ^COLORREF;
{$EXTERNALSYM LPCOLORREF}
PHMODULE = ^HMODULE;
{$NODEFINE PHMODULE}
const
HFILE_ERROR = HFILE(-1);
{$EXTERNALSYM HFILE_ERROR}
type
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -