Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Andreas Bauer am 20.12.04 - 19:50:04

Titel: API: generelle Frage
Beitrag von: Andreas Bauer am 20.12.04 - 19:50:04
Hallo zusammen,

ich habe mal eine generelle Frage zu API, denn das sind spanische Dörfer für mich.

Ich habe dies bisher immer blind eingesetzt, daher ein paar Fragen hierzu.

Z.B. wird hier ja die WinAPI genutzt afaik (Antwort Nr. 3): http://www.atnotes.de/index.php?topic=18630.0

Wo kann ich denn sehen, welche Möglichkeiten mir hier überhaupt zur Verfügung stehen?

Von IBM gibt's ja das C API Toolkit: Link (http://www-10.lotus.com/ldd/notesua.nsf/0b345eb9d127270b8525665d006bc355/a5c4ea439f76ddc085256e5a00584110?OpenDocument)

Allerdings sind dort nur C - Befehle enthalten, was mich nicht wirklich weiterbringt.

Ich bin über jede Info dankbar.

Grüße,
Andreas
Titel: Re: API: generelle Frage
Beitrag von: eknori am 20.12.04 - 19:58:42
Das C Api Toolkit oder die C++ Api ( eine wrapper class für die C Api ) wirst du in der Regel nur dann brauchen, wenn du Client/Server Addins in C schreiben willst/musst(möchtest.

Wenn das aber spanish Dörfer sind, dann musst du dich wohl oder übel mit den Grundlagen von C vertraut machen.

Was die Einbindung in Lotus Script angeht, gibt die Designer Hilfe einen ersten Ansatz.
Als nächstes kannst du dann in Foren zu Visual Basic so einiges finden; allerdings dürften hier im Forum schon fast alle für LN brauchbaren Adaptionen der Note oder Windows API zu finden sein.

Titel: Re: API: generelle Frage
Beitrag von: Andreas Bauer am 20.12.04 - 20:05:40
Hallo Ulrich,

danke schonmal !

Gibt es irgendwo weiterführende Infos zu den ganzen APIs bezüglich Einbindung in Lotus Script?

Konkret würde mich interessieren:
 - warum werden Variablen z.B. mit "hwndOwner" bezeichnet und nicht als lngOwner (weil Datentyp Long?)
 - gibt es irgendwo eine Übersicht der Notes Libraries und den enthaltenen Functions?
 - gibt es irgendwo eine Übersicht der Windows Libraries und den enthaltenen Functions?
 - was passiert, wenn ich Win API nutze, und der Client ein Mac ist? Tritt der Fehler erst dann auf in der Sub/Function an der ersten enstprechenden Stelle, oder bereits beim Laden der ScriptLibrary?

Andreas
Titel: Re: API: generelle Frage
Beitrag von: Semeaphoros am 20.12.04 - 20:23:20
Das Buch kostet zwar, aber es beantwortet genau Deine Fragen bezüglich Notes-API:

www.ls2capi.com


Vermutlich das einzige Buch, das wirklich so geziehlt genau auf die Nutzung in LotusScript abziehlt.
Titel: Re: API: generelle Frage
Beitrag von: koehlerbv am 20.12.04 - 20:24:07
Hallo, Andreas,

wenn Dich die C-API-Doku von Notes nicht weiterbringt, stehst Du auf völlig verlorenem Posten. Ohne dem Know-How hierzu kommst Du nämlich sonst kein Stückchen weiter.

Zu Deinen Fragen:
- Die Benennung der Parameter ist wahlfrei. Das haben sich die jeweiligen Programmierer (bzw. Class-Projektanten) ausgedacht. Sicher steckt ein Sinn dahinter, aber das Wissen darüber hilft Dir auch nicht weiter.
- Die "Übersicht der Notes Libraries" hast Du ja schon gefunden.
- Hinsichtlich der WinAPI ist das Netz voll von guten Seiten. Einfach googlen. Ich weiss nicht, ob meine Favorites der Weisheit letzter Schluss sind, deswegen poste ich hier aus der riesigen Anzahl von Angeboten nix.
- Es scheppert schon beim Laden der Lib.

Buchempfehlung tum Thema:
Normunds Kalbernzins LS to Lotus C API Programming Guide (http://www.ls2capi.com/normunds/ls2capihome.nsf/Content/index)
Ich wüsste nix besseres - einfach Klasse, das Teil. Er erklärt dort auch gut verständlich die minimalen C-Kenntnisse, die man für dieserart APIs benötigt.

HTH,
Bernhard

PS: Dringender Tip, Andreas: Mach Dich unbedingt schlau über die ganzen Risiken und Nebenwirkungen eines Einsatzes von APIs. Nicht nur die OS-Version, sondern auch das jeweilige Release spielen oft eine ganz wichtige Rolle. Und wenn Dir da was schief geht, kriegst Du keine Fehlermeldung mehr ... Auch totaler Datenverlust ist durch unsachgemässen Einsatz ratzfatz provoziert.
Titel: Re: API: generelle Frage
Beitrag von: Andreas Bauer am 20.12.04 - 20:33:33
Vielen dank, Semaphoros und Bernhard.
Ich denke ich werde mir das Buch besorgen  :)

Letzte Frage:

- Es scheppert schon beim Laden der Lib.
Gibt es eine Möglichkeit das zu vermeiden? Mir fällt es schwer dies zu testen mangels nicht vorhandenem Mac....

Ich stelle mir vor eine Meldung auszugeben, wenn die Workstation <> Win32 ist.
Über Notessession.Platform kommt man ja an die OS-Version.
Aber wenn es bereits beim laden scheppert, ist das wohl zu früh.

Andreas
Titel: Re: API: generelle Frage
Beitrag von: Andreas Bauer am 20.12.04 - 20:40:08
Noch was  ;)

- Die "Übersicht der Notes Libraries" hast Du ja schon gefunden.

Leider nein, Bernhard, aber vielleicht kannst Du mir kurz helfen.

Z.B. würde ich gerne wissen, wo
Code
Declare Function NSFDbOpen Lib APIModule Alias "NSFDbOpen" ( Byval PathName As String, DbHandle As Long) As Integer
Declare Function NSFDbClose Lib APIModule Alias "NSFDbClose" ( Byval DbHandle As Long) As Integer
dokumentiert ist.

Z.B. eine Suche nach "NSFDbOpen" in der Designerhilfe liefert mir nämlich keine Treffer.

Andreas
Titel: Re: API: generelle Frage
Beitrag von: Semeaphoros am 20.12.04 - 20:48:35
Das Buch von Normunds erklärt das eigentlich alles. Auch wie man mit Mac umgehen muss, steht dort drin.
Titel: Re: API: generelle Frage
Beitrag von: koehlerbv am 20.12.04 - 20:52:18
Zu Deinen Fragen, Andreas:
Die Notes / Domino-C-API-Doku hast Du bereits in Deinem Ausgangsposting als Link veröffentlicht. Das isses !
In der Designer-Help findest Du (aus gutem Grunde) kaum Infos zur C-API. Das ist einfach nicht der Platz dafür.

Wegen der plattformabhängigen Codierung: Siehe Normunds Buch ab Seite 118.

Und nochmals: Suche zuerst immer Wege, ohne API auszukommen. Dir können sonst wirklich schlimme Dinge passieren, und der Lernaufwand ist beachtlich.

Mal doch mal ein Beispiel auf, wo Du mit "Bordmitteln" nicht weiterkommst. Auch wenn Du das Ganze "nur" interessehalber betreibst: Liest Normunds' Buch - es wirklich hervorragend.

Bernhard
Titel: Re: API: generelle Frage
Beitrag von: animate am 21.12.04 - 08:15:43
bitte löschen. ich kanns nicht
Titel: Re: API: generelle Frage
Beitrag von: eknori am 21.12.04 - 08:24:24
Thomas Völk schrieb in seinem Beitrag:
Zitat
oder dir den Visual Basic Programmer's Guide to the Win32 API von Dan Appleman reinziehen

... den er dann recht frustriert schnell wieder in die Ecke legt, weil der größte Teil gar nicht in Notes verwendet werden kann ... und man recht schnell auch vom Umfang des Werkes erschlagen wird...
Titel: Re: API: generelle Frage
Beitrag von: animate am 21.12.04 - 08:27:57
oh mist, ich hab meinen Beitrag, aus dem eknoris Zitat stammt, gerade nach sorgfältigerem Studium der Beiträge eliminiert.

den Apppleman konnte ich eigentlich öfter mal einsetzen. Ich war nie frustriert. Allerdings habe ich den auch für VB mitverwendet.