C++ ATL Outlook 插件不加载

C++ ATL Outlook plugin does not load

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

于是就有了我的classCConnect:

的header开头
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 or ItemSend 事件?

What are the arguments of Attachment::SaveAsFile() I didn't find them in the documentation and is there any method Attachment::size()?

参见 MSDN 中的 SaveAsFile 方法说明。

另外,您可能会发现附件 class 的 Size 属性 很有帮助。