Einschränkungen der COM-Klassen

User Interface Klassen

Abgesehen von den speziellen Klassen für bestimmte Designelemente sind das fast ausschließlich Klassen, die explizit als User Interface-Klassen definiert sind. Darüber hinaus gibt es einige Unterschiede in der Behandlung von Datentypen, die vor allem bei der Portierung von Code zwischen Lotus- Script und beispielsweise Visual Basic, oder umgekehrt, zum Problem werden können – und nach den Ursachen für solche Fehler muss man ja manchmal lange suchen. Zu nennen sind hier:

  • Boolesche Datentypen können in LotusScript auch als Variant oder Integer behandelt werden.

  • Parameter werden bei LotusScript als Integer, bei COM aber als Long behandelt.

  • Auch bei der Behandlung von Werten, die eine Konstante aufnehmen, gibt es Unterschiede zwischen den beiden Plattformen, die sich allerdings in der Portierung nicht auswirken sollten.

Deutlich gravierender ist, dass man in COM nicht auf die Namen von Elementen zugreifen kann, also beispielsweise doc.titel. Das geht nur bei LotusScript. Bei COM muss man mit dem Methoden und Eigenschaften arbeiten, die für den Zugriff und die Bearbeitung der entsprechenden Elemente vorgesehen sind.

Speziell für VBScript als Skriptsprache, die logischerweise mit Late Bindings arbeitet, also erst zur Laufzeit die Umsetzung vornimmt, müssen Rückgabewerte erst in eine Variable geschrieben werden, bevor sie als Array indiziert werden können.

Zu beachten ist außerdem, dass Fehlercodes in COM aus vier Zeichen bestehen, wobei die letzten beiden Bytes den Domino-Fehlercodes entsprechen und die ersten beiden Zeichen immer den Wert &H8004 haben.

Außerdem kann COM keine Methoden und Eigenschaften nutzen, deren Rückgabe ein unbekanntes Objekt ist. In diesem Fall werden Typfehler gemeldet. Die Entsprechenden Eigenschaften und Methoden können daher nicht genutzt werden.