AtNotes Übersicht Willkommen Gast. Bitte einloggen oder registrieren.
21.09.21 - 18:49:17
Übersicht Hilfe Regeln Glossar Suche Einloggen Registrieren
News:
Schnellsuche:
+  Das Notes Forum
|-+  HCL Notes / Domino / Diverses
| |-+  Entwicklung (Moderatoren: eknori, fritandr, koehlerbv, Tode)
| | |-+  Zugriff auf Interface von COM Object
« vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: Zugriff auf Interface von COM Object  (Gelesen 571 mal)
AlexZX
Frischling
*
Offline Offline

Beiträge: 25


« am: 31.05.21 - 13:18:11 »

Hallo Forum,

ich stehe vor folgendem Problem.

Wir haben eine Software die eine COM API zur Verfügung stellt. Laut der API Beschreibung gibt es eine Klasse und mehrere Interfaces die verschiedene Methoden enthalten.

Ich verwende Lotusscript und erstelle über "CreateObject" das Object dieser Klasse. Wie kann ich jetzt auf die Methoden der verschiedenen Interfaces dieser COM API zugreifen?
Gespeichert
CarstenH
Senior Mitglied
****
Offline Offline

Geschlecht: Männlich
Beiträge: 428



« Antworten #1 am: 31.05.21 - 13:50:18 »

Hallo Alex,

hier im Forum finden sich eine Menge Beispiele über die Suche nach CreateObject

Ich habe jetzt einfach mal eins herausgegriffen, was mir übersichtlich erschien: https://atnotes.de/index.php/topic,57805.0.html

Ansonsten konkretisiere deine Frage etwas mehr, damit man sich ein Bild machen kann wo es jetzt hängt und was du selbst schon probiert oder herausgefunden hast.

HTH
Carsten
Gespeichert
AlexZX
Frischling
*
Offline Offline

Beiträge: 25


« Antworten #2 am: 31.05.21 - 16:27:33 »

Hallo Carsten,

vielen Dank für deine Antwort!

ich habe schon einige Erfahrung mit der COM API von Excel, Word und Outlook. Wenn ich z.B. bei Excel ein Objekt über CreateObject erstellt, kann ich direkt auf die Methoden zugreifen. z.B.

Code:
Set vExcelApp = CreateObject("Excel.Application")
vExcelApp.Application.ScreenUpdating = False
vExcelApp.Visible = False
vExcelApp.Workbooks.Add
vExcelApp.ReferenceStyle = 1
vExcelApp.DisplayAlerts = False

Set vExcelSheet = vExcelApp.Workbooks(1).Worksheets(1)
vExcelSheet.Name = "Ein Name"

Jetzt habe ich jedoch den Fall, dass einige Methoden in Interfaces definiert sind. Es handelt sich um diese COM API http://downloads.mapandguide.de/data/mgDevAPI/Docs/namespacemg_a_p_i.html

Ich erstelle das Objekt:
Code:
Set mgApi = CreateObject("mgAPI.mg_API")

Dann kann ich jedoch nur auf die Methoden von mg_API zugreifen.

z.B. ist die Methode GetVersion im Interface IVersion definiert. Wenn ich versuche die Methode über mein Objekt aufzurufen kommt der Fehler, dass die Methode nicht gefunden wurde:

Code:
Dim mgApi  As Variant
Dim version as String

Set mgApi = CreateObject("mgAPI.mg_API")
version = mgApi.GetVersion

In der Beschreibung der API gibt es einige Beispiele, jedoch nur in C# und VB.NET. Das ist z.B. das Beispiel für das Anzeigen der Version in VB.NET
Code:
Dim version as String

'Create instance of API COM object
m_mgAPI = New mgAPI.mg_API()

'Get API version
version = TryCast(m_mgAPI, IVersion).GetVersion()

Ich weiß nicht ob man das in Lotusscript so abbilden kann.


Gespeichert
jBubbleBoy
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 1224



« Antworten #3 am: 31.05.21 - 19:08:05 »

Mit "CreateObject" wird ein OLE-Objekt erzeugt, COM funktioniert anders.
Excel kann COM Bibliotheken einbinden, ich würde ein Excel-Makro schreiben und das von Notes aus aufrufen Roll Eyes
Gespeichert

Gruss Erik :: Freelancer :: Notes, Java, Web, VBA und DomNav 2.5 / NSE 0.11
--
Nur ein toter Bug, ist ein guter Bug!
AlexZX
Frischling
*
Offline Offline

Beiträge: 25


« Antworten #4 am: 02.06.21 - 10:26:44 »

Vielen Dank für den Hinweis...

Ich werde es über das Excel Macro probieren.

Gruß
Alex
Gespeichert
Seiten: [1] Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS
Impressum Atnotes.de - Powered by Syslords Solutions - Datenschutz | Partner: