Partilhar via


PROPID_M_LABEL

 

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