I have a native Delphi exe which calls into C# dll via COM interop. Here\'s the simplest case which demonstrate this issue:
Delphi:
IClass1 = interfa
In Delphi, AnsiString, UnicodeString, and WideString values are represented by a nil pointer when they are empty. COM uses BSTR for strings. Delphi wraps BSTR with WideString. So there is no way to pass an "empty" non-nil string to a COM method that takes a WideString as a parameter, it will be nil instead.