龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VC开发 >

Developing COM Components using VC-ATL(3-6)(3)

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
END_MESSAGE_MAP() … void CVCTestVCComProjDlg::OnButton1() { // TODO: Add your control notification handler code here HRESULT hr=CoInitialize(NULL);// 初始化COM库 CLSID clsid; hr=CLSIDFromProgID(

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          代码测试:同上(略)。

精彩图集

赞助商链接