Currently assigning UnicodeString to variant converts string to WideString and makes variant of type varOleStr. I think it should be varUString and w|o any conversion (also this is delphi compatible). But the question is which type should be if WideString=UnicodeString?