Example code fragment for putting data into a message object

#include <hmq.h>
MQEHSESS   hSess;
MQEINT32   compcode;
MQEINT32   reason;
MQEHFIELDS hFlds, hMsg;
static const MQECHAR Echo[] = "Hello world!";
MQEBYTE          testBool =0x1;
MQEBYTE          testByte =0xab, testBytes[]={ 0x12, 0x34, 0x56 };
MQEINT16         testShort=0xabcd, 
                 testShorts[]={ 0x1234, 0x3456, 0x5678 };
MQEINT32         testInt=0xabcdef12, 
                 testInts[]={ 0x12121212, 0x34343434, 0x56565656 };
struct MQEINT64  testLong={0x12345678, 0x9abcdef0}, 
                 testLongs[]={ {0x12, 0x34}, {0x56,0xab} };
MQEINT32         testData[256];
MQEINT16         i;
     hSess = MQeInitialize("MyAppsName", 
										&compcode, 
										&reason);
     hFlds = MQeFieldsAlloc( hSess, 
												MQE_OBJECT_TYPE_MQE_FIELDS, 
												&compcode, 
												&reason);
     hMsg  = MQeFieldsAlloc( hSess, 
										MQE_OBJECT_TYPE_MQE_MSGOBJ, 
										&compcode, 
										&reason);
 
     /* Put in an ASCII string */
     MQeFieldsPut( hSess, 
							hFlds, 
							"hello", 
							MQE_TYPE_ASCII, 
							(void*)Echo, 
							strlen(Echo), 
                  	&compcode, 
							&reason);
 
     /* Put in an primitive data type */
     MQeFieldsPut( hSess, 
							hFlds, 
							"aBool", 
							MQE_TYPE_BOOLEAN, 
							(void*)&testBool,1, 
                  	&compcode, 
							&reason);
     MQeFieldsPut( hSess, 
							hFlds, 
							"aByte", 
							MQE_TYPE_BYTE, 
							(void*)&testByte,  1, 
                  	&compcode, 
							&reason);
     MQeFieldsPut( hSess, 
							hFlds, "aShort", 
							MQE_TYPE_SHORT, 
							(void*)&testShort, 1, 
                  	&compcode, 
							&reason);
     MQeFieldsPut( hSess, 
							hFlds, 
							"aInt", 
							MQE_TYPE_INT, 
							(void*)&testInt, 1, 
                  	&compcode, 
							&reason);
     MQeFieldsPut( hSess, 
							hFlds, 
							"aLong", 
							MQE_TYPE_LONG, 
							(void*)
							&testLong,  1, 
                  	&compcode, 
							&reason);
 
     /* Put in an array of primitive data type */
     MQeFieldsPut( hSess, 
							hFlds, 
							"aBytes", 
							MQE_TYPE_BYTE , 
							(void*)testBytes, 3, 
                  	&compcode, 
							&reason);
     MQeFieldsPut( hSess, 
							hFlds, 
							"aShorts", 
							MQE_TYPE_SHORT, 
							(void*)testShorts, 3, 
                 		&compcode, 
							&reason);
     MQeFieldsPut( hSess, 
							hFlds, 
							"aInts", 
							MQE_TYPE_INT, 
							(void*)testInts,   3, 
                  	&compcode, 
							&reason);
     MQeFieldsPut( hSess, 
							hFlds, 
							"aLongs", 
							MQE_TYPE_LONG, 
							(void*)testLongs,  2, 
                  	&compcode,
							&reason);
     MQeFieldsPut( hSess, 
							hFlds, 
							"testData", 
							MQE_TYPE_INT, 
							(void*)testData, 256, 
                  	&compcode, 
							&reason);
 
     /* Put the fields object into a message object. */
     MQeFieldsPut( hSess, 
							hMsg, 
							"aFldsObj", 
							MQE_TYPE_FIELD, 
							(void*)&hFlds, 1, 
                  	&compcode, 
							&reason);
 
     MQeFieldsFree(hSess, 
							hMsg, 
							&compcode, 
							&reason);
     MQeTerminate (hSess, 
							&compcode, 
							&reason);


© IBM Corporation 2002. All Rights Reserved