Developing COM Components using VC-ATL(3-6)(3)
END_MESSAGE_MAP()
…
void CVCTestVCComProjDlg::OnButton1()
{
// TODO: Add your control notification handler code here
HRESULT hr=CoInitialize(NULL);// 初始化COM库
CLSID clsid;
hr=CLSIDFromProgID(OLESTR("ValidateCreditCardServer.ValidateCard"),&clsid);// 获得服务器的CLSID
IValidateCard * cardptr;
hr=CoCreateInstance(clsid,NULL,CLSCTX_INPROC_SERVER,__uuidof(IValidateCard),(LPVOID *)&cardptr);
if(FAILED(hr))
{
AfxMessageBox("Server Creation Failed");
return;
}//创建COM服务器组件的实例
char cCardNum[20],cCardType[10];
GetDlgItemText(IDC_EDIT1,cCardNum,20);
GetDlgItemText(IDC_EDIT2,cCardType,10);
_bstr_t bstCardNum(cCardNum),bstCardType(cCardType);
long lStatus;
lStatus=cardptr->ValidateCreditCard(bstCardNum,bstCardType);
if(lStatus==1)
AfxMessageBox("valid card");
else
AfxMessageBox("invalid card"); //使用COM对象
CoUninitialize();//终止COM库
}
--------------------------------------------------------------------------------
8. 编绎运行测试程序。
n 代码测试:同上(略)。