Hallo,
hmmm.
Versuchsweise hatte ich mal unmittelbar vor Deinem o.g. "soft" Typecast die folgende Zeilen in die Projekte BankTest2 und BankTest3 eingefügt.
Delphi-Quellcode:
anIID := StringToGUID('
{DD000122-3E33-11D1-A006-0060088FF6B8}');
// TGUID von IBacDataObject2
if IUnknown(aHIKAZ.Item['
UmsaetzeGebucht1', 1]).QueryInterface(anIID,p) <> 0
Then
Begin
ShowMessage('
Fehler');
// VCL.Dialogs in uses clause !
Exit;
End
else
Begin
if Assigned(p)
then
ShowMessage('
Alles klar');
End;
und zuvor anIID als TGUID- und p als Pointer-Variable deklariert. Dann habe ich noch sichergestellt,
dass das Interface IBacDataObject2 korrekt in der Registry steht.
Ergebnis: BankTest2 : Alles klar, BankTest3: Fehler.
Damit ist klar, dass aHIKAZ bei BankTest3 noch nicht richtig initialisiert zu sein scheint. Dachte zunächst an ein
fehlendes CoInitializeEx, aber wir haben es doch hier mit keiner MultiThreaded-Applikation zu tun.
Vielleicht liegt es auch an den beiden fehlenden Container-Objekten in BankTest3.
Da würde ich mal weiterschauen.
MfG