mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-16 18:39:19 +02:00
+ added the win16api comm support functions
git-svn-id: trunk@31823 -
This commit is contained in:
parent
6767906755
commit
5cb89fba9e
@ -738,6 +738,34 @@ const
|
||||
SDS_DIALOG = $0008;
|
||||
SDS_TASKLOCKED = $0010;
|
||||
|
||||
{ Comm support }
|
||||
{ new escape functions }
|
||||
GETMAXLPT = 8;
|
||||
GETMAXCOM = 9;
|
||||
GETBASEIRQ = 10;
|
||||
|
||||
{ Comm Baud Rate indices }
|
||||
CBR_110 = $FF10;
|
||||
CBR_300 = $FF11;
|
||||
CBR_600 = $FF12;
|
||||
CBR_1200 = $FF13;
|
||||
CBR_2400 = $FF14;
|
||||
CBR_4800 = $FF15;
|
||||
CBR_9600 = $FF16;
|
||||
CBR_14400 = $FF17;
|
||||
CBR_19200 = $FF18;
|
||||
CBR_38400 = $FF1B;
|
||||
CBR_56000 = $FF1F;
|
||||
CBR_128000 = $FF23;
|
||||
CBR_256000 = $FF27;
|
||||
|
||||
{ notifications passed in low word of lParam on WM_COMMNOTIFY messages }
|
||||
CN_RECEIVE = $0001;
|
||||
CN_TRANSMIT = $0002;
|
||||
CN_EVENT = $0004;
|
||||
|
||||
WM_COMMNOTIFY = $0044;
|
||||
|
||||
function GetFreeSystemResources(SysResource: UINT): UINT; external 'USER';
|
||||
|
||||
procedure LogError(err: UINT; lpInfo: FarPointer); external 'KERNEL';
|
||||
@ -952,6 +980,9 @@ function QuerySendMessage(h1, h2, h3: HANDLE; lpmsg: LPMSG): BOOL; external 'USE
|
||||
function LockInput(h1: HANDLE; hwndInput: HWND; fLock: BOOL): BOOL; external 'USER';
|
||||
function GetSystemDebugState: LONG; external 'USER';
|
||||
|
||||
{ Comm support }
|
||||
function EnableCommNotification(idComDev: SmallInt; hwnd: HWND; cbWriteNotify, cbOutQueue: SmallInt): BOOL; external 'USER';
|
||||
|
||||
implementation
|
||||
|
||||
end.
|
||||
|
@ -1262,3 +1262,38 @@ function WaitSoundState(fnState: SmallInt): SmallInt; external 'SOUND';
|
||||
|
||||
function SyncAllVoices: SmallInt; external 'SOUND';
|
||||
function CountVoiceNotes(nvoice: SmallInt): SmallInt; external 'SOUND';
|
||||
|
||||
{ Comm support }
|
||||
|
||||
function BuildCommDCB(lpszDef: LPCSTR; lpdcb: LPDCB): SmallInt; external 'USER';
|
||||
{$ifdef VAR_PARAMS_ARE_FAR}
|
||||
function BuildCommDCB(lpszDef: LPCSTR; var dcb: DCB): SmallInt; external 'USER';
|
||||
{$endif}
|
||||
|
||||
function OpenComm(lpszDevControl: LPCSTR; cbInQueue, cbOutQueue: UINT): SmallInt; external 'USER';
|
||||
function CloseComm(idComDev: SmallInt): SmallInt; external 'USER';
|
||||
|
||||
function ReadComm(idComDev: SmallInt; lpvBuf: FarPointer; cbRead: SmallInt): SmallInt; external 'USER';
|
||||
function ReadComm(idComDev: SmallInt; lpvBuf: PFarChar; cbRead: SmallInt): SmallInt; external 'USER';
|
||||
function WriteComm(idComDev: SmallInt; lpvBuf: FarPointer; cbWrite: SmallInt): SmallInt; external 'USER';
|
||||
function WriteComm(idComDev: SmallInt; lpvBuf: PFarChar; cbWrite: SmallInt): SmallInt; external 'USER';
|
||||
function UngetCommChar(idComDev: SmallInt; chUnget: char): SmallInt; external 'USER';
|
||||
function FlushComm(idComDev, fnQueue: SmallInt): SmallInt; external 'USER';
|
||||
function TransmitCommChar(idComDev: SmallInt; chTransmit: char): SmallInt; external 'USER';
|
||||
|
||||
function SetCommState(lpdcb: LPDCB): SmallInt; external 'USER';
|
||||
function GetCommState(idComDev: SmallInt; lpdcb: LPDCB): SmallInt; external 'USER';
|
||||
function GetCommError(idComDev: SmallInt; lpStat: LPCOMSTAT): SmallInt; external 'USER';
|
||||
{$ifdef VAR_PARAMS_ARE_FAR}
|
||||
function SetCommState(var dcb: DCB): SmallInt; external 'USER';
|
||||
function GetCommState(idComDev: SmallInt; var dcb: DCB): SmallInt; external 'USER';
|
||||
function GetCommError(idComDev: SmallInt; var Stat: COMSTAT): SmallInt; external 'USER';
|
||||
{$endif}
|
||||
|
||||
function SetCommBreak(idComDev: SmallInt): SmallInt; external 'USER';
|
||||
function ClearCommBreak(idComDev: SmallInt): SmallInt; external 'USER';
|
||||
|
||||
function SetCommEventMask(idComDev: SmallInt; fuEvtMask: UINT): LPUINT; external 'USER';
|
||||
function GetCommEventMask(idComDev, fnEvtClear: SmallInt): UINT; external 'USER';
|
||||
|
||||
function EscapeCommFunction(idComDev, nFunction: SmallInt): LONG; external 'USER';
|
||||
|
@ -2767,3 +2767,166 @@ const
|
||||
S_SERDDR = (-14);
|
||||
S_SERDSR = (-15);
|
||||
S_SERDST = (-16);
|
||||
|
||||
{ Comm support }
|
||||
|
||||
NOPARITY = 0;
|
||||
ODDPARITY = 1;
|
||||
EVENPARITY = 2;
|
||||
MARKPARITY = 3;
|
||||
SPACEPARITY = 4;
|
||||
|
||||
ONESTOPBIT = 0;
|
||||
ONE5STOPBITS = 1;
|
||||
TWOSTOPBITS = 2;
|
||||
|
||||
IGNORE = 0;
|
||||
INFINITE = $FFFF;
|
||||
|
||||
{ Error Flags }
|
||||
CE_RXOVER = $0001;
|
||||
CE_OVERRUN = $0002;
|
||||
CE_RXPARITY = $0004;
|
||||
CE_FRAME = $0008;
|
||||
CE_BREAK = $0010;
|
||||
CE_CTSTO = $0020;
|
||||
CE_DSRTO = $0040;
|
||||
CE_RLSDTO = $0080;
|
||||
CE_TXFULL = $0100;
|
||||
CE_PTO = $0200;
|
||||
CE_IOE = $0400;
|
||||
CE_DNS = $0800;
|
||||
CE_OOP = $1000;
|
||||
CE_MODE = $8000;
|
||||
|
||||
IE_BADID = (-1);
|
||||
IE_OPEN = (-2);
|
||||
IE_NOPEN = (-3);
|
||||
IE_MEMORY = (-4);
|
||||
IE_DEFAULT = (-5);
|
||||
IE_HARDWARE = (-10);
|
||||
IE_BYTESIZE = (-11);
|
||||
IE_BAUDRATE = (-12);
|
||||
|
||||
{ Events }
|
||||
EV_RXCHAR = $0001;
|
||||
EV_RXFLAG = $0002;
|
||||
EV_TXEMPTY = $0004;
|
||||
EV_CTS = $0008;
|
||||
EV_DSR = $0010;
|
||||
EV_RLSD = $0020;
|
||||
EV_BREAK = $0040;
|
||||
EV_ERR = $0080;
|
||||
EV_RING = $0100;
|
||||
EV_PERR = $0200;
|
||||
EV_CTSS = $0400;
|
||||
EV_DSRS = $0800;
|
||||
EV_RLSDS = $1000;
|
||||
EV_RingTe = $2000;
|
||||
// EV_RINGTE = EV_RingTe;
|
||||
|
||||
{ Escape Functions }
|
||||
SETXOFF = 1;
|
||||
SETXON = 2;
|
||||
SETRTS = 3;
|
||||
CLRRTS = 4;
|
||||
SETDTR = 5;
|
||||
CLRDTR = 6;
|
||||
RESETDEV = 7;
|
||||
|
||||
LPTx = $80;
|
||||
|
||||
type
|
||||
PDCB = ^DCB;
|
||||
LPDCB = ^DCB; far;
|
||||
DCB = record
|
||||
Id: BYTE;
|
||||
BaudRate: UINT;
|
||||
ByteSize: BYTE;
|
||||
Parity: BYTE;
|
||||
StopBits: BYTE;
|
||||
RlsTimeout: UINT;
|
||||
CtsTimeout: UINT;
|
||||
DsrTimeout: UINT;
|
||||
|
||||
Flags: Word;
|
||||
{ UINT fBinary :1;
|
||||
UINT fRtsDisable :1;
|
||||
UINT fParity :1;
|
||||
UINT fOutxCtsFlow :1;
|
||||
UINT fOutxDsrFlow :1;
|
||||
UINT fDummy :2;
|
||||
UINT fDtrDisable :1;
|
||||
|
||||
UINT fOutX :1;
|
||||
UINT fInX :1;
|
||||
UINT fPeChar :1;
|
||||
UINT fNull :1;
|
||||
UINT fChEvt :1;
|
||||
UINT fDtrflow :1;
|
||||
UINT fRtsflow :1;
|
||||
UINT fDummy2 :1;}
|
||||
|
||||
XonChar: char;
|
||||
XoffChar: char;
|
||||
XonLim: UINT;
|
||||
XoffLim: UINT;
|
||||
PeChar: char;
|
||||
EofChar: char;
|
||||
EvtChar: char;
|
||||
TxDelay: UINT;
|
||||
end;
|
||||
TDCB = DCB;
|
||||
|
||||
const
|
||||
DCB_Binary = $0001;
|
||||
DCB_RtsDisable = $0002;
|
||||
DCB_Parity = $0004;
|
||||
DCB_OutxCtsFlow = $0008;
|
||||
DCB_OutxDsrFlow = $0010;
|
||||
DCB_Dummy = $0060;
|
||||
DCB_DtrDisable = $0080;
|
||||
|
||||
DCB_OutX = $0100;
|
||||
DCB_InX = $0200;
|
||||
DCB_PeChar = $0400;
|
||||
DCB_Null = $0800;
|
||||
DCB_ChEvt = $1000;
|
||||
DCB_Dtrflow = $2000;
|
||||
DCB_Rtsflow = $4000;
|
||||
DCB_Dummy2 = $8000;
|
||||
|
||||
type
|
||||
PCOMSTAT = ^COMSTAT;
|
||||
LPCOMSTAT = ^COMSTAT; far;
|
||||
COMSTAT = record
|
||||
case Integer of
|
||||
0: (
|
||||
status: BYTE;
|
||||
cbInQue: UINT;
|
||||
cbOutQue: UINT;
|
||||
);
|
||||
1: (
|
||||
{ BP7 compatible field name, overlaid on top of 'status' }
|
||||
Flags: Byte
|
||||
);
|
||||
end;
|
||||
TComStat = COMSTAT;
|
||||
|
||||
const
|
||||
CSTF_CTSHOLD = $01;
|
||||
CSTF_DSRHOLD = $02;
|
||||
CSTF_RLSDHOLD = $04;
|
||||
CSTF_XOFFHOLD = $08;
|
||||
CSTF_XOFFSENT = $10;
|
||||
CSTF_EOF = $20;
|
||||
CSTF_TXIM = $40;
|
||||
|
||||
{ BP7 compatibility constants }
|
||||
COM_CtsHold = $01;
|
||||
COM_DsrHold = $02;
|
||||
COM_RlsdHold = $04;
|
||||
COM_XoffHold = $08;
|
||||
COM_XoffSent = $10;
|
||||
COM_Eof = $20;
|
||||
COM_Txim = $40;
|
||||
|
Loading…
Reference in New Issue
Block a user