bsp; char mark=1;
str=(VARSTRING *)malloc(sizeof(VARSTRING));
if(!str)
return NULL;
str- >dwTotalSize=sizeof(VARSTRING);
do
{ if((lineGetID(myhLine,0,NULL,LINECALLSELECT_LINE,str,
"comm/datamodem")==0)&&(str- >dwTotalSize < str- > dwNeededSize))
{ dwSize=str- >dwNeededSize;
free(str);
str=(VARSTRING *)malloc(dwSize);
if(!str)
{ myhModem=NULL;
mark=2;
}
str- >dwTotalSize=dwSize;
}
else mark=0;
}while(mark==1);
if(mark==0)
{ mid=(ModemID far *)((LPSTR)str+str- >dwStringOffset);
myhModem=mid- >hModem;
}
free(str);
}
---- 4 在 主 窗 口 初 始 化 函 数 中 加 入 对 线 路 的 初 始 化 过 程:
pwin=this;// 获 得 主 窗 口 指 针
while(lineInitialize(&myhTAPI,GetModule()- >GetInstance(),
(LINECALLBACK)MakeProcInstance((FARPROC) lpfnCallback,
GetModule()- >GetInstance()), "TRY",&NumLine )==LINEERR_REINIT)
{ sleep(1);// 延 迟 };
Error=lineOpen(hTAPI,0,&HLine,0x10004,0,0,LINECALLPRIVILEGE_MONITOR+
LINECALLPRIVILEGE_OWNER,LINEMEDIAMODE_DATAMODEM,NULL);
if(Error!=0)
{ sprintf(buf,"%lx",Error);
MessageBox(buf,0,MB_OK); }
else
{ GethModem(myhLine);// 取 得myhModem 的 值
if(myhModem!=NULL)
{ para.dwBearerMode=LINEBEARERMODE_VOICE;
para.dwMediaMode=LINEMEDIAMODE_DATAMODEM;
para.dwTotalSize=sizeof(LINECALLPARAMS);
&n