none
Outlook 2003 RRS feed

  • Domanda

  • Ciao a tutti 

    Tramite l'interoperabilità di Office 2003 devo accedere al calendario di Outlook, prelevare gli appuntamenti e salvarli in un file.

    Fin qui' nessun problema tranne che non riesco a determinare ... la cartella del calendario.

    Mi spiego meglio. Mediante il modello ad oggetti di outlook riesco a determinare ilo calendario di default:

    Microsoft.Office.Interop.Outlook.MAPIFolder CalendarFolderDefualt =Ambient.App.Session.GetDefaultFolder(OlDefaultFolders.olFolderCalendar);

    Quello che non riesco a fare è determinare un calendario diverso da quello di default.

    Usando l'interoperabilità di 2007\2010 determino la root folder :

                Microsoft.Office.Interop.Outlook.MAPIFolder rootFolder =Ambient.App.Session.DefaultStore.GetRootFolder();

    e poi con un ciclo in base al nome trovo la cartella che mi interessa ... ma non riesco a farlo con 2003 (che non ha il metodo GetRootFolder()).

    Ho provato a scandire la collection Folders di Outlook.Application ma mi risulta vuota....

    Dove mi sto perdendo?

    Thanks

    giovedì 2 agosto 2012 11:24

Risposte

  • Ciao.

    Prova a vedere se questo post ti risulta utile!

    Fammi sapere & Happy Coding ;)


    Sergio Meloni

    • Contrassegnato come risposta Irina Turcu martedì 7 agosto 2012 14:06
    giovedì 2 agosto 2012 17:24
  • grazie

    .. alla fine ho risolto con una funzione ricorsiva che riporto ... magari servisse a qualcuno.

    L'ho scritta un po' velocemente xchè ovviamente siamo sempre di fretta :-( ... ma funziona

    Ciao e grazie

    public static MAPIFolder FindFolder(Microsoft.Office.Interop.Outlook.MAPIFolder rootFolder,string FolderName)
            {
                Microsoft.Office.Interop.Outlook.MAPIFolder _f_ret = null;
                if(rootFolder==null)
                {
                    foreach (Microsoft.Office.Interop.Outlook.MAPIFolder fs in Ambient.App.Session.Folders)
                    {
                        rootFolder=fs;
                    }
                }
                foreach (Microsoft.Office.Interop.Outlook.MAPIFolder fs in rootFolder.Folders)
                {
                    if (fs.Name.ToLower().Equals(FolderName.ToLower()))
                    {
                        _f_ret = fs;
                        break;
                    }
                    else {
                        _f_ret=FindFolder(fs, FolderName);
                        if (_f_ret != null)
                            return _f_ret;
                    }
                }
                return _f_ret;
            }
    • Contrassegnato come risposta Irina Turcu martedì 7 agosto 2012 14:06
    venerdì 3 agosto 2012 10:00

Tutte le risposte

  • Ciao.

    Prova a vedere se questo post ti risulta utile!

    Fammi sapere & Happy Coding ;)


    Sergio Meloni

    • Contrassegnato come risposta Irina Turcu martedì 7 agosto 2012 14:06
    giovedì 2 agosto 2012 17:24
  • grazie

    .. alla fine ho risolto con una funzione ricorsiva che riporto ... magari servisse a qualcuno.

    L'ho scritta un po' velocemente xchè ovviamente siamo sempre di fretta :-( ... ma funziona

    Ciao e grazie

    public static MAPIFolder FindFolder(Microsoft.Office.Interop.Outlook.MAPIFolder rootFolder,string FolderName)
            {
                Microsoft.Office.Interop.Outlook.MAPIFolder _f_ret = null;
                if(rootFolder==null)
                {
                    foreach (Microsoft.Office.Interop.Outlook.MAPIFolder fs in Ambient.App.Session.Folders)
                    {
                        rootFolder=fs;
                    }
                }
                foreach (Microsoft.Office.Interop.Outlook.MAPIFolder fs in rootFolder.Folders)
                {
                    if (fs.Name.ToLower().Equals(FolderName.ToLower()))
                    {
                        _f_ret = fs;
                        break;
                    }
                    else {
                        _f_ret=FindFolder(fs, FolderName);
                        if (_f_ret != null)
                            return _f_ret;
                    }
                }
                return _f_ret;
            }
    • Contrassegnato come risposta Irina Turcu martedì 7 agosto 2012 14:06
    venerdì 3 agosto 2012 10:00