实例化ActiveX对象

时间:2010-09-23 00:39:46

标签: c++ com activex

我使用以下命令在Visual Studio 2008中将ActiveX库导入到我的项目中:

#import "TeeChart8.ocx" named_guids

现在我想创建ActiveX库公开的对象。但是,我无法理解API。

使用#import,.tli文件和.tlh文件构建项目后,创建了两个文件。

在.tlh文件中有以下行:

_COM_SMARTPTR_TYPEDEF(ITChart, __uuidof(ITChart));

当我在ITypeLib Viewer(Oleview)中打开ActiveX库TeeChart8.ocx时,我可以看到ITChart。另外,如果我在代码中输入ITChartPtr->Invoke,intellisense会告诉我需要填充一大堆参数。

基本上,我想知道如何实例化一个ActiveX对象以及我需要在哪里获取所需的信息?

3 个答案:

答案 0 :(得分:3)

可能还不足以创建ActiveX函数CoCreateInstance。 ActiveX必须正确初始化(理论可以在ActiveX Controls Overviews and Tutorials找到: - )

最简单的方法是使用CAxWindow(ATL框架)

此处,collected various information介绍如何创建ActiveX控件

答案 1 :(得分:1)

在API文档中查找函数CoCreateInstance

答案 2 :(得分:1)

当它是一个简单的COM对象时,您可以使用以下内容(假设一个名为TChart的coclass与名为ITChart的接口一起使用):

ITChartPtr chart(__uuidof(TChart));

有关使用#import语句生成的.tlh文件中ITChartPtr宏定义的_COM_SMARTPTR_TYPEDEF类型的详细信息,请参阅com_ptr_t

如果它是一个完整的ActiveX控件,那么Victoranswer所说的内容就更多了。