2015-02-06 3 views
0

Visual Studio (C#)의 Outlook 2010 추가 기능.VSTO C# - Outlook Addin - .AttachmentSelections 개체 간의 차이점

Explorer에서 가져온 .AttachmentSelection (받은 편지함에서 메일 항목 미리보기) 및 Inspector에서 검색 한 .AttachmentSelection (두 번 클릭하여 실제로 메일을 열 때)의 차이점을 알 수있는 방법을 찾으려고합니다. 유효 '경우'는 먼저, 내부 사람 모두가 실패하면

public void ButtonClick(Office.IRibbonControl control) 
{ 
    //right clicked attachment item -> context menu 
    if (control.Context is Outlook.AttachmentSelection) 
    { 
     if (control.Context is Outlook.Inspector) 
      MessageBox.Show("inspector"); 
     else if (control.Context is Outlook.Explorer) 
      MessageBox.Show("explorer"); 
    } 
} 

그러나 : 아웃룩

에 첨부 파일 자체를 마우스 오른쪽 버튼으로 클릭하면 별도의 창), 내가 좋아하는 뭔가를 시도하고있다. 왜냐하면 컨텍스트가 Outlook Inspector 나 Outlook Explorer가 아니기 때문입니다. 마이크로 소프트의 샘플과 설명은 그다지 도움이되지 않았습니다. 코드 스 니펫의 경우 발신인을 확인하는 데 더 깊이 가야 함 (explorer \ inspector)없이 첨부 파일에 메시지 함만 표시됩니다.

필자는 사용자가 첨부 파일을 마우스 오른쪽 버튼으로 클릭하고 첨부 파일을 사용하지 않고 정보를 추출하는 Mailitem을 가져와야합니다.

어떤 아이디어가 있습니까? 누구?

답변

1

에서 당신은 첨부 파일 탐색기 또는 검사기 창에서 열린 여부를 결정하기 위해 Application 클래스의 ActiveWindow 방법을 사용할 수 있습니다. 메서드는 바탕 화면에 현재 Microsoft Outlook 창을 나타내는 개체 (Explorer 또는 Inspector 개체)를 반환합니다. Outlook 탐색기 또는 관리자가 열려 있지 않으면 아무 것도 반환하지 않습니다.

또한 Outlook 항목의 BeforeAttachmentPreview 이벤트가 도움이 될 수 있습니다. 부모 개체의 인스턴스와 관련된 첨부 파일을 미리보기 전에 해고됩니다. 나는. 활성 탐색기의 읽기 창에있는 첨부 파일 스트립이나 활성 검사기에서 첨부 파일을 미리보기 전에 이벤트가 시작됩니다. 작업을 취소 할 수 있습니다. cancel 매개 변수를 true로 설정하면됩니다.

0

어때요? 바로 MSDN

Outlook.MailItem mailItem = Inspector.CurrentItem as Outlook.MailItem; 
if (mailItem != null) 
     { 
      if (mailItem.EntryID == null) 
      { 
       mailItem.Subject = "This text was added by using code"; 
       mailItem.Body = "This text was added by using code"; 
      } 

    } 
+0

의견을 보내 주셔서 감사합니다. 위와 같이 Outlook.AttachmentSelection을 수신하면 메일 항목에 캐스팅 될 수 없습니다. – Stavm