Windows Dev Center

Expand Minimize


The PROPID_M_EXTENSION_LEN property specifies the length of the information in the PROPID_M_EXTENSION property.

Property ID


Type Indicator




Property Value

The size (in bytes) of the extension information specified by PROPID_M_EXTENSION.


PROPID_M_EXTENSION_LEN is used only by the receiving application. It is used whenever the receiving application specifies PROPID_M_EXTENSION in the MQMSGPROPS structure.

To retrieve extension information, set PROPID_M_EXTENSION and PROPID_M_EXTENSION_LEN in the MQMSGPROPS structure. Then call MQReceiveMessage or MQReceiveMessageByLookupId and examine the returned values. When retrieving this property, the type indicator can be set to VT_UI4 or VT_NULL. If you set the type indicator to VT_NULL, Message Queuing automatically changes the type indicator to VT_UI4 during the function call.

When the function call succeeds, first test the returned value of PROPID_M_EXTENSION_LEN to see if any extension information exists. A returned value of 0 indicates that no information was sent by the sending application. A non-0 returned value indicates the extension information was returned by PROPID_M_EXTENSION.

If MQReceiveMessage or MQReceiveMessageByLookupId fails, returning an MQ_ERROR_BUFFER_OVERFLOW error, use the returned value of PROPID_M_EXTENSION_LEN to reallocate the extension information buffer and call the applicable function again.

Equivalent COM Property

This property is not needed when you are using COM components.

Example Code

The following code fragment shows how PROPID_M_EXTENSION_LEN and PROPID_M_EXTENSION are specified in arrays that can be used to initialize an MQMSGPROPS structure for retrieving extended information.

ULONG ulExtInfoBufferSize = 1024;
UCHAR * pucExtInfoBuffer = NULL;
pucExtInfoBuffer = (UCHAR*)malloc(ulExtInfoBufferSize);
if (pucExtInfoBuffer == NULL)
memset(pucExtInfoBuffer, 0, ulExtInfoBufferSize);
aMsgPropId[i] = PROPID_M_EXTENSION_LEN;     // Property ID
aMsgPropVar[i].vt = VT_NULL;                // Type indicator

aMsgPropId[i] = PROPID_M_EXTENSION;         // Property ID
aMsgPropVar[i].vt = VT_VECTOR | VT_UI1;     // Type indicator
aMsgPropVar[i].caub.pElems = (UCHAR*)pucExtInfoBuffer;
aMsgPropVar[i].caub.cElems = ulExtInfoBufferSize;

See Also

© 2015 Microsoft