if (data == null || length <= 0 || offset < 0) return TErrorList.argument_list_error;
if (length > data.length - offset) length = data.length - offset;
int maxlen = dArrayLength;
if (maxlen > length) maxlen = length;
if (length <= 0) return TErrorList.argument_list_error;
if (isLocked) throw new InputDataLockedException(lockedMessage);
if (TFormat.isVariableLengthString(dFormat))
{ // String array to CF_STRING, etc.
if (hDataObject instanceof String[])
{
for (int i = 0; i < maxlen; i++)