Hardware Delphi

Title: Getting modem status under Win32
Question: How can I get the modem status under Win32?
Answer:
The following example demonstrates retrieving the current state
of the modem control-register values under Win32.
Example:
procedure TForm1.Button1Click(Sender: TObject);
var
CommPort : string;
hCommFile : THandle;
ModemStat : DWord;
begin
CommPort := 'COM2';
{Open the comm port}
hCommFile := CreateFile(PChar(CommPort),
GENERIC_READ,
0,
nil,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
0);
if hCommFile = INVALID_HANDLE_VALUE then
begin
ShowMessage('Unable to open '+ CommPort);
exit;
end;
{Get the Modem Status}
if GetCommModemStatus(hCommFile, ModemStat) false then begin
if ModemStat and MS_CTS_ON 0 then
ShowMessage('The CTS (clear-to-send) is on.');
if ModemStat and MS_DSR_ON 0 then
ShowMessage('The DSR (data-set-ready) is on.');
if ModemStat and MS_RING_ON 0then
ShowMessage('The ring indicator is on.');
if ModemStat and MS_RLSD_ON 0 then
ShowMessage('The RLSD (receive-line-signal-detect) is
on.');
end;
{Close the comm port}
CloseHandle(hCommFile);
end;