Hello, maybe this is a little bit late

since it has been almost three years since this message was posted by PhilipG. But for the last couple days I've been having the same problem. And luckily I found this code somewhere in a Chinese website (which my web browser doesn't even able to display the chinese text, but of course the codes are writen in ANSI standard character )

The major problem of sending single byte using MSComm::SetOutput() function is about converting BYTE (unsigned char) data types into struct VARIANT data types..
I am using the SNAP protocol (http://www.hth.com/snap/)
so here is the codes:

CByteArray OutBuf;
COleVariant varOutput;
OutBuf.SetSize(OutPacket.NumOfBytes);
unsigned int i;

for(i=0 ; i<OutPacket.NumOfBytes ; i++)
{
OutBuf[i] = OutPacket.PacketBytes[i];
}
varOutput = OutBuf;

m_ctlSerialComm.SetOutput(varOutput);

Hope this will be usefull..

Regards,

Leo