2008-11-14 3 views
3

모든 Outlook 항목의 본문을 검색하고 싶습니다. 4 가지 PIM 항목 (Notes/Tasks/Appointments/Contacts)에 대해이 작업을 수행하는 방법을 알고 있습니다. 그러나 COM 객체를 특정 항목 유형 (즉, ContactItem, AppointmentItem 등)으로 캐스팅하는 경우를 제외하고는 모두 코드가 동일합니다.Outlook Interop : 폴더의 모든 항목을 반복하는 방법

 

using Outlook = Microsoft.Office.Interop.Outlook 

List SearchFolderItems(Outlook.Folder folder) 
{ 
    List results = new List(); 
    foreach(object folderItem in folder.Items) 
    { 
     //GenericPIMItem is what I am wishing for 
     Outlook.GenericPIMItem item = (Outlook.GenericPIMItem)folderItem; 
     if(item.Body.ToLower().Contains("secret sauce")) 
     { 
     results.Add(item.Name); 
     } 
    } 
} 

 

몸은 내가 얻을하려는 네 PIM 항목의 일반적인 속성입니다 : 내 루프에서 같은 것을 할 수 있도록 이러한 PIM 항목에 대한 부모 클래스가있다. 부모 항목이 있습니까? 그렇지 않으면 API 디자인이 좋지 않은 것 같습니다. 부모 항목이있는 것처럼 보일 수 있도록 폴더 항목을 추상화 할 수 있다고 가정합니다. 또한 리플렉션을 사용하여이 작업을 수행하려고 시도했지만 실제로는 얻을 수 없습니다.

어떤 제안이라도 있습니까?

답변

1

설명서를 살펴보면 원하는 수업이 표시되지 않습니다.

Outlook 2007의 경우 Items 컬렉션에 포함될 수있는 개체 목록은 here입니다. 본문이없는 메일 그룹과 같은 것을 포함하므로 원하지 않는 것을 만들 수 있습니다.

0

PIM 항목은 공통 클래스에서 파생되었지만 com 개체를 통해 만들 수는 없지만 모두 itemsclass 속성도 반환합니다.이 속성은 해당 항목 유형의 열거 형입니다. 전송하기 전에 원하는 네 가지 유형의 상품에 대해이 속성을 확인할 수 있습니다.

관련 문제