2014-01-09 4 views
0

전자 메일을 보낼 때 첨부 파일 수를 얻으려고합니다 (Application.Send 이벤트). 사용중인 코드는 다음과 같습니다.보낸 전자 메일의 첨부 파일 수를 가져옵니다.

_ApplicationPtr pApp("Outlook.Application"); 
_NameSpacePtr pNameSpace; 
MAPIFolderPtr pOutbox; 
_ItemsPtr pOutboxItems; 
_MailItemPtr mi; 
pNameSpace = pApp->GetNamespace(L"MAPI"); 
pOutbox = pNameSpace->GetDefaultFolder(olFolderOutbox); 
pOutboxItems = pOutbox->Items; 
mi=pOutboxItems->GetLast(); 
long att_Sent=mi->GetAttachments()->Count;//Exception here 
mi->Delete(); 

항상 mi-> GetAttachments-> Count 행 (액세스 위반)에서 예외가 발생합니다. 메일 항목 포인터가 null이라고 생각합니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

+1

온 전성 체크를 추가하는 것은 확실히 좋은 방법입니다. 'mi = pOutboxItems-> GetLast()와 같이; 주장하다 (mi); – Till

답변

1

보낼 편지함의 마지막 항목을 검색하는 이유는 무엇이며 보낼 편지함이 아닐 수 있습니다. Application.ItemSend가 전송 될 때 보낼 편지함 폴더에 아직 메시지가 없으므로 null이 반환 될 가능성이 큽니다. 사건 발생?

Application.ItemSend 이벤트는 항목을 인수로 전달하지만 사용하지 않는 이유는 무엇입니까?

관련 문제