Namespace.GetItemFromId异常

时间:2014-02-19 09:37:47

标签: c++ outlook

当我尝试处理传入的电子邮件(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;
}

1 个答案:

答案 0 :(得分:1)

对于所有可选参数,您需要传递VT_ERROR类型的变体,其值为DISP_E_PARAMNOTFOUND。