Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: jor am 20.07.05 - 06:27:47
-
Hallo @all,
kann mir jemand Informationen zu "hook functions" geben, ich weiss dass diese
irgendwie zur Erstellung von selbst geschriebenen AddIn's für den Router dienen.
Ich möchte reinkommende Mails nach Inhalten scannen und dann dem Router wieder
zur Vefügung stellen. Hat das schon einer von euch programmiert und eventuell auch ein
Scriptauszug o. ä. ?
Grüsse, Jor
-
Der Begriff wird in der Notes Literatur eigentlich immer im Bereich der C-Api Programmierung benutzt.
Dies ist ein wichtiger Begriff. Das folgende ist der Versuch, den Begriff ein wenig zu erklären:
Vielleicht nicht in allen Details richtig (ich hab noch nie mit der Notes C-Api programmiert) Im groben sollte es aber stimmen:
Es geht darum ein Programm wie Lotus Notes durch Code des Anwendungsentwicklers erweiterbar zu machen, ohne dass besagter Anwendungsentwicklers in Iris-Code rumschmiert.
Das ist dann so gelöst, dass im Iris-Code wenn z.B. ein neues Mail generiert wird eine vermutlich leere "Hook-Funktion" aufgerufen wird.
Diese von Iris bereitgestellte leere Hookfunktion kann der Anwendungsentwickler dann mit einer eigenen ersetzen (muss einfach nur den gleichen Namen haben).
Um auf eine Mail in selbstgeschriebenen Notes-Erweiterungen in C zu reagieren, muss der Anwendungsentwickler also nur eine Funktion mit dem Namen der Hook-Funktion erstellen.
Im Grunde genommen ist auch der Code in so Events wie QueryOpen, WebQueryOpen, QueryModeChange etc. Hook-Funktionen. Wenn du ein Dokument aufrufst, wird von Notes QueryOpen aufgerufen. Der Code den wir da reinschmieren, "hooked" sich so in den Lebenszyklus eines Notes-Dokuments irgendwie rein.
Z.B. gibt es in Java-EJB und sehr vielen Frameworks ähnliche Dinge. Nur wird in Java lieber der Begriff Callback-Methode und in leicht anderen Kontext Template Methode benutzt.
In diesem Kontext wird auch gerne das sogenannte Hollywood-Prinzip genannt "Don't call us, we call you". D.h. der Anwendungsentwickler ruft nicht Iris Code auf, sondern es gibt eine bestimmte Funktion mit genau spezifizierten Namen/Parametern/Rückgabewert, die von Iris-Code aufgerufen wird und die der Anwendungsentwickler selbst schreiben kann.
-
Hi Jor
Sieh dir mal das MailScan Program von http://www.openntf.org an.
http://www.openntf.org/projects/pmt.nsf/1af5f59bae92986c85256bae000f898c/599388330cf47f36862570300070657c!OpenDocument
Die haben sowas ähnliches wie Du wahrscheinlich machen möchtest als Beispiel realisiert.
Hook + Addin für den Domino.
gruss
umi
-
Vielen Dank für die Hilfe und die Infos. Ich hoffe, ich komme jetzt etwas weiter,
habe in diesem Bereich der Programmierung noch nie zu tuen gehabt.
Bis zur nächsten Frage ;-)) Dank und Grüsse, Jor