Compartir a través de


Crear una excepción para una cita en una serie de citas periódicas

En este ejemplo se usa un objeto Exception para crear una excepción en un patrón de periodicidad estándar de una cita.

Ejemplo

Nota:

El siguiente ejemplo de código es un fragmento de Programming Applications for Microsoft Office Outlook 2007 (Programación de aplicaciones para Microsoft Office Outlook 2007).

Una vez que se elimina o cambia una instancia de cita de una cita periódica, Outlook crea un objeto Exception. El objeto Exception le permite crear una excepción en un patrón de periodicidad estándar de una cita. Las propiedades del objeto contienen los cambios realizados en la instancia de la cita. La colección Exceptions contiene todos los objetos Exception de una cita periódica y está asociada al objeto RecurrencePattern de la cita.

Para obtener el objeto AppointmentItem que representa la excepción en el patrón de periodicidad original de la cita periódica, use la propiedad AppointmentItem del objeto Exception. Al usar los métodos y propiedades del objeto AppointmentItem devuelto, puede establecer las propiedades de la excepción de la cita.

Cuando se trabaja con elementos de citas periódicas, debe liberar todas las referencias anteriores, obtener nuevas referencias al elemento de cita periódico antes de tener acceso o modificar el elemento y liberar estas referencias, tan pronto como termine y haya guardado los cambios. Este procedimiento se aplica al objeto periódico AppointmentItem y a cualquier objeto Exception o RecurrencePattern. Para liberar una referencia en Visual Basic, establezca el objeto existente en Nothing. En C#, libere explícitamente la memoria para ese objeto.

Tenga en cuenta que incluso después de liberar la referencia e intentar obtener una referencia nueva, si aún hay una referencia activa, mantenida por otro complemento u Outlook, a uno de los objetos anteriores, la referencia nueva aún apuntará a una copia obsoleta del objeto. Por lo tanto, es importante liberar las referencias cuando termine con la cita periódica.

En el siguiente ejemplo de código, CreateExceptionExample cambia el asunto de la cita periódica que se creó en el tema Buscar una cita específica de una serie de citas periódicas y, a continuación, usa la propiedad AppointmentItem del objeto Exception resultante para recuperar el AppointmentItem que corresponde a la excepción de la cita. Después, CreateExceptionExample cambia las horas de inicio y fin de la excepción de la cita.

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 CreateExceptionExample()
{
    Outlook.AppointmentItem appt = Application.Session.
        GetDefaultFolder(Outlook.OlDefaultFolders.olFolderCalendar).
        Items.Find(
        "[Subject]='Recurring Appointment DaysOfWeekMask Example'")
        as Outlook.AppointmentItem;
    if (appt != null)
    {
        try
        {
            Outlook.RecurrencePattern pattern =
                appt.GetRecurrencePattern();
            Outlook.AppointmentItem myInstance =
                pattern.GetOccurrence(DateTime.Parse(
                "7/21/2006 2:00 PM"))
                as Outlook.AppointmentItem;
            if (myInstance != null)
            {
                myInstance.Subject = "My Exception";
                myInstance.Save();
                Outlook.RecurrencePattern newPattern =
                    appt.GetRecurrencePattern();
                Outlook.Exception myException =
                    newPattern.Exceptions[1];
                if (myException != null)
                {
                    Outlook.AppointmentItem myNewInstance =
                        myException.AppointmentItem;
                    myNewInstance.Start =
                        DateTime.Parse("7/21/2006 1:00 PM");
                    myNewInstance.End =
                        DateTime.Parse("7/21/2006 2:00 PM");
                    myNewInstance.Save();
                }
            }
        }
        catch (Exception ex)
        {
            Debug.WriteLine(ex.Message);
        }
    }
}

Vea también