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 Currency type.
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 = "Currency Message"
mSend.Body = CCur(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) = "Currency" Then
MsgBox "The retrieved message body is a Currency type."
Else
MsgBox "The retrieved message body is not a Currency type."
End If
The following example creates a destination queue, sends a message whose body contains a Currency type, retrieves the message, and tests the retrieved message body to see if it is a Currency 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 Currency body type.
'*************************************************************
mSend.Label = "Currency Message"
mSend.Body = CCur(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 a Currency type.
'*************************************************************
Set qReceive = qinfo.Open(MQ_RECEIVE_ACCESS, MQ_DENY_NONE)
Set mReceive = qReceive.Receive
qReceive.Close
If TypeName(mReceive.Body) = "Currency" Then
MsgBox "The retrieved message body is a Currency type."
Else
MsgBox "The retrieved message body is not a Currency type."
End If
End Sub