Erstmal sorry für die Irreführung...
Hab die Funktion nun ein wenig angepasst:
Delphi-Quellcode:
function GetLDAPDomain: String;
var
NSContainer : IADsContainer;
Enum : IEnumVariant;
hr : integer;
varArr : OleVariant;
lNumElements : ULONG;
ADsItem : IADs;
begin
Result := '';
NSContainer := nil;
Enum := nil;
if ADsGetObject( 'LDAP:', IID_IADsContainer, NSContainer) = S_OK then
begin
hr := ADsBuildEnumerator(NSContainer, Enum);
while SUCCEEDED(hr) do
begin
hr := ADsEnumerateNext(Enum, 1, varArr, lNumElements);
if (lNumElements<=0) then Break;
if IDispatch(varArr).QueryInterface(IID_IADs, ADsItem) = S_OK then
result := result + ADsItem.ADsPath + #13;
end;
end;
end;
geht trotzdem nicht. Komisch ist ja, dass die Funktion das erwartete Resultat zurückgibt, wenn das result allerdings in eine Variable von einer Klasse gespeichert werden soll, gehts nicht. Bei einer Prozedur Variable klappts ja prima...
ich kreigs nicht raus?!
>> Ich würd auch gerne
Delphi-Quellcode:
if Enum <> nil then
hr := ADsFreeEnumerator(Enum);
VariantClear(varArr);
verwenden, doch dann krachts auch beim speichern in eine Prozedurvariable... ??!?