我在Delphi6中安装了Netmeeting控件,但只发现3个接口,而SDK上的接口远不止3个,这是怎么回事?(200分)

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

lsj

Unregistered / Unconfirmed
GUEST, unregistred user!
我如何才能使用其他接口呢?
 
是用delphi的话,就没办法了,除非你自己把sdk的转换为c的格式,或者找找别人有没有做这个工作
使用bcb的话,可以直接使用sdk,这就是bcb的好处了
 
这是SDK上的原话"This section defines the Windows&reg
NetMeeting&reg
3 COM API.
The interfaces and functions are available to use with NetMeeting client
applications developed in C/C++ or other programming languages that support COM."
字面上的意思是任何支持COM的语言都能使用,但为何delphi不行?
而且为何将SDK的转换为c的格式delphi就能用?
还烦请皮大侠指点迷津

 
不是转换为c就能用,而是他本来就是用c搞的吧,delphi不能直接用啊
而bcb就是c++,所以就能用啊
 
那为何SDK上说任何支持COM的语言都能用呢?——我查阅的是COM API部分
按照COM的定义,以COM标准创建的对象应能为多种语言使用才对啊
 
当然是都能用啊,不能直接用嘛
 
我就是想知道在什么情况下能用?在这种情况下如何用?
写COM现在是没这种水平,但起码得会用现成的,你说对吧?
 
不对啊,我装C++builder后,也是只找到三个接口,和Delphi中一样,我哪里搞错了?
 
你是怎么找到3个接口的?com的interface是在头文件里面直接使用的,可以用QueryInterface得到接口
import出来的那个是自动化对象
 
你说得对,我把安装上去的ActievX控件当作真正的COM对象了。我找的其实是类型库文件,
是封装ActtievX控件的object pascal外套。
现在问题清楚了,那就是我怎样才能真正使用COM对象呢?
我先把我要做的说说清楚。我是要在应用程序中嵌入NetMeeting,安装NetMeeting控件后,
我发现程序对Netmeeting的控制能力很差。为了进一步控制NetMeeting,我下载了NetMeeting
SDK,经过查找,在COM API部分找到了我要的接口,但现在我应该如何做才能利用这些接口呢?
能否给出实现思路和大体流程?
现在我的脑子是一团糨糊,殛待理清思路,还请皮大侠和各位高手指点迷津。
最好能用Delphi说明,实在不行的话用BCB也行。
 
先创建activex对象,然后QueryInterface得到你要的interface
至于怎么用,sdk里面有头文件,直接用就可以了,当然是指bcb
 
to pipi:
非常不好意思,我正在学BCB,还有很多不懂的地方,能否给个详细一点的例子?
谢谢!
 
我看了一下SDK中的头文件(.h后缀),只发现一些结构体,也就是一些数据类型,而
接口是在几个.IDL后缀的文件中,而安装在delphi和BCB中的控件只是其中的一个(不
知我有没有理解错,因为我查的delphi和BCB类型库和这个IDL文件是一致的),这是怎么
回事?我越来越迷糊了...
 
转接include那个h文件,
queryinterface得到的接口,强制指定为对应的类的指针就可以用了
 
我是这么想的:装进delphi的是ActievX控件,一种实现IDispath接口的COM对象,delphi的
类型库记录(注册)的就是这种自动化控制器;而SDK上的其他接口是继承自IUnknown接口的,
并未实现IDispath接口,也就是说delphi根本就不知道有这些对象的存在,甚至可以这么说
这些对象根本不是自动化对象,因此用delphi编写自动化控制器的方法是不能使用这些接口的。
我这样理解对吗?
按这种思路只要我们自己在类型库中加入所需接口的定义(以IUnknown方式),然后在实现代码
中使用QueryInterfaced,那么不就能使delphi找到我们要的接口了吗?
这些都只是我的猜想,我试图实现时却是未成功过,pipi.你认为这样能行吗?有没有兴趣一起
试试看?
期待pipi.和大家的答复……

 
你可以把你得到的对象执行QueryInterface
比如说你想使用 Ixxx 这个接口
你可以看到你的 h 文件是定义了 IID_Ixxx 这个guid的
你定义
Ixxx* intf;
obj.QueryInterface(IID_Ixxx,(void**)&intf)
然后就可以使用 intf 了
 
其实就我个人的感觉Delphi对ActiveX的支持并不是很,导入有时有问题,更别提写ActiveX了,
还不能写类库.也找不到相关的书,真苦啊.
 
对ActiveX的支持,BCB比DELPHI强.
 
to proman:
delphi不能写类库??你指的是不是C++的标准类库那种形式和程度的类库啊?

呵呵,我正是想看看delphi在这方面能做到什么地步,看看到底是我自己不行,还是delphi不行
怀疑之,深思之,求证之……
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部