#import "../comTest/Debug/comTest.tlb"
using namespace comTestLib;
void CcallComDlg::OnBnClickedButton1()
{
CoInitialize(NULL);
//
//方法1
CLSID clsid;
HRESULT hr = CLSIDFromProgID(OLESTR("comTest.helloCom"),&clsid);
if (hr == S_OK)
{
IhelloCom *prt;
hr = CoCreateInstance(clsid,NULL,CLSCTX_INPROC_SERVER,__uuidof(IhelloCom),(LPVOID*)&prt);//记得release
if (hr == S_OK)
{
prt->func(0);
prt->get_description(NULL,NULL);
prt->put_description(NULL,NULL);
}
prt->Release();
}
//
//方法2
CLSID clsid1;
HRESULT hr1 = CLSIDFromProgID(OLESTR("comTest.helloCom"),&clsid1);
if (hr1 == S_OK)
{
CComPtr<IhelloCom> comPrt;
comPrt.CoCreateInstance(clsid1);
comPrt->func(0);
comPrt->get_description(NULL,NULL);
comPrt->put_description(NULL,NULL);
}
//
CoUninitialize();
}
atl简单控件创建:
(1)vs创建ATL项目
(2)右击项目-添加-类-ATL简单对象
(3)下一步,文件命名
(4)下一步,线程模型选择单元或两者,接口选择双重,聚合选择是,支持选择连接点。。点击完成
(5)在类视图内,右击IXXXX(XXXX为刚才创建的ATL简单对象),选择添加方法-----添加一个接口方法,设置方法名和参数
(6)在类视图内,右击IXXXX(XXXX为刚才创建的ATL简单对象),选择添加属性----- 设置属性名和类型,以及操作属性的get方法和put方法、
然后就可以根据上面的代码在MFC工程中调用了。