anchor.diff:      if (FAILED(hr)) throw WindowsException(hr);
     ''';
   
  +  String vectorDeclaration() => '''
  +    IVector<String> $name($methodParams) {
  +    final retValuePtr = calloc<COMObject>();
  +    $parametersPreamble
  +    ${ffiCall()}
  +    $parametersPostamble
  +    return IVector(retValuePtr);
  +  }
  +''';
  +
     String vectorViewDeclaration() => '''
       List<String> $name($methodParams) {
       final retValuePtr = calloc<COMObject>();
  
positive.code:       returnType.typeIdentifier.baseType == BaseType.genericTypeModifier &&
        (returnType.typeIdentifier.type?.name.endsWith('IVector`1') ?? false);
  
    String get wrappedReturnType {
      if (isCOMObjectReturn) return 'Pointer<COMObject>';
      if (isStringReturn) return 'String';
      if (isDateTimeReturn) return 'DateTime';
      if (isTimeSpanReturn) return 'Duration';
      if (isVectorViewReturn) return 'List<String>';
      if (isVectorReturn) return 'IVector<String>';
  
      return returnType.dartType;
    }
  
negative.code:       $parametersPostamble
        free(retValuePtr);
      }
    }
  ''';
  
  