Liebe Gäste des Forums
Danke, dass ihr euch hier auf dem inoffiziellen Windev-Forum umschaut. Hier werden Tipps und Hinweise zu der von PC-Soft angebotenen Software Windev besprochen.
Windev ist eine leistungsstarke, sehr umfangreiche Entwicklersoftware für Webseiten, Handys und Rechner verschiedener Betriebssysteme. Mehr unter http://www.windev.com

Benutzung von COM Komponenten

Alle Themen rund um die Erstellung von Programmen
Antworten
FDominicus
Junior Member
Beiträge: 23
Registriert: 9. Mai 2015, 08:19

Benutzung von COM Komponenten

Beitrag von FDominicus » 7. Juli 2016, 14:23

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?

Herbert
Site Admin
Beiträge: 386
Registriert: 23. Februar 2010, 08:06
Wohnort: Langenthal, Schweiz
Kontaktdaten:

Re: Benutzung von COM Komponenten

Beitrag von Herbert » 11. Juli 2016, 06:04

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...

FDominicus
Junior Member
Beiträge: 23
Registriert: 9. Mai 2015, 08:19

Re: Benutzung von COM Komponenten

Beitrag von FDominicus » 16. Juli 2016, 14:17

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.

Antworten