张志松
记录工作点滴,留下人生轨迹。(zezese@163.com)
posts - 68,  comments - 11,  trackbacks - 0

Option Explicit

'接收消息的队列,要求模块级变量
Dim m_RevQueue As MSMQQueue

'接收事件接口
Dim WithEvents m_RevEvent As MSMQEvent

Private Sub Form_Load()

    '创建消息队列
    Dim QueueInfo As New MSMQQueueInfo
    QueueInfo.PathName = ".\Private$\MyQueue"
    QueueInfo.Label = "MyQueue"
    'QueueInfo.Delete
    QueueInfo.Create
   
    '设置接收事件接口
    Set m_RevEvent = New MSMQEvent
    Set m_RevQueue = QueueInfo.Open(MQACCESS.MQ_RECEIVE_ACCESS, MQSHARE.MQ_DENY_NONE) '接收权限
    m_RevQueue.EnableNotification m_RevEvent

End Sub

Private Sub cmdSend_Click()
   
    Dim QueueInfo As New MSMQQueueInfo
    QueueInfo.PathName = ".\Private$\MyQueue"
    QueueInfo.Label = "MyQueue"
   
    '打开队列,发送消息
    Dim MsgQueue As MSMQQueue
    Set MsgQueue = QueueInfo.Open(MQACCESS.MQ_SEND_ACCESS, MQSHARE.MQ_DENY_NONE) '发送权限
   
    If (MsgQueue.IsOpen()) Then
        Dim Msg As New MSMQMessage
        Msg.Label = "MSMQ消息"
        Msg.Body = "可以是任何变量,只要支持Idispatch接口和持续化接口!"
        Msg.Send MsgQueue
        MsgQueue.Close
     End If

End Sub


Private Sub m_RevEvent_Arrived(ByVal Queue As Object, ByVal Cursor As Long)
  '消息到来
  Dim theQueue As MSMQQueue
  Set theQueue = Queue
 
  Dim Msg As MSMQMessage
  Set Msg = theQueue.Receive() '得到消息
 
  theQueue.EnableNotification m_RevEvent '接收下一个消息
 
  MsgBox Msg.Body, vbInformation, Msg.Label
 
End Sub

posted on 2011-01-25 13:33 张志松 阅读(1764) 评论(0)  编辑 收藏 引用 所属分类: VB/VBS

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理



<2011年1月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
303112345

常用链接

留言簿(2)

随笔分类

随笔档案

文章分类

文章档案

转载

搜索

  •  

最新评论

阅读排行榜

评论排行榜