createoleobject ,createcomobject , createobject 有何区别(50分)

  • 主题发起人 主题发起人 lgw_1
  • 开始时间 开始时间
L

lgw_1

Unregistered / Unconfirmed
GUEST, unregistred user!
大家周末好:
小弟再问个问题:
createoleobject ,createcomobject , createobject有何区别?
 
to hubdog :
就是你啦,我一边看书一边等你回答呢. ok?
 
createobject是创建OLE对象;
createoleobject是创建OLE对象的单个实例;
createcomobject是创建COM对象。
详见DELPHI的帮助。
 
它们的返回值不一样
IUnknow和IDispach
这些虽然都是接口类型但是它们是有区别的,
不过,因为我们在应用程序中使用的COM或OLE对象,都不太可能直接用IUnknow
接口,所以反而没有什么区别了
 
COM对象的基本要求是实现IUnknown接口,
而这里所谓的OLE对象其实是OLE Automation对象的含义,
它要求对象至少实现IDispatch(::IUnknown)接口。
因此,CreateOleObject相当于CreateComObject然后再QueryInterface(IDispatch)。当然,Delphi还做了一步ProgIDToClassID。
至于CreateObject,可以看看COM关于Moniker的知识,
她其实是用字串来创建Moniker再创建对象的常用函数。
 
多人接受答案了。
 
后退
顶部