📄 jwawinbase.pas
字号:
{$EXTERNALSYM _SYSTEMTIME}
SYSTEMTIME = _SYSTEMTIME;
{$EXTERNALSYM SYSTEMTIME}
TSystemTime = SYSTEMTIME;
PSystemTime = LPSYSTEMTIME;
{$ENDIF}
PTHREAD_START_ROUTINE = function (lpThreadParameter: LPVOID): DWORD; stdcall;
{$EXTERNALSYM PTHREAD_START_ROUTINE}
LPTHREAD_START_ROUTINE = PTHREAD_START_ROUTINE;
{$EXTERNALSYM LPTHREAD_START_ROUTINE}
TThreadStartRoutine = PTHREAD_START_ROUTINE;
PFIBER_START_ROUTINE = procedure (lpFiberParameter: LPVOID); stdcall;
{$EXTERNALSYM PFIBER_START_ROUTINE}
LPFIBER_START_ROUTINE = PFIBER_START_ROUTINE;
{$EXTERNALSYM LPFIBER_START_ROUTINE}
TFiberStartRoutine = PFIBER_START_ROUTINE;
CRITICAL_SECTION = RTL_CRITICAL_SECTION;
{$EXTERNALSYM CRITICAL_SECTION}
PCRITICAL_SECTION = PRTL_CRITICAL_SECTION;
{$EXTERNALSYM PCRITICAL_SECTION}
LPCRITICAL_SECTION = PRTL_CRITICAL_SECTION;
{$EXTERNALSYM LPCRITICAL_SECTION}
TCriticalSection = CRITICAL_SECTION;
PCriticalSection = PCRITICAL_SECTION;
CRITICAL_SECTION_DEBUG = RTL_CRITICAL_SECTION_DEBUG;
{$EXTERNALSYM CRITICAL_SECTION_DEBUG}
PCRITICAL_SECTION_DEBUG = PRTL_CRITICAL_SECTION_DEBUG;
{$EXTERNALSYM PCRITICAL_SECTION_DEBUG}
LPCRITICAL_SECTION_DEBUG = PRTL_CRITICAL_SECTION_DEBUG;
{$EXTERNALSYM LPCRITICAL_SECTION_DEBUG}
TCriticalSectionDebug = CRITICAL_SECTION_DEBUG;
PCriticalSectionDebug = PCRITICAL_SECTION_DEBUG;
LPLDT_ENTRY = PLDT_ENTRY;
{$EXTERNALSYM LPLDT_ENTRY}
PLdtEntry = LPLDT_ENTRY;
const
MUTEX_MODIFY_STATE = MUTANT_QUERY_STATE;
{$EXTERNALSYM MUTEX_MODIFY_STATE}
MUTEX_ALL_ACCESS = MUTANT_ALL_ACCESS;
{$EXTERNALSYM MUTEX_ALL_ACCESS}
//
// Serial provider type.
//
SP_SERIALCOMM = DWORD($00000001);
{$EXTERNALSYM SP_SERIALCOMM}
//
// Provider SubTypes
//
PST_UNSPECIFIED = DWORD($00000000);
{$EXTERNALSYM PST_UNSPECIFIED}
PST_RS232 = DWORD($00000001);
{$EXTERNALSYM PST_RS232}
PST_PARALLELPORT = DWORD($00000002);
{$EXTERNALSYM PST_PARALLELPORT}
PST_RS422 = DWORD($00000003);
{$EXTERNALSYM PST_RS422}
PST_RS423 = DWORD($00000004);
{$EXTERNALSYM PST_RS423}
PST_RS449 = DWORD($00000005);
{$EXTERNALSYM PST_RS449}
PST_MODEM = DWORD($00000006);
{$EXTERNALSYM PST_MODEM}
PST_FAX = DWORD($00000021);
{$EXTERNALSYM PST_FAX}
PST_SCANNER = DWORD($00000022);
{$EXTERNALSYM PST_SCANNER}
PST_NETWORK_BRIDGE = DWORD($00000100);
{$EXTERNALSYM PST_NETWORK_BRIDGE}
PST_LAT = DWORD($00000101);
{$EXTERNALSYM PST_LAT}
PST_TCPIP_TELNET = DWORD($00000102);
{$EXTERNALSYM PST_TCPIP_TELNET}
PST_X25 = DWORD($00000103);
{$EXTERNALSYM PST_X25}
//
// Provider capabilities flags.
//
PCF_DTRDSR = DWORD($0001);
{$EXTERNALSYM PCF_DTRDSR}
PCF_RTSCTS = DWORD($0002);
{$EXTERNALSYM PCF_RTSCTS}
PCF_RLSD = DWORD($0004);
{$EXTERNALSYM PCF_RLSD}
PCF_PARITY_CHECK = DWORD($0008);
{$EXTERNALSYM PCF_PARITY_CHECK}
PCF_XONXOFF = DWORD($0010);
{$EXTERNALSYM PCF_XONXOFF}
PCF_SETXCHAR = DWORD($0020);
{$EXTERNALSYM PCF_SETXCHAR}
PCF_TOTALTIMEOUTS = DWORD($0040);
{$EXTERNALSYM PCF_TOTALTIMEOUTS}
PCF_INTTIMEOUTS = DWORD($0080);
{$EXTERNALSYM PCF_INTTIMEOUTS}
PCF_SPECIALCHARS = DWORD($0100);
{$EXTERNALSYM PCF_SPECIALCHARS}
PCF_16BITMODE = DWORD($0200);
{$EXTERNALSYM PCF_16BITMODE}
//
// Comm provider settable parameters.
//
SP_PARITY = DWORD($0001);
{$EXTERNALSYM SP_PARITY}
SP_BAUD = DWORD($0002);
{$EXTERNALSYM SP_BAUD}
SP_DATABITS = DWORD($0004);
{$EXTERNALSYM SP_DATABITS}
SP_STOPBITS = DWORD($0008);
{$EXTERNALSYM SP_STOPBITS}
SP_HANDSHAKING = DWORD($0010);
{$EXTERNALSYM SP_HANDSHAKING}
SP_PARITY_CHECK = DWORD($0020);
{$EXTERNALSYM SP_PARITY_CHECK}
SP_RLSD = DWORD($0040);
{$EXTERNALSYM SP_RLSD}
//
// Settable baud rates in the provider.
//
BAUD_075 = DWORD($00000001);
{$EXTERNALSYM BAUD_075}
BAUD_110 = DWORD($00000002);
{$EXTERNALSYM BAUD_110}
BAUD_134_5 = DWORD($00000004);
{$EXTERNALSYM BAUD_134_5}
BAUD_150 = DWORD($00000008);
{$EXTERNALSYM BAUD_150}
BAUD_300 = DWORD($00000010);
{$EXTERNALSYM BAUD_300}
BAUD_600 = DWORD($00000020);
{$EXTERNALSYM BAUD_600}
BAUD_1200 = DWORD($00000040);
{$EXTERNALSYM BAUD_1200}
BAUD_1800 = DWORD($00000080);
{$EXTERNALSYM BAUD_1800}
BAUD_2400 = DWORD($00000100);
{$EXTERNALSYM BAUD_2400}
BAUD_4800 = DWORD($00000200);
{$EXTERNALSYM BAUD_4800}
BAUD_7200 = DWORD($00000400);
{$EXTERNALSYM BAUD_7200}
BAUD_9600 = DWORD($00000800);
{$EXTERNALSYM BAUD_9600}
BAUD_14400 = DWORD($00001000);
{$EXTERNALSYM BAUD_14400}
BAUD_19200 = DWORD($00002000);
{$EXTERNALSYM BAUD_19200}
BAUD_38400 = DWORD($00004000);
{$EXTERNALSYM BAUD_38400}
BAUD_56K = DWORD($00008000);
{$EXTERNALSYM BAUD_56K}
BAUD_128K = DWORD($00010000);
{$EXTERNALSYM BAUD_128K}
BAUD_115200 = DWORD($00020000);
{$EXTERNALSYM BAUD_115200}
BAUD_57600 = DWORD($00040000);
{$EXTERNALSYM BAUD_57600}
BAUD_USER = DWORD($10000000);
{$EXTERNALSYM BAUD_USER}
//
// Settable Data Bits
//
DATABITS_5 = WORD($0001);
{$EXTERNALSYM DATABITS_5}
DATABITS_6 = WORD($0002);
{$EXTERNALSYM DATABITS_6}
DATABITS_7 = WORD($0004);
{$EXTERNALSYM DATABITS_7}
DATABITS_8 = WORD($0008);
{$EXTERNALSYM DATABITS_8}
DATABITS_16 = WORD($0010);
{$EXTERNALSYM DATABITS_16}
DATABITS_16X = WORD($0020);
{$EXTERNALSYM DATABITS_16X}
//
// Settable Stop and Parity bits.
//
STOPBITS_10 = WORD($0001);
{$EXTERNALSYM STOPBITS_10}
STOPBITS_15 = WORD($0002);
{$EXTERNALSYM STOPBITS_15}
STOPBITS_20 = WORD($0004);
{$EXTERNALSYM STOPBITS_20}
PARITY_NONE = WORD($0100);
{$EXTERNALSYM PARITY_NONE}
PARITY_ODD = WORD($0200);
{$EXTERNALSYM PARITY_ODD}
PARITY_EVEN = WORD($0400);
{$EXTERNALSYM PARITY_EVEN}
PARITY_MARK = WORD($0800);
{$EXTERNALSYM PARITY_MARK}
PARITY_SPACE = WORD($1000);
{$EXTERNALSYM PARITY_SPACE}
type
LPCOMMPROP = ^COMMPROP;
{$EXTERNALSYM LPCOMMPROP}
_COMMPROP = record
wPacketLength: Word;
wPacketVersion: Word;
dwServiceMask: DWORD;
dwReserved1: DWORD;
dwMaxTxQueue: DWORD;
dwMaxRxQueue: DWORD;
dwMaxBaud: DWORD;
dwProvSubType: DWORD;
dwProvCapabilities: DWORD;
dwSettableParams: DWORD;
dwSettableBaud: DWORD;
wSettableData: Word;
wSettableStopParity: Word;
dwCurrentTxQueue: DWORD;
dwCurrentRxQueue: DWORD;
dwProvSpec1: DWORD;
dwProvSpec2: DWORD;
wcProvChar: array [0..0] of WCHAR;
end;
{$EXTERNALSYM _COMMPROP}
COMMPROP = _COMMPROP;
{$EXTERNALSYM COMMPROP}
TCommProp = COMMPROP;
PCommProp = LPCOMMPROP;
//
// Set dwProvSpec1 to COMMPROP_INITIALIZED to indicate that wPacketLength
// is valid before a call to GetCommProperties().
//
const
COMMPROP_INITIALIZED = DWORD($E73CF52E);
{$EXTERNALSYM COMMPROP_INITIALIZED}
//_COMSTAT Flags (bitfield)
COMSTAT_CTS_HOLD = 1 shl 0;
COMSTAT_DSR_HOLD = 1 shl 1;
COMSTAT_RLSD_HOLD = 1 shl 2;
COMSTAT_XOFF_HOLD = 1 shl 3;
COMSTAT_XOFF_SENT = 1 shl 4;
COMSTAT_F_EOF = 1 shl 5;
COMSTAT_F_TXIM = 1 shl 6;
type
LPCOMSTAT = ^COMSTAT;
{$EXTERNALSYM LPCOMSTAT}
_COMSTAT = record
Flags: DWORD;
cbInQue: DWORD;
cbOutQue: DWORD;
end;
{$EXTERNALSYM _COMSTAT}
COMSTAT = _COMSTAT;
{$EXTERNALSYM COMSTAT}
TComstat = COMSTAT;
PComstat = LPCOMSTAT;
//
// DTR Control Flow Values.
//
const
DTR_CONTROL_DISABLE = $00;
{$EXTERNALSYM DTR_CONTROL_DISABLE}
DTR_CONTROL_ENABLE = $01;
{$EXTERNALSYM DTR_CONTROL_ENABLE}
DTR_CONTROL_HANDSHAKE = $02;
{$EXTERNALSYM DTR_CONTROL_HANDSHAKE}
//
// RTS Control Flow Values
//
RTS_CONTROL_DISABLE = $00;
{$EXTERNALSYM RTS_CONTROL_DISABLE}
RTS_CONTROL_ENABLE = $01;
{$EXTERNALSYM RTS_CONTROL_ENABLE}
RTS_CONTROL_HANDSHAKE = $02;
{$EXTERNALSYM RTS_CONTROL_HANDSHAKE}
RTS_CONTROL_TOGGLE = $03;
{$EXTERNALSYM RTS_CONTROL_TOGGLE}
// _DCB.Flags
const
fDcbBinary = 1 shl 0; // Binary Mode (skip EOF check)
fDcbParity = 1 shl 1; // Enable parity checking
fDcbOutxCtsFlow = 1 shl 2; // CTS handshaking on output
fDcbOutxDsrFlow = 1 shl 3; // DSR handshaking on output
fDcbDtrControl = $0030; // DTR Flow control
fDcbDsrSensitivity = 1 shl 6; // DSR Sensitivity
fDcbTXContinueOnXoff = 1 shl 7; // Continue TX when Xoff sent
fDcbOutX = 1 shl 8; // Enable output X-ON/X-OFF
fDcbInX = 1 shl 9; // Enable input X-ON/X-OFF
fDcbErrorChar = 1 shl 10; // Enable Err Replacement
fDcbNull = 1 shl 11; // Enable Null stripping
fDcbRtsControl = $3000; // Rts Flow control
fAbortOnError = 1 shl 14; // Abort all reads and writes on Error
type
LPDCB = ^DCB;
{$EXTERNALSYM LPDCB}
_DCB = record
DCBlength: DWORD; // sizeof(DCB)
BaudRate: DWORD; // Baudrate at which running
Flags: DWORD; // See constants above
wReserved: WORD; // Not currently used
XonLim: WORD; // Transmit X-ON threshold
XoffLim: WORD; // Transmit X-OFF threshold
ByteSize: BYTE; // Number of bits/byte, 4-8
Parity: BYTE; // 0-4=None,Odd,Even,Mark,Space
StopBits: BYTE; // 0,1,2 = 1, 1.5, 2
XonChar: Char; // Tx and Rx X-ON character
XoffChar: Char; // Tx and Rx X-OFF character
ErrorChar: Char; // Error replacement char
EofChar: Char; // End of Input character
EvtChar: Char; // Received Event character
wReserved1: WORD; // Fill for now.
end;
{$EXTERNALSYM _DCB}
DCB = _DCB;
{$EXTERNALSYM DCB}
TDCB = DCB;
PDCB = LPDCB;
LPCOMMTIMEOUTS = ^COMMTIMEOUTS;
{$EXTERNALSYM LPCOMMTIMEOUTS}
_COMMTIMEOUTS = record
ReadIntervalTimeout: DWORD; // Maximum time between read chars.
ReadTotalTimeoutMultiplier: DWORD; // Multiplier of characters.
ReadTotalTimeoutConstant: DWORD; // Constant in milliseconds.
WriteTotalTimeoutMultiplier: DWORD; // Multiplier of characters.
WriteTotalTimeoutConstant: DWORD; // Constant in milliseconds.
end;
{$EXTERNALSYM _COMMTIMEOUTS}
COMMTIMEOUTS = _COMMTIMEOUTS;
{$EXTERNALSYM COMMTIMEOUTS}
TCommTimeouts = COMMTIMEOUTS;
PCommTimeouts = LPCOMMTIMEOUTS;
LPCOMMCONFIG = ^COMMCONFIG;
{$EXTERNALSYM LPCOMMCONFIG}
_COMMCONFIG = record
dwSize: DWORD; // Size of the entire struct
wVersion: Word; // version of the structure
wReserved: Word; // alignment
dcb: DCB; // device control block
dwProviderSubType: DWORD; // ordinal value for identifying
// provider-defined data structure format
dwProviderOffset: DWORD; // Specifies the offset of provider specific
// data field in bytes from the start
dwProviderSize: DWORD; // size of the provider-specific data field
wcProviderData: array [0..0] of WCHAR; // provider-specific data
end;
{$EXTERNALSYM _COMMCONFIG}
COMMCONFIG = _COMMCONFIG;
{$EXTERNALSYM COMMCONFIG}
TCommConfig = COMMCONFIG;
PCommConfig = LPCOMMCONFIG;
LPSYSTEM_INFO = ^SYSTEM_INFO;
{$EXTERNALSYM LPSYSTEM_INFO}
_SYSTEM_INFO = record
case Integer of
0: (
dwOemId: DWORD); // absolete, do not use
1: (
wProcessorArchitecture: WORD;
wReserved: WORD;
dwPageSize: DWORD;
lpMinimumApplicationAddress: LPVOID;
lpMaximumApplicationAddress: LPVOID;
dwActiveProcessorMask: DWORD_PTR;
dwNumberOfProcessors: DWORD;
dwProcessorType: DWORD;
dwAllocationGranularity: DWORD;
wProcessorLevel: WORD;
wProcessorRevision: WORD);
end;
{$EXTERNALSYM _SYSTEM_INFO}
SYSTEM_INFO = _SYSTEM_INFO;
{$EXTERNALSYM SYSTEM_INFO}
TSystemInfo = SYSTEM_INFO;
PSystemInfo = LPSYSTEM_INFO;
//
//
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -