The MQCBDs object is defined as a class in CSharp:
My goal is pass this MQCBDs object from CSharp to VC++(CLI).
Thanks
Code:
[Serializable,StructLayout(LayoutKind.Sequential, Pack = 1, CharSet = CharSet.Ansi)]
public class MQCBDs
{
public const string MQCBD_STRUC_ID = "CBD ";
public const int MQCBD_VERSION_1 = 1;
public const int MQCBD_CURRENT_VERSION = 1;
public const int MQCBDO_NONE = 0x00000000;
public const int MQCBDO_START_CALL = 0x00000001;
public const int MQCBDO_STOP_CALL = 0x00000004;
public const int MQCBDO_REGISTER_CALL = 0x00000100;
public const int MQCBDO_DEREGISTER_CALL = 0x00000200;
public const int MQCBDO_FAIL_IF_QUIESCING = 0x00002000;
public const int MQCBT_MESSAGE_CONSUMER = 0x00000001;
public const int MQCBT_EVENT_HANDLER = 0x00000002;
public const int MQCBD_FULL_MSG_LENGTH = -1;
// MQCHAR4 StrucId; /* Structure identifier */
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
public byte[] StrucId;
// MQLONG Version; /* Structure version number */
public int Version;
// MQLONG CallbackType; /* Callback function type */
public int CallbackType;
// MQLONG Options; /* Options controlling message
public int Options;
// consumption */
// MQPTR CallbackArea; /* User data passed to the function */
public byte[] CallbackArea;
// MQPTR CallbackFunction; /* FP: Callback function pointer */
//public mqCallBacks CallbackFunction;
// MQCHAR128 CallbackName; /* Callback name */
// [MarshalAs(UnmanagedType.ByValTStr, SizeConst=128)]
// public string CallbackName;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)]
public byte[] CallbackName;
// MQLONG MaxMsgLength; /* Maximum message length */
public int MaxMsgLength;
public MQCBDs()
{
StrucId = utilities.getBytes(MQCBD_STRUC_ID);
//StrucId = getBytes(MQCBD_STRUC_ID);
Version = MQCBD_VERSION_1;
CallbackType = MQCBT_MESSAGE_CONSUMER;
Options = MQCBDO_NONE;
CallbackArea = null;
//CallbackFunction = null;
CallbackName = new byte[128];
Array.Clear(CallbackName, 0, CallbackName.Length);
MaxMsgLength = MQCBD_FULL_MSG_LENGTH;
}
}
Thanks
Comment