PROPID_M_COMPOUND_MESSAGE (Compact 2013)

3/26/2014

This property provides the entire contents of an HTTP message, including the SOAP envelope and the SOAP attachments associated with it.

  • Property ID
    PROPID_M_COMPOUND_MESSAGE
  • Type Indicator
    VT_VECTOR | VT_UI1
  • MQPROPVARIANT Field
    caub
  • Property Values
    An array of bytes that represents the contents of an HTTP message, including the SOAP envelope and the SOAP attachments (MIME binary attachments) associated with it.

Remarks

The PROPID_M_COMPOUND_MESSAGE property is a read-only property used only when an application retrieves HTTP messages.

When an HTTP message is sent, the sending queue manager attaches SOAP attachments, along with the SOAP envelope, to the message.

This property can contain any number of SOAP attachments.

To retrieve individual elements, the receiving application must parse the returned data and process the envelope and attachments. Any XML parser can be used.

To retrieve the SOAP envelope, use the PROPID_M_SOAP_ENVELOPE property.

To retrieve the message body, which is sent as an attachment in an HTTP message, use the PROPID_M_BODY property.

Equivalent COM Property

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

Examples

The following code example shows how PROPID_M_COMPOUND_MESSAGE is specified in the MQMSGPROPS structure for retrieving the contents of an HTTP message, including the SOAP envelope and SOAP attachments associated with it. The size of the message must be retrieved with the attachments.

Important

For readability, the following code example does not contain security checking or error handling. Do not use the following code in a production environment.

MsgProps.aPropID[i] = PROPID_M_COMPOUND_MESSAGE_SIZE;
MsgProps.aPropVar[i].vt = VT_UI4;
i++;
DWORD dwMsgBufferSize = 4096;
UCHAR *pucMsgBuffer = (UCHAR *)malloc(dwMsgBufferSize);
if (pucMsgBuffer == NULL) {
    // Error handling code (not included for clarity)
}
MsgProps.aPropID[i] = PROPID_M_COMPOUND_MESSAGE;
MsgProps.aPropVar[i].vt = VT_VECTOR|VT_UI1;
MsgProps.aPropVar[i].caub.pElems = (UCHAR*)pucMsgBuffer;
MsgProps.aPropVar[i].caub.cElems = dwMsgBufferSize;
i++;

See Also

Reference

MSMQ Properties
MQMSGPROPS