我有一个 COM Outlook 插件,它在 Outlook 2010 中实现了一个功能区按钮。它已经运行了很长一段时间。直到有人试图在韩语版 Outlook 中加载插件。功能区按钮显示,但单击时不执行任何操作。在调试器中,每当我单击功能区按钮“错误:无法加载 Typelibrary。(HRESULT = 0x8002801d)验证 TypelibID 和使用 IDispatchImpl、CStockPropImpl、IProvideClassInfoImpl 或 IProvideCLassInfo2Impl 指定的主要版本”时,我都会看到下面的错误消息。
我从来没有在这个按钮的回调中达到我的断点,所以我认为我的代码上方的事件层发生了一些事情。但我不知道是什么,也不知道为什么使用韩文版的 Outlook 会有什么不同。有人有想法么?
我认为它与定义我的主插件支持的接口时使用的 LIBID_Office 宏有关:
, public IDispatchImpl<IRibbonExtensibility,
&__uuidof(IRibbonExtensibility),
&LIBID_Office, /* wMajor = */ 2, /* wMinor = */ 4>
宏定义为
extern "C" const GUID __declspec(selectany) LIBID_Office =
{0x2df8d04c,0x5bfa,0x101b,{0xbd,0xe5,0x00,0xaa,0x00,0x44,0xde,0x52}};