This topic describes the interface used by C functions that return a byte array by value.
xmsRC xmsGetByteArrayProperty(xmsHObj object xmsCHAR *propertyName, xmsSBYTE *propertyValue, xmsINT length, xmsINT *actualLength xmsHErrorBlock errorBlock) const;
If the buffer is not large enough to store the whole array, XMS returns the array truncated to the length of the buffer, sets the actualLength parameter to the length of the whole array, and returns an error.
Two functions, xmsBytesMsgReadBytes() and xmsStreamMsgReadBytes(), have a slightly different interface. Using one of these functions, an application can retrieve a byte array in stages by successive calls to the function. Each call reads bytes into the buffer provided by the application starting from the current position of an internal cursor, and an output parameter, returnedLength, to determine how many bytes have been read into the buffer. Neither function has the equivalent of the actualLength parameter in its interface, but an application can specify XMSC_QUERY_SIZE to determine the number of bytes remaining in an array starting from the current position of the cursor.