COM组件的初始化问题

时间:2021-03-23 19:42:37
现在正在学COM的东西,一个组件被创建后如果想要进行初始化的配置,如果在主接口中增加Initialize(),因为我觉得这种初始化操作是经常要改的,比如加几个参数,那按COM的规范接口不能动,又要加一个新接口,那岂不是很麻烦.所以想请教一下,类似这种都是按什么去处理的?

另外还有个问题,如果一个组件要用另一个组件,是不是必须在接口中增加如SetOBJ(IUnknown* pObj)这样的方法,我觉得这样很不美观,扩展性也不强,有没有更规范点的做法

3 个解决方案

#1


不懂,帮你顶

#2


因为我觉得这种初始化操作是经常要改的,比如加几个参数,那按COM的规范接口不能动,又要加一个新接口,那岂不是很麻烦
--------------------------
向下兼容

是不是必须在接口中增加如SetOBJ(IUnknown* pObj)这样的方法,
我觉得这样很不美观,扩展性也不强,有没有更规范点的做法
------------------------
目的是为了把一个组件的指针传递给别的组件。为何说扩展行不强?

#3


比如这个组件需要再调用另一个新组件OBJ,那又得增加一个SetOBJ2(IUnknown* pObj),增加函数又要改接口了.我就是感觉这个接口不能改的规定挺难整的,虽然它带来的好处很多,也是COM的特色之一,但实际做起来必须要考虑很多麻烦的东西

#1


不懂,帮你顶

#2


因为我觉得这种初始化操作是经常要改的,比如加几个参数,那按COM的规范接口不能动,又要加一个新接口,那岂不是很麻烦
--------------------------
向下兼容

是不是必须在接口中增加如SetOBJ(IUnknown* pObj)这样的方法,
我觉得这样很不美观,扩展性也不强,有没有更规范点的做法
------------------------
目的是为了把一个组件的指针传递给别的组件。为何说扩展行不强?

#3


比如这个组件需要再调用另一个新组件OBJ,那又得增加一个SetOBJ2(IUnknown* pObj),增加函数又要改接口了.我就是感觉这个接口不能改的规定挺难整的,虽然它带来的好处很多,也是COM的特色之一,但实际做起来必须要考虑很多麻烦的东西