在Items.ItemAdd事件之后获取MailItem

时间:2014-01-07 13:23:11

标签: 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类,它运行良好。 我做错了什么?

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

首先,如何调用该方法?

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