The following example illustrates using Data Queues APIs.
// Sample Data Queues application
#ifdef UNICODE
#define _UNICODE
#endif
#include <windows.h>
// Include the necessary DQ Classes
#include <stdlib.h>
#include <iostream.h>
#include "cwbdq.h"
/**********************************************************************/
void main()
{
cwbDQ_Attr queueAttributes;
cwbDQ_QueueHandle queueHandle;
cwbDQ_Data queueData;
// Create an attribute object
if ( (queueAttributes = cwbDQ_CreateAttr()) == 0 )
return;
// Set the maximum record length to 100
if ( cwbDQ_SetMaxRecLen(queueAttributes,
100) != 0 )
return;
// Set the order to First-In-First-Out
if (cwbDQ_SetOrder(queueAttributes, CWBDQ_SEQ_FIFO) != 0 )
return;
// Create the data queue DTAQ in library QGPL on system SYS1
if ( cwbDQ_Create(_TEXT("DTAQ"),
_TEXT("QGPL"),
_TEXT("SYSNAMEXXX"),
queueAttributes,
NULL) != 0 )
return;
// Delete the attributes
if ( cwbDQ_DeleteAttr( queueAttributes ) != 0 )
return;
// Open the data queue
if ( cwbDQ_Open(_TEXT("DTAQ"),
_TEXT("QGPL"),
_TEXT("SYSNAMEXXX"),
&queueHandle,
NULL) != 0 )
return;
// Create a data object
if ( (queueData = cwbDQ_CreateData()) == 0 )
return;
// Set the data length and the data
if ( cwbDQ_SetData(queueData, (unsigned char*)"Test Data!", 10) != 0 )
return;
// Write the data to the data queue
if ( cwbDQ_Write(queueHandle, queueData, CWB_TRUE, NULL) != 0 )
return;
// Delete the data object
if ( cwbDQ_DeleteData(queueData) != 0 )
return;
// Close the data queue
if ( cwbDQ_Close(queueHandle) != 0 )
return;
}