カスタム テンプレートのドキュメント アクション ウィンドウに追加しようとしているコントロールがいくつかあります。そうするたびに、次のエラーが発生します。
System.Runtime.InteropServices.COMException (0x80004005): Error HRESULT E_FAIL has been returned from a call to a COM component.
この問題に関連するさまざまな 検索 結果 に出くわしましたが、それらのいくつかに基づいて、文書マップが有効になっている場合 (2010 年に新しいナビゲーション ウィンドウに移動されました)、以前のバージョンの Word でこれが発生する可能性があるようです。 . しかし、私のものは間違いなく無効になっているので、あまり役に立ちません。違いを確認するために有効にしてみましたが、エラーは上記のエラーと次の 2 つの組み合わせに変わります。
Exception from HRESULT: 0x8004063B
You are currently viewing this document in multiple windows. To attach an XML expansion pack, you must first close all additional windows so that you are viewing the document in only one window.
(複数のウィンドウで表示したり、XML スキーマを添付しようとしているわけではありません)
しかし、それはちょっと無関係です。後世のためにここに記録しました。
とにかく、これは特定のマシンでのみ発生します。これが私が見つけた違いです。File > Options > Trust Center > Trust Center Settings > Message Bar
と呼ばれるチェックボックスがありますEnable Trust Center Logging
。この文書化されていない設定は、次のように出力されます。
%USERPROFILE%/AppData/Local/Microsoft/Office/TCDiag/WDTCD.log
そのログ ファイルには、次のような多くのエントリが表示されます。
Content Type: SmartTags
Binary: "c:\Program Files (x86)\Common Files\Microsoft Shared\VSTO\vstoee.dll"
Certificate: Microsoft Corporation
Certificate Signature: Microsoft Code Signing PCA
Certificate Status: Trusted
Trust Center Decision: Enable Content
これらのほとんどは、操作ウィンドウが機能するマシンと機能しないマシンの間で同じです。ただし、上記の vstoee.dll のエントリは同じではありません。動作していないマシンでは次のように表示されます。
Certificate Status: Untrusted
Trust Center Decision: Block Content
証明書は信頼できる発行元のMicrosoft Corporation
リストにあり、2015 年 7 月 22 日に期限切れになりました。これはコード署名証明書であり、vstoee.dll は署名時にタイムスタンプが付けられているため、正常であると認識されるはずです (ファイル システムを介してチェックすると、これがチェックアウトされます)。さらに、この DLL は、アドインをロードするときに使用されます(ロード プロセスの #2)。そのため、アドインがロードされた場合、この後の使用は問題になりません。
だからここに私の質問があります。vstoee.dll がアドインの読み込み時に信頼されているのに、ドキュメント アクション ウィンドウにコントロールを追加するときに一部のコンピューターで信頼されていないのはなぜですか?