Erst mal der Typecast ist definitiv falsch. Es soll ja ein Unicodestring uebergeben werden und der will erst mal erzeugt sein.
Delphi-Quellcode:
var
WS: WideString;
begin
WS := Edit1.Text;
// hier findet die Unicode-Umwandlung statt
ListSharedFolders(PWideChar(WS));
// das ist nur eine Umtypung
Grundsaetzlich ist es so das weder PWideChar() noch PChar() eine Wandlung des Strings vornehmen.