com本质论读书笔记5-withevent背后vb6没有告诉我们的部分

本文探讨了COM接口ISurfboardUser的定义及其在VisualBasic中的应用方式。通过使用dispinterface特性,VisualBasic能够方便地处理来自COM对象的事件回调。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   静下心来又读了几章com本质论,发觉里面我曾经关心的技术,下面摘录如下:
   假设ISurfboardUser 接口被定义为如下所示的dispinterface:
   [uuid(315BC28A-DEA7-11d0-8C5E-0080C73925BA)]
   dispinterface ISurfboardUser {
   methods:
           [id(1)] void OnTiltingForward([in] long nAmount);
           [id(2)] void OnTiltingSideways{[in] long nAmount);
    Visual Basic程序员可以声明如下"能够理解缺省回调类型"的变量:
Dim WithEvents sb as Surfboard
这个变量定义的出现使Visual Basic 程序员可以编写事件控制函数.Visual Basic 事件控制函数只是一些简单的函数或者子过程,其名字为VariableName_EvnetName.例如,为了处理上述sb变量的OnTiltingForward回调,Visual Basic 程序员可以编写以下的代码:
Dim WithEvents sb as Surfboard
Sub sb_OnTiltiingForward(ByVal nAmount as Long)
  MsgBox "The surfboard just tilted forward"
End Sub
Visual Basic 虚拟机实际上将会动态地构造出一个IsurfboardUser 实现,把进来的方法调用映射到适当的用户自定义函数上.
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值