我初学com,有些问题对大家来说可能很简单,可是我不懂现在急于解决如下5个问题1、我知道某一个COM文件,如何获得其CLSID(我并不知道这个COM叫什么)
2、我怎么枚举一个com组件里的所有接口?(即我知道一个组件的CLSID,如何枚举获得其内部的所有interface)
3、我知道某个组件,也知道其中的"IAbcde"这个接口,如何在CoCreateInstance里使用?组件的CLSID我是用CLSIDFromString获得的,但是IAbcde的IID我没办法用IIDFromString获得。(请告诉我除了用#import外的方法,也就是说我要动态获得)
4、我如何象OLEView那样,枚举获得某个接口中的所有属性、方法、事件
5、我如何象OLEView那样,枚举获得某个接口中的所有属性、方法、事件的详细参数和返回值
我不知道这些问题是不是过份,大家帮我一起up一样,如果有知道的,帮忙指条路谢谢一个问题30分,一共5个问题150分,另外50分给up的人分不够可以再加,我现在只能出200分
2、我怎么枚举一个com组件里的所有接口?(即我知道一个组件的CLSID,如何枚举获得其内部的所有interface)
3、我知道某个组件,也知道其中的"IAbcde"这个接口,如何在CoCreateInstance里使用?组件的CLSID我是用CLSIDFromString获得的,但是IAbcde的IID我没办法用IIDFromString获得。(请告诉我除了用#import外的方法,也就是说我要动态获得)
4、我如何象OLEView那样,枚举获得某个接口中的所有属性、方法、事件
5、我如何象OLEView那样,枚举获得某个接口中的所有属性、方法、事件的详细参数和返回值
我不知道这些问题是不是过份,大家帮我一起up一样,如果有知道的,帮忙指条路谢谢一个问题30分,一共5个问题150分,另外50分给up的人分不够可以再加,我现在只能出200分
这是.net下的用法,应该可以套用,未经验证
你要得所有东西都应该可以读typelib得到GOOD LUCK
1.将DLL注册,根据文件名字到注册表搜索,或在组件服务,DCOM,属性拽可以CLSID等
2.枚举所有接口?
(1)可以通过OLE VIEW看
(2)如果有.h可以看到,或导入.tlb都可以看到
3.(1)创建进程内组件,本机进程外组件 CoCreateInstance(.. dwClsContext..)
这里dwClsContext要做标志,可参见MSDN
(2)如果创建远程组件,使用CoCreateInstanceEx
唯一区别COSERVERINFO * pServerInfo 涉及到一些安全信息 获得接口的IID,可以使用__uuidof()
4.仅仅枚举一个组件的接口,属性,事件,也很容易
把BEGIN_COM_MAP,BEGIN_SINK_MAP......里面的数组打印出来就可以了
5. 如果你写出来了OLEView,我不仅给1000分,还会花钱买,用来学习