Updated: July 19, 2016

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

(Read-only, introduced in MSMQ 3.0.) The PROPID_M_DEST_FORMAT_NAME property indicates the destination queues to which the message was sent.

Property ID


Type Indicator




String that contains a public, private, direct, distribution list, or multiple-element format name.

The PROPID_M_DEST_FORMAT_NAME property is set by the queue manager on the source computer. The PROPID_M_DEST_FORMAT_NAME and PROPID_M_DEST_QUEUE properties are used together to specify all the queues to which the message was sent and the specific queue to which this copy of the message was sent.

When acknowledgment message are returned by Message Queuing or a connector application, the PROPID_M_RESP_FORMAT_NAME property of the acknowledgment message is set to the value of the PROPID_M_DEST_FORMAT_NAME property of the original message.

When returning response messages, the receiving application can return the destination of the original message by setting the PROPID_M_RESP_FORMAT_NAME property of the response message to the value of PROPID_M_DEST_FORMAT_NAME or PROPID_M_DEST_QUEUE.

To retrieve the destination queue set, include the following two properties in the MQMSGPROPS structure, and then call MQReceiveMessage or MQReceiveMessageByLookupId and examine the values returned for the following properties.

If MQReceiveMessage or MQReceiveMessageByLookupId fails, returning an MQ_ERROR_FORMATNAME_BUFFER_TOO_SMALL error, use the returned value of PROPID_M_DEST_FORMAT_NAME_LEN to reallocate the format name buffer, and call the applicable function again.

Equivalent COM Property

With COM components, the equivalent property is MSMQMessage.Destination.

The following code fragment shows how PROPID_M_DEST_FORMAT_NAME and PROPID_M_DEST_FORMAT_NAME_LEN are specified in arrays that can be used to initialize an MQMSGPROPS structure for retrieving the destination queue set.

ULONG ulBufferLength = 256;  
WCHAR * wszDestBuffer = NULL;  
wszDestBuffer = (WCHAR*)malloc(ulBufferLength*sizeof(WCHAR));  
if (wszDestBuffer == NULL)  
memset(wszDestBuffer, 0, ulBufferLength*sizeof(WCHAR));  
aMsgPropId[i] = PROPID_M_DEST_FORMAT_NAME;      // Property ID  
aMsgPropVar[i].vt = VT_LPWSTR;                  // Type indicator  
aMsgPropVar[i].pwszVal = wszDestBuffer;         // Application-defined buffer  
aMsgPropId[i] = PROPID_M_DEST_FORMAT_NAME_LEN;  // Property ID  
aMsgPropVar[i].vt = VT_UI4;                     // Type indicator  
aMsgPropVar[i].ulVal = ulBufferLength;  
// Reallocate memory for the destination format name buffer if necessary.  
wszDestBuffer = (WCHAR*)realloc(wszDestBuffer, aMsgPropVar[1].ulVal*sizeof(WCHAR));  
if (wszDestBuffer == NULL)  
memset(wszDestBuffer, 0, aMsgPropVar[1].ulVal*sizeof(WCHAR));  
aMsgPropVar[0].pwszVal = wszDestBuffer;        // Pointer to the new buffer  

The following example is included in Using Message Queuing.

For an example ofSee
Retrieving the destination format name and reallocating memory for the destination format name buffer when creating a response messageC/C++ Code Example: Returning Response Messages

Message Properties