Autor Beitrag
Luisk
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 31



BeitragVerfasst: Sa 02.01.10 22:58 
Hallo,
ich mache gerade die ersten Schritte mit der TWS-API von Interactive Brokers.
Nun habe ich folgendes Problem:
in der unit TWSLib_TLB ist die Prozedur reqMktDataEx folgendermaßen als Member der Klasse TTws deklariert:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
unit TWSLib_TLB;

procedure reqMktDataEx(tickerId: Integer; const contract: IContract; 
                           const genericTicks: WideString; snapshot: Integer); dispid 101;

Ich versuche nun diese Prozedur anzusprechen. Dabei habe ich das Problem, dass ich
kein Interface vom Typ icontract erzeugen kann.
ausblenden Delphi-Quelltext
1:
 contract:=CreateComObject(IID_IContract)as icontract;					

erzeugt den Laufzeitfehler: EOleSysError Meldung:Klasse nicht registriert.

Kann mir jemand einen Hinweis geben ?
Danke.


hier der Code:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
procedure Tfrm_Interactive_Brokers_TWS.Button3Click(Sender: TObject);
var l_contract:icontract;  //interface
begin
   l_contract:=CreateComObject(IID_IContract)as icontract;
   l_contract.symbol:='eur.usd';
      TWS1.reqMktDataex(
   TWS1.reqMktDataex(1,l_contract,'1',1);
end;
JDF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 29

WinNT, Win2k, WinXP, Win2003
d6ent, d7pro, bds2006ent, vs2003
BeitragVerfasst: Di 05.01.10 12:52 
Hallo,

du verwendest die falsche ID, "IID_IContract" ist eine Interface-ID.
Zum Erstellen des COM-Objekts brauchst du eine CLASS-ID,
die vermutlich "CLASS_Contract" lautet.

Gruß
Jürgen