Visual Basic Code Example: Sending Messages Using Multiple-Element Format Names
Applies To: Windows 10, Windows 7, Windows 8, Windows 8.1, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2, Windows Server Technical Preview, Windows Vista
This example provides a private Sub procedure that sends a message to three destination queues based on the computer and queue names provided by the caller.
This procedure creates a direct format name for each queue, and then concatenates those format names to create a single multiple-element format name.
For information on other ways to send messages to multiple destinations, see Multiple-Destination Messaging.
To send a message using multiple-element format names
Declare the objects needed to send the message. This procedure declares the following objects:
Generate a multiple-element format name. This example uses direct format names to reference the three destination queues.
Set the MSMQDestination.FormatName property.
Set message properties. This procedure sets the MSMQMessage.Label property of the message to "Test Message".
Call MSMQMessage.Send to send a copy of the message to each destination queue referenced by the format name.
Note
When using an MSMQDestination object, Message Queuing implicitly opens the destination queues with send access.
Code Example
The following code example requires MSMQ 3.0.
Sub SendMessageMQF( _
strComputerName1 As String, _
strQueueName1 As String, _
strComputerName2 As String, _
strQueueName2 As String, _
strComputerName3 As String, _
strQueueName3 As String _
)
Dim strFormatName1 As String
Dim strFormatName2 As String
Dim strFormatName3 As String
Dim strMultipleElement As String
Dim dest As New MSMQDestination
Dim msg As New MSMQMessage
' Create multiple-element format name.
strFormatName1 = "DIRECT=OS:" & strComputerName1 & "\" & strQueueName1
strFormatName2 = "DIRECT=OS:" & strComputerName2 & "\" & strQueueName2
strFormatName3 = "DIRECT=OS:" & strComputerName3 & "\" & strQueueName3
strMultipleElement = strFormatName1 & "," & strFormatName2 & "," & strFormatName3
'Set format name of MSMQDestination object.
On Error GoTo ErrorHandler
dest.FormatName = strMultipleElement
MsgBox "Format name is: " + dest.FormatName
' Set the message label.
msg.Label = "Test Message"
' Send the message and close the MSMQDestination object.
msg.Send DestinationQueue:=dest
dest.Close
Exit Sub
ErrorHandler:
MsgBox "Error " + Hex(Err.Number) + " was returned." _
+ Chr(13) + Err.Description
End Sub