当前页面位置: » 丰搜网 » 文档中心 » 详细内容
“回调”(callbacks)的实现
所谓回调,就是你自己定义一个函数,并告诉windows何时为何调用。你可以写一个有特定数量和类型参数的函数,然后告诉windows何时调用,并传递给它所需的参数.windows就会调用你定义的函数,处理参数,并给你返回值。
回调的一个典型应用是从windows获得连续的数据流。这里是一个需要回调的函数的声明:
| declare function enumwindows lib "user32"byval lpenumfunc as long, byval lparam as long) as long |
第一个参数是你的回调函数的地址,第二个参数是你想传递的的任意数值.该值将被传递到你的函数,于是你就知道了它要调用什么。
vb 5.0已经提供了一个很有用的操作符 addressof,可以得到一个函数的地址.当你调用一个函数时它只能用在参数的前面,下面这种用法是错误的并且会导致出错:
| funcp = addressof myfunction |
因此你必须这样调用enumwindows函数:
| success& = enumwindows(addressof cbfunc, 58&) |
你必须也要自己写回调函数.问题是有很多不同类别的回调并且有各种各样的参数,有关这些参数的描述可以在sdk帮助或ms sdk文档中找到.这里是一个回调的声明:
| function cbfunc (byval hwnd, byval lparam) as long |