Einzelnen Beitrag anzeigen

Benutzerbild von cherry
cherry

Registriert seit: 14. Nov 2005
561 Beiträge
 
RAD-Studio 2009 Ent
 
#18

Re: Wenn of object, dann knallts!!!

  Alt 12. Nov 2009, 16:04
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... ??!?
Ist das nur mein Gefühl, oder ist die ganze Welt verrückt geworden!?
  Mit Zitat antworten Zitat