Главная страница | назад





Article #16199: Changing com port config via Win95 CommConfig Dialog

 Question and Answer Database
FAQ1199D.txt Changing com port config via Win95 CommConfig Dialog
Category :Miscellaneous
Platform :All
Product :All 32 bit
Question:
When I use the Windows 95 CommConfig Dialog box, the settings
entered do not seem to change the com port's configuration.
How can I set the comm ports configuration using the
CommConfig Dialog box?
Answer:
The following example demonstrates setting the comm port under
Windows95 using the CommConfig Dialog box. Note: Any changes
made to the dialog are not updated in the system. You are
responsible for updating the com ports configuration.
Example:
procedure TForm1.Button1Click(Sender: TObject);
var
CommPort : string;
hCommFile : THandle;
Buffer : PCommConfig;
size : DWORD;
begin
CommPort := 'COM1';
{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;
{Get a temporary buffer}
GetMem(Buffer, sizeof(TCommConfig));
{Get the size of the CommConfig structure}
{as it may be different than documented}
size := 0;
GetCommConfig(hCommFile, Buffer^, size);
{Free the temporary buffer}
FreeMem(Buffer, sizeof(TCommConfig));
{Get the CommConfig structure}
GetMem(Buffer, size);
GetCommConfig(hCommFile, Buffer^, size);
{Pop up the comm port config dialog}
if CommConfigDialog(PChar(CommPort),
Form1.Handle,
Buffer^) = true then begin
{Set the com port to the values entered}
{in the dialog if the user pressed ok}
SetCommConfig(hCommFile, Buffer^, size);
end;
{Free the buffer}
FreeMem(Buffer, size);
{Close the comm port}
CloseHandle(hCommFile);
end;
7/16/98 4:31:28 PM

Last Modified: 01-SEP-99