Seite 1 von 1

Benutzung von COM Komponenten

Verfasst: 7. Juli 2016, 14:23
von FDominicus
So wie ich das sehe gibt es dort nur "rund" 3 Aufrufe. Mein Problem liegt bei
COMCreateInstance wo ich zumindest zwei GUIDs kennen muß.

Ich habe keine Möglichkeit gefunden über die ProgID ein COMObject zu initialisieren.
Habe ich das etwas übersehen oder muß man über die WIN API gehen?

Re: Benutzung von COM Komponenten

Verfasst: 11. Juli 2016, 06:04
von Herbert
Nicht einfach, da ich es nicht nutze.
ComCreate selber macht aber intern bereits API-Aufrufe. Schau in der Hilfe von WD: http://doc.pcsoft.fr/en-US/?1000018831&product=WB
Die ComCallMethod muss mit den Methoden-Nummern genau passen!
Für 2 GUID musst du doch 2 COMObject-Variablen definieren und ComCreate zweimal aufrufen...

Re: Benutzung von COM Komponenten

Verfasst: 16. Juli 2016, 14:17
von FDominicus
Stimmt nicht ganz mit ComCreateInstance wird eine COm Objekt und eine bestimmtes Interface darauf angelegt. Das sind eben die beiden Parameter.
mit ComCallMethod ruft man dann eine Methode dieses Interfaces aus. Es gibt aber ein Problem. In der Dok teht 0 basiert und alles Eltern Elemente werden mitgezählt. Bei der mir vorliegenden Komponente soll die dispid 5 sein aber dazu kommt noch 3 Funktionen aus IUnknown und 4 oder so aus IDispatch.

Aber ich fand noch Automation object und damit bekam ich es hin. Nachdem ich drei Tage versucht habe die richtige ID zu finden ;-(

Ich war sogar so weit und hatte diesen COM Aufruf in einer C Dll versteckt aber der Aufruf klappte dannn wieder nicht. In der HInsicht von solchen Beispielen gibt es nicht wirklich Gutes.....

Mit Automation object ist es nur ein
new Automation Object "NamedesActive-xX
Aufruf der Methode nach Namen
object>>Excute

Ziemlich simpel, wenn man denn auch noch weiß wie man BSTR, whar_t in Windev behandelt.

So kann's halt beim Programmieren gehen.

Re: Benutzung von COM Komponenten

Verfasst: 15. November 2018, 21:26
von michipapa
Hallo,

ist zwar schon eine Weile her, stehe aber jetzt vor einem ähnlichen Problem.
Was ist bei BSTR zu beachten ?

Gruss MD