Mostrar un calendario compartido de un destinatario
Este ejemplo muestra cómo visualizar un calendario compartido de un destinatario utilizando los métodos CreateRecipient(String) y GetSharedDefaultFolder(Recipient, OlDefaultFolders).
Ejemplo
Nota:
El siguiente ejemplo de código es un fragmento de Aplicaciones de programación para Microsoft Office Outlook 2007.
Los elementos que se pueden enviar como los objetos MailItem siempre exponen la propiedad Recipients que, a su vez, le permite acceder a la colección Recipients para el elemento que se puede enviar. Para crear un objeto Recipient que no está sujeto a la colección Recipients de un elemento, use el método CreateRecipient(String) del objeto NameSpace. Luego, pase este objeto independiente Recipient al método GetSharedDefaultFolderr(Recipient, OlDefaultFolders), que devuelve una carpeta compartida de Exchange. Después, puede abrir la carpeta compartida de Exchange y mostrarla en una ventana del explorador. GetSharedDefaultFolder se utiliza en escenarios delegados de Exchange en los que el delegado tiene permiso para acceder a la carpeta del delegador. Antes de pasar el objeto Recipient al método GetSharedDefaultFolder, debe resolverlo. Para resolver un objeto Recipient, llame a su método Resolve().
En el siguiente ejemplo de código, DisplayManagerCalendar abre y muestra la carpeta Calendario del administrador del usuario actual, llamando a CreateRecipient y GetSharedDefaultFolder. Se muestra un cuadro de diálogo de alerta si el usuario no tiene permiso para abrir la carpeta Calendario del administrador o si se produce un error.
Nota:
Al crear un objeto Recipient utilizando el método CreateRecipient del objeto Namespace o el método Add(String) de la colección Recipients, debe proporcionar un nombre del destinatario. Luego, el Recipient se resuelve con este nombre. Un nombre del destinatario puede tomar cualquiera de los siguientes formatos:
- Nombre para mostrar
- Alias
- Dirección del protocolo simple de transferencia de correo (SMTP)
Si usa Visual Studio para probar este ejemplo de código, primero debe agregar una referencia al componente de la biblioteca de objetos de Microsoft Outlook 15.0 y especificar la variable de Outlook al importar el espacio de nombres Microsoft.Office.Interop.Outlook. La instrucción using no debe producirse directamente antes de las funciones en el ejemplo de código, pero debe agregarse antes de la declaración de clase pública. La siguiente línea de código muestra cómo realizar la importación y la asignación en C#.
using Outlook = Microsoft.Office.Interop.Outlook;
private void DisplayManagerCalendar()
{
Outlook.AddressEntry addrEntry =
Application.Session.CurrentUser.AddressEntry;
if (addrEntry.Type == "EX")
{
Outlook.ExchangeUser manager =
Application.Session.CurrentUser.
AddressEntry.GetExchangeUser().GetExchangeUserManager();
if (manager != null)
{
Outlook.Recipient recip =
Application.Session.CreateRecipient(manager.Name);
if (recip.Resolve())
{
try
{
Outlook.Folder folder =
Application.Session.GetSharedDefaultFolder(
recip, Outlook.OlDefaultFolders.olFolderCalendar)
as Outlook.Folder;
folder.Display();
}
catch
{
MessageBox.Show("Could not open manager's calendar.",
"GetSharedDefaultFolder Example",
MessageBoxButtons.OK,
MessageBoxIcon.Error);
}
}
}
}
}