有点绕,请教一下大家,关于连接点的

hbs_biscuit CSDN会员 hbs_biscuit 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
自己写一个可扩展框架,有点绕,我希望我能说清楚

我开发了一个 ATL exe程序 A.EXE 提供 interfaceA 接口和 interfaceAEVENT 连接点
同时我 写了一个 ATL dll 程序 b.dll 对最终用户提供 interfaceB 接口和 interfaceBEvent 事件连接点


现在我的 b.dll 中要调用 A.EVE 的接口以及接收事件。

所以我在b.dll工程中引入了 A.EXE 的 idl编译出来的两个文件。通过 CoCreateInstance 可以创建 A.EXE 的对象,并调用接口方法,

但是 我如何在B.DLL 中接收a.exe公开的 连接点事件呢?

1。 我想仿照 MFC 实现连接点的机制, 新建一个类 然后继承某个基类,在MFC 中需要继承 CCmdTargate, 但是我不知道在ATL 中继承哪个类,或者类模板。

2。 在B.DLL 工程中写一个IDL 在IDL 中实现 interfaceAEVENT 的所有方法,然后使用atladvise 挂接,这样的话是不是就将这个接口完全暴露了呢 ? 也就是说 如果我在 OLEVIEW 中看的话,即能看到B.DLL 暴露的interfaceB interfaceBEvent ,又能看到我为了接收A.EXE 而暴露的interfaceAEVENT 这样是不是会引起混乱呢?

我想请教大家的是,这两种方法是否都能实现我的要求,哪个更好呢,有没有更顺畅,更好的实现方法呢?

...全文

相关推荐

评论 9
收藏 已收藏
分享
返回顶部
hbs_biscuit CSDN会员
ATL 3,248 成员 48,530 内容