远程自动化连接:ActiveX部件,是一种标准的客户机/服务器结构,利用Windows平台 的COM模型,VB已能方便地将这种结构扩展到整个网络的范围。所以,我们的消息广播设 计,在实现了进程间的消息传递之后,进而实现网络上的消息传递,也成为可能。 通过上面的几点介绍,这一方式的设计思想也就比较 清楚了,在具体设计时,我通过四个模块之间的相互协作,完成了消息的发送、广播及接收,并 将这四个模块封装在一个ActiveXEXE部件之中。下面就是这三个类模块的简单介绍及源代 码: 类模块之一:Msg.cls 在该模块中,定义了消息数据结构VbMsg类,它是消息 传递中的载体。这里只是一个简单的例子,如果想实现更多的功能,如建立两点间的数据通道, 而不是单纯的广播消息,则可能需要对该结构进行一些扩充。 VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
END
Attribute VB_Name = "VbMsg"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = True
Option Explicit
' ---
' 说 明:
'
' 消 息 类: 定 义 全 局 的 消 息 结 构
' ---
Public iType As Long ' 消 息 类 型 编 号
Public iName As String ' 消 息 名
Public iSource As String ' 消 息 源 说 明
Public iDescription As String ' 消 息 说 明
Dim iT As Date ' 消 息 发 生 时 间
' 返 回 日 期 型 时 间
Public Property Get iTime() As Date
iTime = iT
End Property
' 返 回 字 符 型 时 间
Public Property Get iTimeStr() As String
iTimeStr = Format(iT, "yyyy.mm.dd hh:mm:ss")
End Property
' 在 对 象 被 建 立 时, 设 置 消 息 发 生 时 间
Private Sub Class_Initialize()
iT = Now()
End Sub
类模块之二:MsgCli.cls 本模块是对客户接收端MsgClient类的定义,这相当 于一个消息接收器。在这个类中定义的一个RecMsg事件,当接收器收到消息时(过程SetMsg被 调用),就产生这一事件。接收器的建立者就截获这一事件,并处理消息。为了避免接收不必要 的消息,声明了minMsg、maxMsg两个变量,以便对VbMsg中的iType属性进行过滤。 VERSION 1.0 CLASS