c++ - 命名空间.GetItemFromId 异常

标签 c++ outlook

当我尝试处理传入的电子邮件(在 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*/??);

我试图传递一个空值,但这没有用。

这是 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;
}

最佳答案

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

关于c++ - 命名空间.GetItemFromId 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21876401/

相关文章:

c++ - 使用类来维护几个常量变量是个好主意吗

c# - 构造函数 block 是可以接受的样式吗?

c++ - 如何确定 C++ 控制台应用程序中的当前键盘语言?

c++ - 如何在 Windows 中编写自己的 'filesystem'?

C++ MinGW 链接器错误 _ZNSt7__cxx1112basic_stringlcSt11char_traitslcESalcEE10_M_replaceEjjPKcj

java - 如何从 Java 发送一封在 Outlook 中自动过期的电子邮件?

outlook - 如何更改 Outlook 2010 中所有假期的颜色?

vba - 没有 .Display 的电子邮件正文为空

c# - 以编程方式检索 Outlook 照片,无需最终用户登录

vba - 如何在 Excel/VBA 中通过电子邮件将工作表发送给自己(根据打开的 Outlook 帐户动态更改电子邮件)