Site Announcements

Liebe Gäste des Forums, wir freuen uns, dass ihr zu uns gelangt seid.
Windev ist eine sehr umfangreiche und starke Entwicklerumgebung für Anwendungen unter Windows, Linux und Internetapplikationen inkl. Mobile.
Hier sind Antworten und Anregungen dazu zu finden!
Möchtest du aktiv mitschreiben? Dann melde dich durch Klick auf den Text "Registrieren" hier rechts oberhalb an.

Benutzung von COM Komponenten

Alle Themen rund um die Erstellung von Programmen

Benutzung von COM Komponenten

Beitragvon 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?
FDominicus
Junior Member
 
Beiträge: 21
Registriert: 9. Mai 2015, 08:19
Has thanked: 0 time
Have thanks: 0 time

Re: Benutzung von COM Komponenten

Beitragvon 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...
Herbert
Site Admin
 
Beiträge: 354
Registriert: 23. Februar 2010, 08:06
Wohnort: Langenthal, Schweiz
Has thanked: 5 times
Have thanks: 3 times

Re: Benutzung von COM Komponenten

Beitragvon 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.
FDominicus
Junior Member
 
Beiträge: 21
Registriert: 9. Mai 2015, 08:19
Has thanked: 0 time
Have thanks: 0 time


Zurück zu Programmierung allgemein

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast