У меня есть надстройка COM Outlook, которая реализует кнопку ленты в Outlook 2010. Она довольно хорошо работает в течение достаточно долгого времени. Пока кто-то не пытался загрузить надстройку в корейской версии Outlook. Кнопки ленты отображаются, но ничего не делают при нажатии. В отладчике я вижу сообщение об ошибке ниже всякий раз, когда нажимаю кнопку ленты "ОШИБКА: невозможно загрузить библиотеку типов. (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}};