Sending messages consists of opening a queue with send access, creating the message, calling the Send method, and then closing the queue. The following procedure and example code show how this is done when sending a message whose body contains a number.
Dim qinfo As New MSMQQueueInfo
Dim qSend As MSMQQueue
Dim qReceive As MSMQQueue
Dim mSend As New MSMQMessage
Dim mReceive As MSMQMessage
qinfo.PathName = ".\SendTest"
qinfo.Label = "Send Message Test"
On Error Resume Next 'Ignore if queue already exists.
qinfo.Create
On Error GoTo 0
Set qSend = qinfo.Open(MQ_SEND_ACCESS, MQ_DENY_NONE)
mSend.Label = "Number Message"
mSend.Body = CInt(100)
mSend.Send qSend
qSend.Close
Set qReceive = qinfo.Open(MQ_RECEIVE_ACCESS, MQ_DENY_NONE)
Set mReceive = qReceive.Receive
qReceive.Close
If TypeName(mReceive.Body) = "Integer" Then
MsgBox "The retrieved message body is a Integer type."
Else
MsgBox "The retrieved message body is not a Integer type."
End If
The following example creates a destination queue, sends a message whose body contains an integer, retrieves the message, and tests the retrieved message body to see if it is an Integer type.
Option Explicit
Dim qinfo As New MSMQQueueInfo
Dim qSend As MSMQQueue
Dim qReceive As MSMQQueue
Dim mSend As New MSMQMessage
Dim mReceive As MSMQMessage
Private Sub Form_Click()
'*************************************************************
' Create a destination queue and open it with SEND access.
'*************************************************************
qinfo.PathName = ".\SendTest"
qinfo.Label = "Send Message Test"
On Error Resume Next 'Ignore if queue already exists.
qinfo.Create
On Error GoTo 0
Set qSend = qinfo.Open(MQ_SEND_ACCESS, MQ_DENY_NONE)
'*************************************************************
' Send message with Integer body type.
'*************************************************************
mSend.Label = "Integer Message"
mSend.Body = CInt(100)
mSend.Send qSend
qSend.Close
'*************************************************************
' Open the destination queue with Receive access and
' retrieve the message. The retrieved message body is tested
' to verify it is an Integer type.
'*************************************************************
Set qReceive = qinfo.Open(MQ_RECEIVE_ACCESS, MQ_DENY_NONE)
Set mReceive = qReceive.Receive
qReceive.Close
If TypeName(mReceive.Body) = "Integer" Then
MsgBox "The retrieved message body is a Integer type."
Else
MsgBox "The retrieved message body is not an Integer type."
End If
End Sub