The content of the structures must be decoded by starting at the beginning of the received byte array. Use the size information contained in the various items to advance through the message until all data is processed.
1
typedef struct
{
RecHdrDef hdr; // Identification of the current structure(hdr.usRecID = 12)
long lAttribCount; // Number of attribute updates contained in the current structure
AttribDef aAttribs[1]; // Dummy placeholder. Size of the field depends on the number
of attribute updates in the message and the sizee of each attribute update
} AttributesRecDef;
2
typedef struct
{
long lCookie; // Identification of the current parameter
STRDef sAttributeName; // This is the name of
the current attribute.
long lAttributeLen; // This is the size of
the attribute data byte array following below.
of attribute updates in the message and the sizee of each attribute update
BYTE aAttribute[1]; // This is the Byte array
holding the updated attribute value. The client must be able to match
this byte array against the actual data type of the attribute. This can be done
either by hard coding with knowledge about the size of the parameter,
or by requesting parameter information from the server.
} AttribDef;
3
typedef struct
{
long lStrLen; // This is the size of
the character array following below.
char aStr[1]; // This is the actual
string data.
} STRDef;