请大侠帮忙翻译一段C++代码,谢谢!
void CallBackProc(BSTR BS_flag,BSTR BS_svalue1,BSTR BS_svalue2,BSTR BS_svalue3,BSTR BS_svalue4,BSTR BS_svalue5,
BSTR BS_svalue6,BSTR BS_svalue7 ,BSTR BS_svalue8)
{
// TODO: Add your control notification handler code here
int flag = atoi(_com_util::ConvertBSTRToString(BS_flag));
char *svalue1 = _com_util::ConvertBSTRToString(BS_svalue1);
char *svalue2 = _com_util::ConvertBSTRToString(BS_svalue2);
char *svalue3 = _com_util::ConvertBSTRToString(BS_svalue3);
char *svalue4 = _com_util::ConvertBSTRToString(BS_svalue4);
char *svalue5 = _com_util::ConvertBSTRToString(BS_svalue5);
char *svalue6 = _com_util::ConvertBSTRToString(BS_svalue6);
char *svalue7 = _com_util::ConvertBSTRToString(BS_svalue7);
char *svalue8 = _com_util::ConvertBSTRToString(BS_svalue8);
CString msgstr;
CString msgtemp;
recvNum ++;
if(flag == 4){
msgtemp.Format("%6d [业务响应包] SequenceID:%s MessID:%s STATUS:%s", recvNum, svalue1, svalue2, svalue3);
}
else if(flag == 5){
msgtemp.Format("%6d [上行短信包] SequenceID:%s 发送号码:%s 接收号码:%s 接收时间:%s 短信内容:%s",
recvNum, svalue1, svalue2, svalue3, svalue4, svalue5);
}
else if(flag == 7){
msgtemp.Format("%6d [短信回执包] SequenceID:%s MessID:%s 发送号码:%s 接收号码:%s 提交时间:%s 下发时间:%s 短信状态:%s 错误代码:%s",
recvNum, svalue1, svalue2, svalue3, svalue4, svalue5, svalue6, svalue7, svalue8);
}
MessageBoxA(NULL,msgtemp,"CallBackProc",MB_OK);
msgstr += msgtemp;
msgstr += '\n';
theApp.m_pMainWnd->GetDlgItem(IDC_SHOWMSG)->SetWindowText(msgstr);
}
void Startthread(CComPtr<IFullTunnelServiceControl>& spTmp)
{_variant_t callback;
VariantInit(&callback);
callback.vt = VT_NULL;
callback.pvRecord= (PVOID)CallBackProc;
cout<<"use com begin.........."<<endl;
CComBSTR str;
spTmp->StartRecv_User(callback);
cout<<"use com end............"<<endl;
}
void CSendTestDlg::OnStartthread()
{
_variant_t callback;
VariantInit(&callback);
callback.vt = VT_NULL; //组件用vt标识 是页面调用 还是 C++调用
callback.pvRecord= (PVOID)CallBackProc;
hr = spTmp->StartRecv_User(callback);
switch(hr)
{
case 0: //其他返回值参见COM调用错误编号 三.调用StartRecv_User
MessageBox("创建接收线程成功","OnStartthread",MB_OK);
break;
case 1:
MessageBox("创建接收线程失败","OnStartthread",MB_OK);
break;
default:
;
}
}