描述:
用 VC++6.0 ATL开发一个COM组件,打算做若干个接口,IAA,IBB,ICC等,现在想把其他几个接口IBB,ICC做为IAA的几个属性,要能在 InterDev或Delphi这样的智能编辑器自动展开,象这样:
IAA.IBB.Property1,怎么做?要用到什么?
这个问题一年前就提过,没有解决,看书都不知道要看哪里,请高手帮忙!
解决方案1:
不能智能识别是IDE的问题,结构属性只是一种用于VB和脚本语言的模拟,和类属性是不一样的,同意ColderRain的方法。
解决方案2: 该COM对象实现ISpecifyPropertyPages
并同时实现几个实现IPropertyPage的属性对象
由属性对象负责调用IBB,ICC等
Dispath接口
解决方案4:智能识别是没有(我也不知道是什么原因),但是以IAA.IBB.Property1这种形式调用不会出错。
解决方案5: 用双接口
除了IDispatch,自己定义自定义接口
关注一下
解决方案7:把他们都实现为双接口,然后IBB是IAA的一个属性,实现上可以在组件中内嵌一个组件(它实现了IBB),或者外部组件直接继承IBB也行,不过IBB不能出现在接口映射表中,就像ICONNECTIONPOINTCONTCONTAINER和ICONNECTIONPOINT的实现一样.