Mega Code Archive

 
Categories / Delphi / Examples
 

Changing com port config via win95 commconfig dialog

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;