我的动态库中有N个组件类,线程模式是BOTH,并且带FTM(自由线程聚集),因此,每个对象都会聚合一个IID_IMarshal接口,代码如下: ...
COM_INTERFACE_ENTRY(IGisViewEx)
COM_INTERFACE_ENTRY(IDispatch)
COM_INTERFACE_ENTRY(ISupportErrorInfo)
COM_INTERFACE_ENTRY_AGGREGATE(IID_IMarshal, m_spUnkMarshaler.p)
...但是,有个别的组件类为了重用其它类的方法,还聚合了那个要重用的类,如:我要重用IA接口,因此,除了上面的聚合外,还另加一个对聚合IA的处理.如下: ...
COM_INTERFACE_ENTRY(IGisViewEx)
COM_INTERFACE_ENTRY(IDispatch)
COM_INTERFACE_ENTRY(ISupportErrorInfo)
COM_INTERFACE_ENTRY_AGGREGATE(IID_IMarshal, m_spUnkMarshaler.p)
COM_INTERFACE_ENTRY_AGGREGATE(IID_IA, m_spA.p)
... 组件在COM+环境中配置成功,但,就是这种聚合了两次的组件创建不成功..... 而我在非COM+环境下(原始的REGSVR32.EXE注册组件的方法),就不存在这个问题了.
高手帮帮我啊.
高分送!
COM_INTERFACE_ENTRY(IGisViewEx)
COM_INTERFACE_ENTRY(IDispatch)
COM_INTERFACE_ENTRY(ISupportErrorInfo)
COM_INTERFACE_ENTRY_AGGREGATE(IID_IMarshal, m_spUnkMarshaler.p)
...但是,有个别的组件类为了重用其它类的方法,还聚合了那个要重用的类,如:我要重用IA接口,因此,除了上面的聚合外,还另加一个对聚合IA的处理.如下: ...
COM_INTERFACE_ENTRY(IGisViewEx)
COM_INTERFACE_ENTRY(IDispatch)
COM_INTERFACE_ENTRY(ISupportErrorInfo)
COM_INTERFACE_ENTRY_AGGREGATE(IID_IMarshal, m_spUnkMarshaler.p)
COM_INTERFACE_ENTRY_AGGREGATE(IID_IA, m_spA.p)
... 组件在COM+环境中配置成功,但,就是这种聚合了两次的组件创建不成功..... 而我在非COM+环境下(原始的REGSVR32.EXE注册组件的方法),就不存在这个问题了.
高手帮帮我啊.
高分送!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货