COM Object an COM Object übergeben

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
X360 Andy
Beiträge: 1206
Registriert: 11.05.2008 00:22
Wohnort: Bodensee
Kontaktdaten:

COM Object an COM Object übergeben

Beitrag von X360 Andy »

Hallo Zusammen,
Ich übersetze einen Delphi Code in Purebasic. Hänge aber gerade bei dem Problem das ich in einem String eine weitere COMInstanz übergeben muss...

Purebasic Code

Code: Alles auswählen

      Global ParamListObjekt.COMateObject
      ParamListObjekt=Fakt\GetObjectProperty("CreateMakroParamList()")     
      ParamListObjekt\Invoke("AddParam('"+Parameter1$+"','"+Wert1$+"')")
      ParamListObjekt\Invoke("AddParam('"+Parameter2$+"','"+Wert2$+"')")
      Fakt\Invoke("StartMakroEx('"+MakroDateiName$+"',"+ParamListObjekt+")")
Die beiden Objekte sind richtig initalisiert, ein Test mit einer "count" Funktion der ComSchnittstelle wirft mit 2 aus.
ParamListObjekt\GetStringProperty("count")

Doch ich erhalte eine Fehlermeldung bei dem letzten Befehl "Type mismatch in the method parameters"
Laut Doku der ComSchnittstelle die ich nutze hat die Funktion StartMakroEx folgende Beispielhaften (Pseudo) Aufruf

Code: Alles auswählen

procedure StartMakroEx(const
MakroDatei: WideString; const
ParamList: MakroParamList);
Ich habe folgendes Delphi Beispiel was ich versuche auf PB zu übertragen

Code: Alles auswählen

var
makroParamList: OleVariant;
fakt: OleVariant; { Voraussetzung: Die
Variable fakt ist bereits initialisiert... }
makroParamList := Fakt.CreateMakroParamList;
makroParamList.AddParam('Param1',
'Param1_Wert');
makroParamList.AddParam('Param2',
'Param2_Wert');
{ usw. }
Fakt.StartMakroEx('MakroDatei.qdf',
makroParamList);
makroParamList := Unassigned;
Hat jemand eine Idee was genau ich falsch mache... ?
Ich gehe davon aus das die Schnittstelle mein Objekt als reinen Integer interpretiert.... (MakroParamList!=Integer)

Ich habe auch folgendes ausprobiert

Code: Alles auswählen

 Fakt\Invoke("StartMakroEx('"+MakroDateiName$+"',"+ParamListObjekt\GetCOMObject()+")")

Besten Dank

Viele Grüße

Andreas Rauscher
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: COM Object an COM Object übergeben

Beitrag von Kiffi »

X360 Andy hat geschrieben:Ich gehe davon aus das die Schnittstelle mein Objekt als reinen Integer interpretiert....
Dann versuch mal, Dein Objekt als 'COMateObject' zu übergeben:

Code: Alles auswählen

Fakt\Invoke("StartMakroEx('"+MakroDateiName$+"',"+ParamListObjekt+" as COMateObject)")
Grüße ... Peter
a²+b²=mc²
Benutzeravatar
X360 Andy
Beiträge: 1206
Registriert: 11.05.2008 00:22
Wohnort: Bodensee
Kontaktdaten:

Re: COM Object an COM Object übergeben

Beitrag von X360 Andy »

Vielen vielen Dank, funktioniert :) :bounce:
Antworten