0
캘린더 약속과 관련하여 Outlook Addin에서 작업하고 있습니다. 내 문제는 초기 약속 제목을 저장 한 다음 추가 작업을 트리거하기 위해 업데이트 된 경우 저장할 때 확인해야한다는 것입니다. Addin/Ribbon의 단 하나의 인스턴스 만 있다는 것을 이해했습니다. 처음에는 정적 변수를 사용했지만 여러 창이 열리면 제목이 섞여서 도움이되지 않습니다. 내 질문 : 1) 약속과 관련된 변수를 저장할 위치는 어디입니까? 2) 어떤 객체가 쓰기/저장/전송/메소드를 호출했는지 탐지하는 방법은 무엇입니까? 어떤 도움이 많이 이해할 수있을 것이다VSTO 추가 항목 관련 변수 및 호출 항목 ID
public partial class ThisAddIn
{
public static Outlook.AppointmentItem appointmentItem;
public static Addin_Ribbon ribbon;
Outlook.Inspectors inspectors;
// Needs to be saved for each appointments
public static string initialMeetingSubject = "";
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
inspectors = this.Application.Inspectors;
inspectors.NewInspector +=
new Microsoft.Office.Interop.Outlook.InspectorsEvents_NewInspectorEventHandler(Inspectors_NewInspector);
}
protected override Microsoft.Office.Core.IRibbonExtensibility CreateRibbonExtensibilityObject()
{
ribbon = new MyAddin_Ribbon();
return ribbon;
}
void Inspectors_NewInspector(Microsoft.Office.Interop.Outlook.Inspector Inspector)
{
// Save current appointment reference
appointmentItem = Inspector.CurrentItem as Outlook.AppointmentItem;
if (appointmentItem != null)
{
(appointmentItem as Microsoft.Office.Interop.Outlook.ItemEvents_10_Event).Send += _appointment_Send;
(appointmentItem as Microsoft.Office.Interop.Outlook.ItemEvents_10_Event).BeforeDelete += _appointment_Delete;
(appointmentItem as Microsoft.Office.Interop.Outlook.ItemEvents_10_Event).Write += _appointment_Write;
(appointmentItem as Microsoft.Office.Interop.Outlook.ItemEvents_10_Event).Open += _appointment_Open;
(appointmentItem as Microsoft.Office.Interop.Outlook.ItemEvents_10_Event).Close += _appointment_Close;
// Save initial value to compare during appointment save
ThisAddIn.initialMeetingSubject = appointmentItem.Subject;
}
}
private void _appointment_Write(ref bool Cancel)
{
Logger.WriteLine(LogLevel.Debug, "Appointment WRITE Initial Subject: " +initialMeetingSubject + “ Updated Subject: “ + ThisAddIn.appointmentItem.Subject);
}
}
: 여기
내 코드의 관련 추출물이다.
잘 맞는 대답은 래퍼를 개발하는 것입니다. https://msdn.microsoft.com/en-us/library/ff973716(v=office.14).aspx 나는 이것이 어떻게 도움이 될지 아직 확실하지 않다. – Salim