COM Object an COM Object übergeben
Verfasst: 08.12.2016 15:25
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
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
Ich habe folgendes Delphi Beispiel was ich versuche auf PB zu übertragen
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
Besten Dank
Viele Grüße
Andreas Rauscher
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+")")
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);
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;
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