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++)