Wenn der Benutzer das Vorschaufenster verwendet. Das NewInspector-Ereignis wird nicht ausgelöst. Worauf sollte ich mich einlassen?Outlook-Add-In, wie Sie feststellen können, ob der Benutzer neue Zeiten in der E-Mail aus der Besprechungsanfrage auswählt
Wenn der Benutzer die Nachricht öffnet, bekomme ich dieses Ereignis.
Application.Inspectors.NewInspector += InspectorOnNewInspector;
From there i can hook to
var appointmentItem = ((Outlook.AppointmentItem) inspector.CurrentItem);
((Outlook.ItemEvents_10_Event) appointmentItem).PropertyChange += ThisAddIn_PropertyChange;
vollständige Code
öffentlichen Outlook.Inspector CurrentInspector {get; einstellen; } public string Organizer {get; einstellen; }
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
Application.Inspectors.NewInspector += InspectorOnNewInspector;
Application.ActiveExplorer().SelectionChange += MeetingDurationAddIn_SelectionChange;
}
private void MeetingDurationAddIn_SelectionChange()
{
try
{
var currentView = Application.ActiveExplorer().CurrentView;
if (currentView is Outlook.CalendarView)
{
Console.WriteLine("");
}
}
catch
(Exception e)
{
Console.WriteLine(e);
}
}
private void InspectorOnNewInspector(Outlook.Inspector inspector)
{
try
{
if (inspector.CurrentItem is Outlook.AppointmentItem)
{
CurrentInspector = inspector;
var creationTime = ((Outlook.AppointmentItem)CurrentInspector.CurrentItem).CreationTime;
if (creationTime == DateTime.Parse("1/1/4501 12:00:00 AM"))
{
NewAppointment = true;
}
if (CurrentInspector.CurrentItem is Outlook.AppointmentItem)
{
Appointment = true;
}
if (CurrentInspector.CurrentItem is Outlook.MeetingItem)
{
Appointment = false;
}
var appointmentItem = ((Outlook.AppointmentItem)CurrentInspector.CurrentItem);
((Outlook.ItemEvents_10_Event) appointmentItem).Send += OnSend;
((Outlook.ItemEvents_10_Event) appointmentItem).PropertyChange += ThisAddIn_PropertyChange;
MeetingId = appointmentItem.GlobalAppointmentID;
Organizer = appointmentItem.Organizer;
EditDuration();
}
}
catch
(Exception e)
{
Console.WriteLine(e);
}
}
Ich habe den Code hinzugefügt. Netter Fang. aber das bringt mich nicht zum Vorschau-Artikel. –
Siehe die aktualisierte Antwort. –
Aktualisierte den Code .. können Sie mir mit der Zeile if (currentView ist Outlook.CalendarView) helfen. Das ist nicht richtig. Ich denke, ich sollte nach etwas anderem suchen. –