C# - Az Outlook naptárának kezelése programból

Outlook programozása 4. rész

forráskód letöltése
Az Outlook programozásáról szóló cikkekben eddig csak a levelezéssel kapcsolatos dolgokkal foglalkoztunk, pedig az Outlook nem csupán egy egyszerű levelezőprogram, hanem többek között tartalmaz egy nagyon jól használható naptárat is. Ebben a cikkben azt nézzük meg, hogy ebbe a naptárba hogyan vehetünk fel új elemeket programból, illetve hogy miként kérdezhetjük le a már meglévő elemek tulajdonságát is.
Kezdjük először a listázással, melynek eredményét egy ListView kontrol jeleníti majd meg. Miután létrehoztuk a kapcsolatot az Outlook alkalmazással, lekérdezzük a MAPI névteret, majd ennek segítségével elérhetjük már a naptárat (olFolderCalendar), melyet egy MAPIFolder osztályon keresztül kezelhetünk.
    private void button1_Click(object sender, System.EventArgs e)
    {
      Outlook.Application oa = new Outlook.Application();
      Outlook.NameSpace ns = oa.GetNamespace("MAPI");
      Outlook.MAPIFolder mf = ns.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderCalendar);
      string[] s = new string[3];      
Ennek a tárolónak az elemein egy ciklussal végigszaladunk, így megtudjuk a naptárba már meglévő összes bejegyzést.
      for (int i=1; i<=mf.Items.Count; i++)
      {
A bejegyzések egyes elemeit az Item függvénnyel kérdezzük le és AppointmentItem osztályban tároljuk.
        Outlook.AppointmentItem ai = (Outlook.AppointmentItem)mf.Items.Item(i);
Ennek számos tulajdonsága közül most csak a legfontosabbakat emeljük ki és jelenítjük meg a ListView-be. Ilyen a Subject, mely a bejegyzés tárgyát adja meg, ami a naptárban is látható, vagy a kezdési időpontja, mely a Start property-ben érhető el DateTime típusként. Hogy meddig vagyunk elfoglaltak az adott naptári bejegyzés alapján, az End property adja szintén DateTime típusban.
        s[0] = ai.Subject;
        s[1] = ai.Start.ToString();
        s[2] = ai.End.ToString();
        listView1.Items.Add(new ListViewItem(s));
      }
    }
A listázás után most készítsünk egy új bejegyzést. Ennek létrehozásához szükségünk van egy új elemre, mely AppointmentItem típusú lesz, amelyben a bejegyzés tulajdonságait megadhatjuk tetszés szerint. Az új elem létrehozásához az Outlook Application osztályának CreateItem függvényét használjuk. Ennek olAppointmentItem értékű paramétere dönti el azt, hogy milyen új bejegyzés készüljön.
    private void button2_Click(object sender, System.EventArgs e)
    {
      Outlook.Application oa = new Outlook.Application();
      Outlook.AppointmentItem ai = (Outlook.AppointmentItem)oa.CreateItem(Outlook.OlItemType.olAppointmentItem);
Az új naptári bejegyzésnek megadhatjuk a tárgyát, kezdő időpontját és a tartalmát a Subject, Start és Body property-ken keresztül.
      ai.Subject="www.SoftwareOnline.hu új cikkek jelentek meg!";
      ai.Start=new DateTime(2002, 1, 7, 0, 0, 0, 0);
      ai.Body="Minden hétfőn új cikkek a Software Online hetilapban";
Ha szeretnék, hogy ismétlődjön a bejegyzés, akkor ehhez lekérjük a bejegyzéshez tartozó RecurrencePattern osztály aktuális értékét, melyben az ismétlődés van előírva.
      Outlook.RecurrencePattern rp = ai.GetRecurrencePattern();
Majd az ismétlődés típusát megváltoztatjuk úgy, hogy a naptári bejegyzésünk minden héten azonos időpontban ismétlődjön.
      rp.RecurrenceType = Outlook.OlRecurrenceType.olRecursWeekly;
Végül nincs más tennivalónk, mint mentjük a létrehozott és új tulajdonságokkal felruházott bejegyzést a Save függvény hívásával.
      ai.Save();
    }

Outlook programozása cikksorozat