Hallo nochmals,
habe mir mal die Mühe gemacht, dasselbe ohne diese Wrapper-Dateien zu machen. Du musst zuerst aber die TLB-Datei erzeugen:
Menü\Komponente Importieren\Typbibliothek importieren, anschliessend "Active DS Type Library" auswählen. Zweimal weiter klicken und Fertig stellen, anschliessen wird eine
Unit mit Namen ActiveDS_TLB angelegt, diese solltest du dann in einem neuen Projekt in die uses-Klausel mitaufnehmen.
Die ADSGetObject-Routine habe ich einfach statisch ins Hauptformular eingebunden:
function ADsGetObject(pwcPathName: PWideChar; const xRIID: TGUID; var pVoid): HResult; stdcall; external 'activeds.dll';
Das ist der Code, den ich für eine Namensauflösung dann einsetze:
Delphi-Quellcode:
var
usr: IADSUser;
pc:
array[0..255]
of WideChar;
s:
String;
begin
s:='
WinNT://'+Edit_Domain.Text+'
/'+Edit_Kennung.Text;
StringToWideChar(S,PC,Length(S)+1);
ADsGetObject(pc, IADsUser, usr);
if not Assigned(usr)
then
Edit_Name.Text := '
Unknown'
else
Edit_Name.Text := usr.FullName;
end;
Bei mir klappts. Allerdings habe ich ganz schöne Schwierigkeiten, von normalen Strings in PWideChar umzuwandeln...
Cu,
Udontknow