Das habe ich doch schon?!.. wie ich aber sehe, konzentriert ihr euch zu fest auf die Thematik Callback... Das Problem tritt aber auch anders auf,
deshalb habe ich die Methode jetzt umgeschrieben:
Also nochmals von vorne... Ich habe diese Funktion:
Delphi-Quellcode:
function GetLDAPDomain: String;
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);
result := result + ADsItem.ADsPath + #13;
//ADsItem.Class_;
end;
end;
Wenn ich im Programm z.B. die Funktion so aufrufe:
public {von TForm1}
myVar: String;
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
// es kracht schon so
myVar := GetLDAPDomain;
end;
Sobald ich myVar direkt in FormCreate deklariere, oder ausserhalb der Klasse TForm, dann gehts... so habe ich aber von anderen Forms keinen Zugriff,,, und überhaupt, wieso sollte das ein Problem sein so wie ich es mache=????