当我尝试处理传入的电子邮件(whithin NewMailEx
方法)时,如果我调用GetItemFromId
方法(访问冲突),我会收到异常。 Namespace.GetItemFromId
方法不需要storeId作为第二个参数吗?作为商店Id,我应该提供什么价值,以防我对提出事件的收件箱不感兴趣。换句话说,我只想查看有关收到的电子邮件的信息,无论它属于哪个帐户(收件箱)。
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;
}
答案 0 :(得分:1)
对于所有可选参数,您需要传递VT_ERROR类型的变体,其值为DISP_E_PARAMNOTFOUND。