Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
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
The PROPID_M_LABEL property specifies a label of the message.
Property ID
PROPID_M_LABEL
Type Indicator
VT_LPWSTR
MQPROPVARIANT Field
pwszVal
Property Value
Arbitrary string (the default is none). The maximum length is MQ_MAX_MSG_LABEL_LEN (250 Unicode characters, including the end-of-string character).
Remarks
If the sending application specifies a message label longer than 250 Unicode characters (MQ_MAX_MSG_LABEL_LEN), Message Queuing returns an MQ_ERROR_LABEL_TOO_LONG error to the aStatus array.
To send a label with a message, specify PROPID_M_LABEL in the MQMSGPROPS structure and call MQSendMessage.
To retrieve the label of a message, create a buffer that can hold up to 250 Unicode characters (MQ_MAX_MSG_LABEL_LEN), and specify PROPID_M_LABEL and PROPID_M_LABEL_LEN in the MQMSGPROPS structure. Then call MQReceiveMessage or MQReceiveMessageByLookupId and examine the returned values.
Before using the message label, always check the length property PROPID_M_LABEL_LEN to see if the label was sent with the message. If the returned value of PROPID_M_LABEL_LEN is 0, no label was sent with the message. If the returned value is non-0, PROPID_M_LABEL contains the label of the message.
Equivalent COM Property
With COM components, the equivalent property for setting and retrieving the message label is MSMQMessage.Label.
| For information on | See | 
|---|---|
| Testing to see if a label exists | PROPID_M_LABEL_LEN | 
Example Code
The following code fragments show how PROPID_M_LABEL is specified in arrays that can be used to initialize an MQMSGPROPS structure for setting and retrieving the message label:
To Specify a Message Label
aMsgPropId[i] = PROPID_M_LABEL;                // Property ID  
aMsgPropVar[i].vt = VT_LPWSTR;                 // Type indicator  
aMsgPropVar[i].pwszVal = L"Test Message";      // Label assigned  
i++;  
To Retrieve the Message Label
WCHAR wszLabelBuffer[MQ_MAX_MSG_LABEL_LEN];    // Label buffer  
aMsgPropId[i] = PROPID_M_LABEL_LEN;            // Property ID  
aMsgPropVar[i].vt =VT_UI4;                     // Type indicator  
aMsgPropVar[i].ulVal = MQ_MAX_MSG_LABEL_LEN;   // Label buffer size  
i++;  
  
aMsgPropId[i] = PROPID_M_LABEL;                // Property ID  
aMsgPropVar[i].vt = VT_LPWSTR;                 // Type indicator  
aMsgPropVar[i].pwszVal = wszLabelBuffer;  
i++;  
The following example is included in Using Message Queuing.
| For an example of | See | 
|---|---|
| Retrieving the labels of messages | C/C++ Code Example: Navigating Using Cursors | 
See Also
Message Properties
aStatus
MQMSGPROPS
MQReceiveMessage
MQReceiveMessageByLookupId
MQSendMessage
PROPID_M_LABEL_LEN