5.//串口响应函数,主要用来接收数据
void CChildFrame::OnComm1()
{
VARIANT m_input;
    char *str,*str1;
    int k,nEvent,i;
    CString str2,m_RcvData;
    nEvent=m_Comm.GetCommEvent();
switch(nEvent)
{
case 2:
k=m_Comm.GetInBufferCount();     //接收缓冲区的字符数目
if(k>0)
{
m_input=m_Comm.GetInput();
str=(char*)(unsigned char*)m_input.parray->pvData;
}
i=0;
str1=str;
while(i<k)
{
i++;
str1++;
}
*str1='\0';                               
str2=(const char*)str;             //清除字符串中的不必要字符
m_RcvData=(const char *)str;
}
//数据显示处理
}
从WHILE开始就不明白怎么回事了
我的C语言很差
谁给详细解读以下
谢!!!!!!!!!!!!!!