c++ - 在 Items.ItemAdd 事件之后获取 MailItem

标签 c++ events outlook mailitem

我试图在将电子邮件发送到已发送邮件文件夹后获取其大小和对话索引。

STDMETHODIMP CItemsEventListener::HandleItemAdd(DISPPARAMS* pDispParams, CString p_csDate, CString p_csTime)
{
    HRESULT l_hResult;
    CMailItem l_mailItem = NULL ;
    IDispatch * m_disp = pDispParams->rgvarg[1].pdispVal;
    l_hResult = m_disp->QueryInterface(IID_MailItemItems, (void**)&l_mailItem);
    //Do stuff
}

QueryInterface 方法生成异常。 (访问冲突)。 Ps:我使用与应用程序事件完全相同的 CMailItem 类,它运行良好。 我做错了什么?

如有任何帮助,我们将不胜感激。

最佳答案

首先,该方法是如何调用的?

其次,您正在访问第二个参数 (rgvarg[1].pdispVal)。您需要使用第一个参数 (rgvarg[0].pdispVal)。

关于c++ - 在 Items.ItemAdd 事件之后获取 MailItem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20972770/

相关文章:

c++ - 类模板的成员函数的显式实例化声明是否会导致类模板的实例化?

c# - 制作不传递任何信息的事件的标准是什么?

events - NodeJS process.stdin `end` 事件中断 http.server 操作

java - 使用 Java 生成的内容向 Outlook 发送电子邮件

internet-explorer - 发送邮件到 : form 时对邮件正文的限制

c++ - 如何仅在特定次数内遍历列表?即计算出前 5 个元素

c++ - 编译同一类的两个不同实现

python - 从 C++ 调用 PyTorch 时出错

javascript - 使用jquery以编程方式触发ionic 3元素的点击事件

vba - Outlook VBA 将 .xls 附件转换为 .xlsx