Einzelnen Beitrag anzeigen

Benutzerbild von cherry
cherry

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

Wenn of object, dann knallts!!!

  Alt 12. Nov 2009, 12:40
Hallo, ich habe folgende Funktion:

Delphi-Quellcode:
  type
    TGetLdapDomain = procedure(ldap: string) of object;
Delphi-Quellcode:
procedure GetLDAPDomains(CallBack: TGetLdapDomain);
var
  NSContainer : IADsContainer;
  Enum : IEnumVariant;
  hr : integer;
  varArr : OleVariant;
  lNumElements : ULONG;
  ADsItem : IADs;
begin
  NSContainer := nil;
  Enum := nil;
  ADsGetObject('LDAP:', IID_IADsContainer, NSContainer);
  hr := ADsBuildEnumerator(NSContainer, Enum);
  while SUCCEEDED(hr) do
  begin
    hr := ADsEnumerateNext(Enum, 1, varArr, lNumElements);
    if (lNumElements<=0) then Break;
    IDispatch(varArr).QueryInterface(IID_IADs, ADsItem);
    CallBack(ADsItem.ADsPath);
    //ADsItem.Class_;
  end;
  //if Enum <> nil then
   // hr := ADsFreeEnumerator(Enum);
  VariantClear(varArr);
end;
Wenn nun die CallBackFunktion of object ist, dann knallts... Wenn die CallBackFunktion nicht of Object mache, knallts nicht. Aber ich muss Sie of object machen, da sie zu einer Klasse gehören soll...

(mit knallt es meine ich eine Access Violation)

Ein weiteres Phänomen ist, wenn ich hr := ADsFreeEnumerator(Enum) wieder in den Code aufnehme, dann knallts so oder so...

An was kanns liegen? Testet doch die Procedur mal bei euch....

Danke schon mal im Voraus.
PS: Guten Appetit.
Ist das nur mein Gefühl, oder ist die ganze Welt verrückt geworden!?
  Mit Zitat antworten Zitat