Com InvokeHelper 问题

发布于 2024-11-05 20:43:25 字数 656 浏览 1 评论 0原文

我在互联网上找到了以下代码片段,它从模板创建了一封电子邮件:

LPDISPATCH _Application::CreateItemFromTemplate(LPCTSTR TemplatePath, const VARIANT& InFolder)
{
    LPDISPATCH result;
    static BYTE parms[] =
        VTS_BSTR VTS_VARIANT;
    InvokeHelper(0x10b, DISPATCH_METHOD, VT_DISPATCH, (void*)&result, parms,
        TemplatePath, &InFolder);
    return result;
}

这段代码的问题是它需要最后一个参数来拥有一个文件夹。使用我的代码没有文件夹,发送后的电子邮件将上传到另一个应用程序中。我尝试将 NULL 作为最后一个参数传递,但这只会引发异常。

我想要实现的目标是使用模板打开电子邮件,并且该模板在用户的 Outlook 桌面上可见。因此,我的问题是我应该将什么作为参数传递给这个 InvokeHelper 方法?是只是最后一个参数,还是最后一个参数是NULL,但是其他的都变了,如果是的话又变成了什么?

谢谢

I have found the following snippet of code on the internet, which creates an email from a template:

LPDISPATCH _Application::CreateItemFromTemplate(LPCTSTR TemplatePath, const VARIANT& InFolder)
{
    LPDISPATCH result;
    static BYTE parms[] =
        VTS_BSTR VTS_VARIANT;
    InvokeHelper(0x10b, DISPATCH_METHOD, VT_DISPATCH, (void*)&result, parms,
        TemplatePath, &InFolder);
    return result;
}

The problem that I have with this code is that it requires the last parameter to have a folder. With my code there is no folder, the email after it sent will be uploaded into another application. I have tried passing NULL as the last parameter, but this just throws an exception.

All I am trying to achieve is to open an email using a template with it visible on the user's Outlook Desktop. Therefore, my question is what should I pass as the parameters to this InvokeHelper method? Is it just the last parameter, or the last parameter be NULL, but the others changed, if so to what?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

百善笑为先 2024-11-12 20:43:25

试试这个代码:

try 
{
    long rc = -1;
    static BYTE parms[] = VTS_BSTR VTS_BSTR VTS_BSTR VTS_BSTR VTS_BSTR VTS_I2;

    m_eventDispatchDriver.InvokeHelper(0x6003000c, DISPATCH_METHOD, VT_I4, (void*)&rc, parms,
                                       _UDATA(strSubject), 
                                       _UDATA(strBody), 
                                       _UDATA(strBody),
                                       _UDATA(strRecipients), 
                                       _UDATA(strAttachments),
                                       0 /*SendWithMailToIfOLDown*/);

    if (rc == 0)
        return RESULT_OK;
    else
        return RESULT_E_FAIL;
}
catch(COleDispatchException *pExeption)
{
    _UCHAR szError[256];
    pExeption->GetErrorMessage(szError, 256);
    LOG(failure: %s", _UADATA(strCommand), szError);
    return RESULT_E_FAIL;
}

其中:

strSubject = ""

strAttachments = ""

strRecipients = "[email protected ]"

strBody = ""

在你让它工作之后,你可以使用参数......

try this code:

try 
{
    long rc = -1;
    static BYTE parms[] = VTS_BSTR VTS_BSTR VTS_BSTR VTS_BSTR VTS_BSTR VTS_I2;

    m_eventDispatchDriver.InvokeHelper(0x6003000c, DISPATCH_METHOD, VT_I4, (void*)&rc, parms,
                                       _UDATA(strSubject), 
                                       _UDATA(strBody), 
                                       _UDATA(strBody),
                                       _UDATA(strRecipients), 
                                       _UDATA(strAttachments),
                                       0 /*SendWithMailToIfOLDown*/);

    if (rc == 0)
        return RESULT_OK;
    else
        return RESULT_E_FAIL;
}
catch(COleDispatchException *pExeption)
{
    _UCHAR szError[256];
    pExeption->GetErrorMessage(szError, 256);
    LOG(failure: %s", _UADATA(strCommand), szError);
    return RESULT_E_FAIL;
}

where:

strSubject = ""

strAttachments = ""

strRecipients = "[email protected]"

strBody = ""

after you get this to work, you can play with the parameters...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文