//打开串口
hCom=CreateFile("COM1",
GENERIC_READ | GENERIC_WRITE,//允许读写
0, //共享模式,串口不支持共享,所以为0
NULL,//定义安全属性
OPEN_EXISTING, //设置产生方式 
FILE_FLAG_OVERLAPPED, //使用异步通信 
NULL );
//设置dcb参数
//等待通信事件的发生 
         WaitCommEvent(hCom,&dwEvtMask,NULL);   //问题1
         if((dwEvtMask & EV_RXCHAR)==EV_RXCHAR)//有数据到来  
{
  dwLength=ComStat.cbInQue;
  if(dwLength>0)
  {
    ReadFile(hCom,lpBuffer,dwLength,&dwLength,FILE_FLAG_OVERLAPPED);
   }
}
if (lpBuffer !="fd")                   //问题2
{
 //弹出错误对话框
          }
else
{
          //往下执行
          }
这段程序的初衷是,打开com1,等待数据到来(问题1),如果数据到来,就读数据缓冲区数据,如果数据不是指定数据(问题2),弹出错误信息,否则往下执行。
问题1:为什么WaitCommEvent事件不发生,程序也往下执行?
问题2:判断接受到的数据的方法怎么写,比如我想判断是不是十六进制的 aa
如果这段程序的执行逻辑背叛了程序的初衷,那该怎么写?