오류

2011-07-05 8 views
0

질문 : 이메일을 열 전망 API를 사용하여 유효한 .MSG 파일로 나타납니다 무엇을 열 때 나는 다음과 같은 오류 메시지가 :
오류

Unable to cast COM object of type 'System.__ComObject' to interface type 'Microsoft.Office.Interop.Outlook.MailItem'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{00063034-0000-0000-C000-000000000046}' failed due to the following error: No such interface supported (Exception from HRESULT: 0x80004002 (E_NOINTERFACE)).

MSG 파일이 Outlook에서 잘 열리 며 형식이 표준 Outlook 메일 형식임을 확신합니다.

이 오류의 원인은 무엇입니까?


배경 : 내 동료의 하나는 PST의 등의 교류에서 많은 수의 사서함을 수출하고 가득 원래 사서함을 닮은 파일 구조를 생성하는 PST 파일에 대한 도구를 실행하고있다. MSG 파일. 예를 들어 : USERNAME \
\ USERNAME의 \ \
을 보낸 USERNAME의 \의 INBOX \ USERNAME
\

초안 그때에 .MSG 파일과 시도에 대한 이러한 폴더를 검색

지운 USERNAME \ \
Outlook API를 사용하여 엽니 다.

Outlook.Application app = new Microsoft.Office.Interop.Outlook.Application(); 

Outlook.NameSpace ns = app.GetNamespace("MAPI"); 

Outlook.MailItem item = (Outlook.MailItem)ns.OpenSharedItem(EmailPath); 

Subject = item.Subject; 
+0

이 예외를 생성 한 코드도 볼 수 있습니까? –

+0

대신 Outlook.NoteItem으로 전송 해보십시오. 도움이 되나요? –

+0

@Davide : 질문 끝의 코드가 예외를 생성했습니다. – Richard

답변

0

OOM의 모든 * Item 개체는 Type 속성을 구현합니다. 반환 된 개체를 MailItem으로 캐스팅하는 대신 리플렉션을 사용하여 동적으로 해당 속성을 검색하십시오.

OK 예외를 발생시키지 않고 관심있는 인터페이스를 테스트하려면 "as"연산자를 사용하십시오.