⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 是用atl开发支持事件的组件.txt

📁 C&C++论坛精华
💻 TXT
字号:
作者:rick1126
email: rickzhang@sina.com
日期:7/7/2001 6:31:58 PM
方法之一:

    使用传统的回调函数方式, 区别在于前者需要客户端传递一个实现函数的指针, 后者则需要传递一个服务端公开的回调接口. 

    限制条件:
    1. 使用前绑定
    2. 虽然函数实现在客户端, 不过服务端除了在IDL里面声明方法, 也需要提供一个空方法实现, 虽然不会用到

    客户端:
    1. 需要实现公开的回调接口的方法
    2. 使用Advise/Unadvise将实现的回调函数接口传递给服务端, 和撤销接口
    3. 针对VB客户端, 需要使用 implement 声明回调接口

方法二:

    使用连接点技术. 因为需要支持双接口, 而且事件接口必须是Dispatch 接口, 因此可以使用后绑定, 自然 IDispatch 的基本方法需要在客户端实现.

    例如:
dispinterface _IMathEvents
{
properties:
methods:
[id(1),helpstring("method ComputationComplete")] HRESULT ComputationComplete([in]long lResult);
};

     客户端:
     1. 需要使用ATLAdvise/ATLUnadvise进行维护

相关的例子见后面两个帖子, 怕字数问题.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -