Hola, te envio unas pruebas que hize para escribir en una impresora serie. Creo que esto te puede dar algunas ideas.
//---
unsigned long nbw;
HANDLE comhandle;
DCB newDCB;
String cDB = "COM1";
comhandle = CreateFile(cDB.c_str(),
GENERIC_READ|GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
if (comhandle == INVALID_HANDLE_VALUE) {
Application->MessageBox("Error en apertura COM","Error",MB_ICONSTOP);
}
else {
// GetCommState(comhandle, &newDCB); // Ver valores...
newDCB.BaudRate = 9600;
newDCB.ByteSize = 8;
newDCB.Parity = 0;
newDCB.StopBits = 0;
SetCommState(comhandle, &newDCB);
cDB = "Prueba UNO";
WriteFile(comhandle, cDB.c_str() , cDB.Length() , &nbw, NULL);
Sleep(1500);
CloseHandle(comhandle);
}