Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: eknori am 10.02.05 - 17:11:16

Titel: [C++ API] LNCalendar
Beitrag von: eknori am 10.02.05 - 17:11:16
Habe heute mal ein bisschen mit der c++ API  herumgespielt. Interessant fand ich die Klasse LNCalendar. Damit ist es recht einfach, Kalendereinträge in den eigenen oder einen fremden Kalender einzutragen.

#include <lncppapi.h>
#include <iostream.h>

void main ( int argc, char *argv[])
{
   char errorbuf[512];
   char *  server="Comm1/Witte/de";
   char *  user="Jens Beimer/witte/de";
   char*   mailfile="mail\\jbeimer.nsf";
   char*   subject="My appointment";
   char *   Start="10/02/2005 15:01";
   char *   End="10/02/2005 19:00";
   LNNotesSession            s;
   LNDatabase               db;
   LNCalendar                  Calendar;
   LNCalendarEntry            Entry;

   LNSetThrowAllErrors(true);

   try
   {
      s.Init();
      
      LNDatetimeRange      TheDate;
      LNDatetime               AptBegin ( Start );
      LNDatetime              AptEnd (  End ) ;
   
      TheDate.SetBegin(AptBegin);
      TheDate.SetEnd(AptEnd);

      s.GetCalendar(&Calendar, server, mailfile, user);
      Calendar.CreateEntry(TheDate, subject, LNCALENTRYTYPE_APPOINTMENT, &Entry);
      Entry.Save();
               
   }
   catch (LNSTATUS error)
   {
      LNGetErrorMessage(error, errorbuf);
      cout << "Error: "  << errorbuf << endl;
   }
   s.Term();
   
}

Das Interessanteste daran ist, daß man den erzeugten Eintrag dahingehend untersuchen kann, welche Felder denn mit welchem Wert gefüllt sein müssen. Das könnte dann als Grundlage dienen, eine entsprechende Klasse auch mit LS aufzubauen, um dann bequem Kalendereinträge zu erzeugen. z.B. für einen Gruppenkalender  ;D

Schade finde ich es eigentlich, daß als Chair der Ersteller eingetragen wird. Mag im Frontend noch Sinn machen, im Backend weniger.

Leider kann man das auch nicht mehr ( einfach ) ändern. Zwar verfügt die LNCalendarEntry class über die Methode GetOwner; leider aber nicht über eine SetOwner method. Alle anderen Methoden sind Get/set, nur diese eben nicht. Schade.

Leider lassen sich ja die c++ wrapper functions nicht "direkt" wie die API Funktionen ansprechen. Werde morgen mal den wrapper aufdröseln; möglicherweise läßt sich ja mit den gewonnenen Erkenntnissen dann eine Klasse in LS aufbauen. Oder gibt es da schon was fertiges, kostenloses ?  ;D
Titel: Re: [C++ API] LNCalendar
Beitrag von: Semeaphoros am 10.02.05 - 17:18:01
Schau mal in der Sandbox, ich glaube, da liegt irgendwo eine ähnliche Klasse rum.
Titel: Re: [C++ API] LNCalendar
Beitrag von: eknori am 10.02.05 - 17:25:57
habe ich schon alle mal durchgesehen.
ist nicht wirklich das, was mir vorschwebt

hätte dann auch gerne in LS so was
Titel: Re: [C++ API] LNCalendar
Beitrag von: Semeaphoros am 10.02.05 - 17:27:05
Ok, gut möglich, ich hab sie nie genauer angeschaut.
Titel: Re: [C++ API] LNCalendar
Beitrag von: eknori am 10.02.05 - 17:28:24
na, ich bastel dann mal weiter; hab ja noch "frei" und meine Frau ist arbeiten *hihi*
Titel: Re: [C++ API] LNCalendar
Beitrag von: eknori am 10.02.05 - 17:33:05
man kann natürlich die Funktionen in eine DLL packen; aber das ist wohl nicht so optimal ...
Titel: Re: [C++ API] LNCalendar
Beitrag von: HaPe am 11.02.05 - 09:41:47
Nur ein Komentar,

Super Idee, bin gespannt auf dein Ergebniss.

Gruß
  HaPe

P.S.: Ne dll fänd ich keine gute idee. Dann hast du wieder das Problem mit der Distibution an alle Clients :-)
Titel: Re: [C++ API] LNCalendar
Beitrag von: Marinero Atlántico am 11.02.05 - 10:27:09
Sobald ich Zeit habe, kann ich mal versuchen einen JNI-Wrapper in Java für diese Klasse zu schreiben.
Vermutlich brauche ich da ein paar Infos von einen der beiden Ulrichs bzgl. C.
Sobald ich das Überblicke kann ich MS.Visual Studio.NET 2003 verwenden. Schliesslich kann ich damit auch unsafe code schreiben/bearbeiten.
Ein guter C/++ Programmierer von der Ranch ist übrigens mit VS.Studio.NET als C++-classic IDE sehr zufrieden. 

Axel