public void PutReportMessage(MQMessage message, MQPutMessageOptions putMessageOptions) { uint method = 0x22d; this.TrEntry(method, new object[] { message, putMessageOptions }); int compCode = 0; int reason = 0; try { if (message == null) { base.throwNewMQException(2, 0x7ea); } if (putMessageOptions == null) { base.throwNewMQException(2, 0x87d); } MQMessage newMsg = new MQMessage(); if ((putMessageOptions.Options & 0x800000) != 0) { newMsg = this.CopyMDFromOldMsgIntoReportMsg(message, newMsg, putMessageOptions.Options); putMessageOptions.Options &= -8388609; } IEnumerator propertyNames = message.GetPropertyNames("%"); MQPropertyDescriptor pd = new MQPropertyDescriptor(); while (propertyNames.MoveNext()) { string name = propertyNames.Current.ToString(); object objectProperty = message.GetObjectProperty(name, pd); if (this.ValidToCopy(pd.CopyOptions, 0x10)) { newMsg.SetObjectProperty(name, pd, objectProperty); } } base.Put(newMsg, putMessageOptions); } catch (MQException exception) { compCode = exception.CompCode; reason = exception.Reason; throw exception; } finally { base.unsafe_compCode = compCode; base.unsafe_reason = reason; base.TrExit(method); } }