现在的位置: 首页 > 综合 > 正文

如何使用第三方COM组件

2012年11月05日 ⁄ 综合 ⁄ 共 800字 ⁄ 字号 评论关闭

如何使用第三方COM组件

已经有了第三方的COM组件(如OCX,DLL,TLB),该如何使用呢?
最简单的方法就是:
了解组件
建议使用OleView.exe程序来详细了解组件包含什么样的接口和方法。找不到,Dcomcnfg.exe也行。

引入接口
通过#import指令引入接口,例如:
#import “ABCDEFG.DLL” named_guids raw_interfaces_only no_namespace

初始化
调用CoInitialize()或CoInitlaizeEx()来初始化COM运行环境,例如:
 CoInitialize(0);

获取接口
根据第一步了解的知识,在初始化环境后,可以获取接口了,例如:
 IMyObject* obj = NULL; // 假定接口是IMyObject

// 返回值为HRESULT类型的,典型地,S_OK(0)表示成功,E_FAIL表示失败,还有其它的失败值
HRESULT hr = CoCreateInstance(__uuidof(MyObject), NULL, CLSCTX_ALL, __uuidof(IMyObject), (void **)&obj);

if ( SUCCEEDED(hr) ) // 或者 if ( !FAILEd(hr) )
{
  …..利用接口作些事
  //最后释放接口
  IMyObject->Release();
}

方法调用
根据第一步了解的知识,调用接口的方法做某些事,例如:
HRESULT hr= obj->Method(arg1, arg2); // 方法都返回HRESULT类型的值

if ( SUCCEEDED(hr) )
{
  // 调用成功,作其它事
}
注意事项
使用COM组件,特别注意方法的参数类型,如BSTR,SAFEARRAY,VARIANT之类 ,如果有用到这些类型,请仔细参阅有关这些类型说明的资料。
结束
接口使用结束后,需要释放COM环境,如下:
CoUninitialize(); 

抱歉!评论已关闭.