Как открыть запись о встрече с помощью кнопки на ленте

Мне нужно открыть элемент встречи Outlook с помощью кнопки на ленте.

var item = control.Context as Inspector;
AppointmentItem appointmentItem = item.CurrentItem as AppointmentItem;
    if (appointmentItem != null)
        {
            if (appointmentItem.EntryID == null)
            {
                appointmentItem.Subject = "New Appointment";
                appointmentItem.Body = "Welcome to new appointment";
            }
        }

Он должен открыть окно встречи, но выдает ошибку нулевой ссылки, как в этой строке кода «var item = control.Context as Inspector;» элемент равен нулю.


person Prateek    schedule 07.12.2017    source источник


Ответы (1)


Вот пример кода XML.

<?xml version="1.0" encoding="UTF-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="Ribbon_Load">
  <ribbon>
    <tabs>
      <tab idMso="TabAddIns">
        <group id="MyGroup"
               label="My Group">
                            <button
                                    id="btnNewAppointment"
                                    label="New Appointment"
                                    onAction="NewAppointment"
                                    imageMso="NewAppointment"
                                    size="large"
                                    screentip="New Appointment"
                                    supertip="Create a new appointment"
                                    />
        </group>
      </tab>
    </tabs>
  </ribbon>
</customUI>

А вот пример кода C #.

public void NewAppointment(Office.IRibbonControl control)
{
    try
    {
        Microsoft.Office.Interop.Outlook.Application app = Globals.ThisAddIn.Application;
        Microsoft.Office.Interop.Outlook.AppointmentItem newAppointment = (Microsoft.Office.Interop.Outlook.AppointmentItem)
        app.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olAppointmentItem);
        newAppointment.Start = DateTime.Now.AddHours(2);
        newAppointment.End = DateTime.Now.AddHours(3);
        newAppointment.Location = "ConferenceRoom #2345";
        newAppointment.Body = "We will discuss progress on the group project.";
        newAppointment.AllDayEvent = false;
        newAppointment.Subject = "Group Project";
        newAppointment.Recipients.Add("Roger Harui");
        Microsoft.Office.Interop.Outlook.Recipients sentTo = newAppointment.Recipients;
        Microsoft.Office.Interop.Outlook.Recipient sentInvite = null;
        sentInvite = sentTo.Add("Holly Holt");
        sentInvite.Type = (int)Microsoft.Office.Interop.Outlook.OlMeetingRecipientType.olRequired;
        sentInvite = sentTo.Add("David Junca ");
        sentInvite.Type = (int)Microsoft.Office.Interop.Outlook.OlMeetingRecipientType.olOptional;
        sentTo.ResolveAll();
        newAppointment.Save();
        newAppointment.Display(true);
    }
    catch (Exception ex)
    {
        //MessageBox.Show("The following error occurred: " + ex.Message);
    }
}

Вот статья Microsoft Как: программно создавать встречи

person aduguid    schedule 21.12.2017