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.