关于串口通讯有关问题

关于串口通讯问题!
HANDLE   hEvent=0;  
HANDLE   hCom=0;
DCB   dcb;
OVERLAPPED   OverRead,   OverWrite;
COMSTAT   comstat;
OVERLAPPED   os;
DWORD   dwEvtMask=0;
//---------------------------------------
//初始化串口
int   __stdcall   InitCom(int   port,int   baud)
{
        AnsiString   comname;
        comname= "COM "+IntToStr(port);
        CloseHandle(hCom);
        COMMTIMEOUTS   CommTimeOuts;
        if(hCom==INVALID_HANDLE_VALUE)
        {
                switch   (GetLastError())
                {
                        case   ERROR_FILE_NOT_FOUND:   MessageBox(NULL, "串口不存在! ", "提示信息 ",NULL   );
                                                                                break;
                        case   ERROR_ACCESS_DENIED:     MessageBox(NULL, "串口已被占用! ", "提示信息 ",NULL);
                                                                                break;
                }
                return   0;
        }
        if(hCom!=0)
        {
                return   0;
        }
        hCom=CreateFile(comname.c_str(),   //文件名
                                          GENERIC_READ|GENERIC_WRITE,//访问模式允许读写
                                          0,   //此项必须是0
                                          NULL,//无安全参数
                                          OPEN_EXISTING,//创建方式
                                          FILE_FLAG_OVERLAPPED,//异步工作方式
                                          NULL);
        if(hCom==INVALID_HANDLE_VALUE)
        {
                ShowMessage( "打开串口失败! ");
                return   0;
        }