Question:
How can I dial out through the modem under Win32?
Answer:
You can use the Windows API function CreateFile() to get a handle
to the com port, and use standard file I/O to communicate with the
given port.
Example:
var
 hCommFile : THandle;
procedure TForm1.Button1Click(Sender: TObject);
var
 PhoneNumber : string;
 CommPort : string;
 NumberWritten : LongInt;
begin
 PhoneNumber := 'ATDT 1-555-555-1212' + #13 + #10;
 CommPort := 'COM2';
 {Open the comm port}
 hCommFile := CreateFile(PChar(CommPort),
 GENERIC_WRITE,
 0,
 nil,
 OPEN_EXISTING,
 FILE_ATTRIBUTE_NORMAL,
 0);
 if hCommFile=INVALID_HANDLE_VALUE then
 begin
 ShowMessage('Unable to open '+ CommPort);
 exit;
 end;
 {Dial the phone}
 NumberWritten:=0;
 if WriteFile(hCommFile,
 PChar(PhoneNumber)^,
 Length(PhoneNumber),
 NumberWritten,
 nil) = false then begin
 ShowMessage('Unable to write to ' + CommPort);
 end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
 {Close the port}
 CloseHandle(hCommFile);
end;