IClassFactory2 接口的几个疑问

jy_1201 2009-03-30 04:03:52
ActiveX里实现IClassFactory2接口,当在IE浏览器中使用这个ActiveX时。

IClassFactory2 里的方法成员,对像创建时会自动调用吗?还是需要做操作,在一开始就去调用?

比如IClassFactory2::CreateInstanceLic 这个创建授权实例,对像构建函数中会自动调用?还是在什么地方手动调用一下?
...全文
97 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuzxchina 2009-03-30
  • 打赏
  • 举报
回复
IE会加载文档的时候,自动处理对象的创建问题
你只需要使用脚本调用activx中的方法和属性就可以
oyljerry 2009-03-30
  • 打赏
  • 举报
回复
http://www.codeproject.com/KB/COM/ActiveXLicenceInfo.aspx?display=PrintAll&fid=352448&df=90&mpp=25&noise=3&sort=Position&view=Quick&select=2079901
oyljerry 2009-03-30
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 jy_1201 的回复:]
谢谢,不是很明白。

我的ActiveX是以 <object>对像插入html的,不知道CreateInstanceLic在哪里会触发?对象构造函数里自动触发的还是需要手动去调用一下?
[/Quote]
js中调用的时候
new ActiveXObject
jy_1201 2009-03-30
  • 打赏
  • 举报
回复
谢谢,不是很明白。

我的ActiveX是以<object>对像插入html的,不知道CreateInstanceLic在哪里会触发?对象构造函数里自动触发的还是需要手动去调用一下?
oyljerry 2009-03-30
  • 打赏
  • 举报
回复
别人用的时候需要这么使用

通过IClassFactory2的CreateInstanceLic方法,可以使用临时权限创建对象。在取得了COM类对象之后,调用CreateInstanceLic方法,并且把注册码作为参数,就可以得到新建的COM对象的接口指针。

CreateInstanceLic的定义如下:



HRESULT CreateInstanceLic(

IUnknown* pUnkOuter,

IUnknown* pUnkReserved,

REFIID riid,

BSTR bstrKey,

void** ppvObject

);



pUnkOuter是聚合的外部对象指针,在不使用聚合的时候,用NULL。

pUnkReserved是保留的参数,用NULL。

riid是所需要返回的接口IID。

bstrKey是注册码。

ppvObject是保存返回的接口指针的地址。

具体代码:



Ixxx * pObj;

hr = pCF2->CreateInstanceLic(NULL, NULL, IID_Ixxx,

bstrLicenseKey, (void**) &pObj);

if (FAILED(hr))

{

...

}


创建之后就可以像使用普通COM对象一样使用新建的COM对象。

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧