0

Outlook 2010 にリボン ボタンを実装する COM Outlook アドインがあります。誰かが韓国語版の Outlook でアドインを読み込もうとするまでは。リボン ボタンは表示されますが、クリックしても何も起こりません。デバッガーで、リボン ボタンをクリックするたびに、次のエラー メッセージが表示されます。

このボタンのコールバックでブレークポイントにヒットしたことがないので、コードの上のイベントレイヤーで何かが起こっていると思います. しかし、韓国語版の 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}};
4

1 に答える 1

0

失敗している typelib ルックアップは、COM アドイン独自の typelib です。ProcMon は、韓国の Outlook が HKCR から typelib を取得しようとして失敗したことを示しています。失敗する理由はありません。HKCR キーの下の regedit で登録を明確に確認できます。

前に述べたように、私のアドインは現在のユーザー用にインストールされているため、すべての登録は "HKCU\Software\Classes" の下で行われます。

「HKLM\Software\Classes」の下にある typelib のレジストリ エントリをハッキングすると、突然、韓国語の Outlook ですべてが正常に検出され、アドインが機能します。

アドインが起動したら、HKLM の下に typelib エントリを作成します。これはハックですが、HKCR でエントリを検索するときに、MS が韓国語 (おそらく他の言語?) で Outlook に何をさせているのかわかりません。

于 2010-11-04T14:51:56.003 に答える