我有一個COM Outlook插件,它在Outlook 2010中實現了一個功能區按鈕。它在一段時間內工作得很好。直到有人試圖在韓文版的Outlook中加載插件。功能區按鈕顯示,但點擊時不做任何操作。在調試器,我見下文每當我點擊區按鈕錯誤消息「ERROR:無法加載類型庫(HRESULT = 0x8002801d) 校驗帶有 的IDispatchImpl,CStockPropImpl,IProvideClassInfoImpl或IProvideCLassInfo2Impl指定TypelibID和主要版本」。COM Outlook插件功能區按鈕在韓語Outlook 2010中未響應
我從來沒有在這個按鈕的回調中打破我的斷點,所以我認爲在我的代碼上面的事件層中發生了一些事情。但我不知道爲什麼,我不知道爲什麼使用韓語版的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}};
奇怪的是,如果我用regsvr32註冊我的插件,在韓語中一切正常。 regsvr32正在向HKLM註冊。我自己的安裝程序將類註冊到HKCU。但是當我這樣做時,出於某種原因沒有找到類型庫。錯誤:無法加載Typelibrary。 (HRESULT = 0x8002801d)驗證IDispatchImpl,CStockPropImpl,IProvideClassInfoImpl或IProvideCLassInfo2Impl指定的TypelibID和主要版本 – 2010-11-03 18:52:41