有点绕,请教一下大家,关于连接点的
自己写一个可扩展框架,有点绕,我希望我能说清楚
我开发了一个 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 这样是不是会引起混乱呢?
我想请教大家的是,这两种方法是否都能实现我的要求,哪个更好呢,有没有更顺畅,更好的实现方法呢?