C ++ ATL Outlook插件无法加载

时间:2015-06-09 08:41:21

标签: c++ outlook-addin email-attachments atl

我使用Visual Studio Community 2013为64位版本的Outlook 2013制作了Outlook插件。我希望在发送邮件时使用邮件中的附件。 即使注册表中有LoadBehavior=3,Outlook也不会加载该插件,如果我尝试在Outlook中加载它,我什么也得不到。

所以我的班级CConnect标题的开头是:

class ATL_NO_VTABLE CConnect :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CConnect, &CLSID_Connect>,
public IDispatchImpl<IConnect, &IID_IConnect, &LIBID_PluginOutlookLib, /*wMajor =*/ 1, /*wMinor =*/ 0>,
public IDispatchImpl<_IDTExtensibility2, &__uuidof(_IDTExtensibility2), &LIBID_AddInDesignerObjects, /* wMajor = */ 1>,
public IDispEventSimpleImpl < 1, CConnect, &__uuidof(Outlook::ItemEvents) >
{
public:
CConnect()
{
};
void __stdcall OnSend(IDispatch * Item, bool Cancel);

BEGIN_SINK_MAP(CConnect)
    SINK_ENTRY_INFO(1,__uuidof(Outlook::ItemEvents),0x0000F005,OnSend,&fiMailItemEvents)
END_SINK_MAP()

DECLARE_REGISTRY_RESOURCEID(IDR_CONNECT)

BEGIN_COM_MAP(CConnect)
    COM_INTERFACE_ENTRY(IConnect)
    COM_INTERFACE_ENTRY(_IDTExtensibility2)
END_COM_MAP()

插件注册表中有一个条目。

有人知道如何在Outlook中成功加载插件吗?

如果附件的大小大于msize,我想用SaveAsFile()保存它并进行处理。

Attachment::SaveAsFile()我在文档中找不到它们的论点是什么?有Attachment::size()方法吗?

1 个答案:

答案 0 :(得分:0)

您是否尝试处理SendItemSend事件?

  

Attachment :: SaveAsFile()的参数是什么?我没有在文档中找到它们,是否有任何方法Attachment :: size()?

请参阅MSDN中的SaveAsFile方法说明。

此外,您可能会发现“附件”类的Size属性很有用。