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++;