使用MSComm,get_CommEvent值5(carrier detect 线变化),几个意思?

使用MSComm时,get_CommEvent值为5,说是“carrier detect 线变化”,这是几个意思啊?查了半天也没见有什么解释。求救!!
在下小白,诚心求教!
以下是代码

// 打开串口及串口设置
void CTandPDlg::OnBnClickedButtonCom1()
{
//TCHAR words[100] = {};
// TODO: 在此添加控件通知处理程序代码
if(mscomm1.get_PortOpen()) //如果串口是打开的,则行关闭串口
{
mscomm1.put_PortOpen(FALSE);
}

mscomm1.put_CommPort(2); //选择COM2

mscomm1.put_InBufferSize(1024); //接收缓冲区
mscomm1.put_OutBufferSize(1024);//发送缓冲区
mscomm1.put_InputLen(0);//设置当前接收区数据长度为0,表示全部读取
mscomm1.put_InputMode(1);//以二进制方式读写数据
mscomm1.put_RThreshold(1);//接收缓冲区有1个及1个以上字符时,将引发接收数据的OnComm事件
mscomm1.put_Settings(_T("9600,n,8,1"));//波特率9600无检验位,8个数据位,1个停止位

if(!mscomm_ADAM1.get_PortOpen())//如果串口没有打开则打开
{
    mscomm_ADAM1.put_PortOpen(TRUE);//打开串口
    AfxMessageBox(_T("The COM has connected"));
    CString ctrlWords("#01");
    mscomm1.put_Output(COleVariant(ctrlWords));//发送数据
}
else
{
    mscomm1.put_OutBufferCount(0);
    AfxMessageBox(_T("串口1打开失败"));
}

}

// 接收数据
void CTandPDlg::OnCommMscomm1()
{
// TODO: 在此处添加消息处理程序代码
FILE *file = fopen( "d:/id.txt","a" );
fprintf( file, "%d", mscomm1.get_CommEvent() );
fclose( file );

static unsigned int cnt=0;
VARIANT variant_inp;
COleSafeArray safearray_inp;
long len,k;
unsigned int data[1024]={0};
byte rxdata[1024]; //设置 BYTE 数组
CString strtemp;
if(mscomm1.get_CommEvent()==2) //值为 2 表示接收缓冲区内有字符
{
    AfxMessageBox(_T("串口读事件"));
    cnt++;
    variant_inp=mscomm1.get_Input(); //读缓冲区消息
    safearray_inp=variant_inp; ///变量转换
    len=safearray_inp.GetOneDimSize(); //得到有效的数据长度
    for(k=0;k<len;k++)
    {
        safearray_inp.GetElement(&k,rxdata+k);
    }
    strtemp.Format(_T("%x"),*(rxdata+k));

    wchar_t *cBuffer = strtemp.GetBuffer( strtemp.GetLength() );
    strtemp.ReleaseBuffer();

    FILE *file = fopen( "d:/read.txt","w+" );
    for( int i = 0; i<strtemp.GetLength(); ++i )
        fprintf( file, "%c", cBuffer[i] );
    fclose( file );
}
UpdateData(FALSE); //更新编辑框内容

}

按照用 MSCOMM 控件的做法,收到 comEvRing 5 时就取 CDHolding 属性,如果为 true 的话就表示连通。
这大概是模拟信号的电话拨号时,CD 线通电了表示接通的意思。
用的什么设备啊,居然不是数字信号的?

而且comEvRing是6啊,5是comEvCD:carrier detect 线变化

请问楼主怎么解决的,我也遇到同样的问题了,求救