0
當我嘗試處理傳入的電子郵件(如果NewMailEx
方法),如果我調用GetItemFromId
方法(訪問衝突),則會收到異常。 Namespace.GetItemFromId
方法是否需要storeId作爲第二個參數?如果我對提交事件的收件箱不感興趣,我應該提供什麼樣的價值作爲商店ID。換句話說,我只想收回有關收到的電子郵件的信息,無論它屬於哪個帳戶(收件箱)。Namespace.GetItemFromId異常
CMailItem m_mailItem = NULL;
CApplication l_application;
l_application.CreateDispatch("Outlook.Application");
CNameSpace l_namespace = l_application.GetNamespace(_T("MAPI"));
CString ItemId((pDispParams->rgvarg)->bstrVal);
m_mailItem = l_namespace.GetItemFromID(ItemId, /*whatIdToProvide*/??);
我試圖傳遞一個emty值,但這不起作用。
這裏是GetItemFromId定義(自動生成的)
LPDISPATCH GetItemFromID(LPCTSTR EntryIDItem, const VARIANT& EntryIDStore)
{
LPDISPATCH result;
static BYTE parms[] = VTS_BSTR VTS_VARIANT;
InvokeHelper(0x2109, DISPATCH_METHOD, VT_DISPATCH, (void*)&result, parms,EntryIDItem, &EntryIDStore);
return result;
}
感謝您的回答@Dmitry,現在更多地拋出了excepion。現在我怎樣才能檢查收到的項目是否是一個mailItem? – Kira
您可以爲IMailItem接口顯式地使用QueryInterface()。或者使用IDIspatch :: GetIDsOfNames/Invoke讀取Class屬性。 –