Ouverture et affichage du contenu d’un fichier iCalendar
Cet exemple montre comment ouvrir et afficher le contenu d'un fichier iCalendar, selon que le fichier contient un rendez-vous unique ou périodique ou qu'il contient un groupe de rendez-vous.
Exemple
Cet exemple de code tente d'abord d'utiliser la méthode OpenSharedItem de l'objet NameSpace pour ouvrir le fichier iCalendar en tant que fichier iCalendar de rendez-vous unique. S'il réussit, il affiche les détails de l'élément de rendez-vous dans une fenêtre d'inspecteur. Toutefois, il ne copie pas l'élément dans la banque par défaut. S'il ne parvient pas à ouvrir le fichier en tant que fichier iCalendar de rendez-vous unique, il utilise la méthode OpenSharedFolder de l'objet NameSpace pour tenter d'importer le contenu en tant que nouveau calendrier dans la banque par défaut. Si l'importation réussit, il affiche le calendrier dans une fenêtre d'explorateur.
Cet exemple de code permet d’utiliser la classe d’assistance OutlookItem, définie dans la rubrique décrivant comment créer une classe d’assistance pour permettre d’accéder aux membres éléments Outlook courants, pour appeler facilement la méthode OutlookItem.Display pour afficher l’élément de rendez-vous sans devoir d’abord distribuer l’élément.
Si vous utilisez Visual Studio pour tester cet exemple de code, vous devez d’abord ajouter une référence au composant Bibliothèque d’objets Microsoft Outlook 15.0 et spécifier la variable lorsque vous importez l’espace de noms Microsoft.Office.Interop.Outlook. L'instruction Importer ou utilisation ne doit pas se produire juste avant les fonctions de l'exemple de code, mais doit être ajoutée avant la déclaration publique. Les lignes de code suivantes montrent comment effectuer l’importation et l’affectation dans Visual Basic et dans C#.
Imports Outlook = Microsoft.Office.Interop.Outlook
using Outlook = Microsoft.Office.Interop.Outlook;
Private Sub OpenICalendarFile(ByVal fileName As String)
If String.IsNullOrEmpty(fileName) Then
Throw New ArgumentException(_
"Parameter must contain a value.", "exportFileName")
End If
If Not File.Exists(fileName) Then
Throw New FileNotFoundException(fileName)
End If
'' First try to open the icalendar file as an appointment
'' (not a calendar folder).
Dim item As Object = Nothing
Try
item = Application.Session.OpenSharedItem(fileName)
Catch
End Try
If Not item Is Nothing Then
'' Display the item
Dim olItem As OutlookItem = New OutlookItem(item)
olItem.Display()
Return
End If
'' If unsucessful in opening it as an item,
'' try opening it as a folder
Dim importedFolder As Outlook.Folder = Nothing
Try
importedFolder = TryCast( _
Application.Session.OpenSharedFolder(fileName), _
Outlook.Folder)
Catch
End Try
'' If sucessful, open the folder in a new explorer window
If Not importedFolder Is Nothing Then
Dim explorer As Outlook.Explorer = _
Application.Explorers.Add( _
importedFolder, _
Outlook.OlFolderDisplayMode.olFolderDisplayNormal)
explorer.Display()
End If
End Sub
private void OpenICalendarFile(string fileName)
{
if (string.IsNullOrEmpty(fileName))
throw new ArgumentException("exportFileName",
"Parameter must contain a value.");
if (!File.Exists(fileName))
throw new FileNotFoundException(fileName);
// First try to open the icalendar file as an appointment
// (not a calendar folder).
object item = null;
try
{
item = Application.Session.OpenSharedItem(fileName);
}
catch
{ }
if (item != null)
{
// Display the item
OutlookItem olItem = new OutlookItem(item);
olItem.Display();
return;
}
// If unsucessful in opening it as an item,
// try opening it as a folder
Outlook.Folder importedFolder = null;
try
{
importedFolder = Application.Session.OpenSharedFolder(
fileName, Type.Missing, Type.Missing, Type.Missing)
as Outlook.Folder;
}
catch
{ }
// If sucessful, open the folder in a new explorer window
if (importedFolder != null)
{
Outlook.Explorer explorer =
Application.Explorers.Add(importedFolder,
Outlook.OlFolderDisplayMode.olFolderDisplayNormal);
explorer.Display();
}
}