无法加载c++ ATL Outlook插件

C++ ATL Outlook plugin does not load

本文关键字:Outlook 插件 ATL c++ 加载      更新时间:2023-10-16

我使用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()方法?

您正在尝试处理Send或ItemSend事件吗?

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

请参阅MSDN中的SaveAsFile方法描述。

你可能会发现附件类的Size属性很有用。