正常に動作する Word 2003 用の VSTO アドインを作成しました。唯一の問題は、アドインが Outlook で新しいメールを作成するときにも表示されるコマンドバーを表示することです。コマンドバー アドインが Outlook のコンテキストで Word のみに表示されないようにするにはどうすればよいですか?
4 に答える
問題は、Outlook が電子メール メッセージのエディターとして Word を使用していることです。
Outlook の [ツール オプション メール形式] からオフにするか、検出を行う必要があります。たとえば、電子メール メッセージの場合、Document.Kind プロパティの値は wdDocumentEmail (=2) になります。
これは試していませんが、Word インスタンスの Parent プロパティを使用して、その親が Outlook であるかどうかを判断し、その場合はコマンド バーを表示しないようにすることはできますか?
Word には、メール エディターとして実行されているかどうかを検出できるプロパティがいくつかあります。
App.MailEnvelope App.Envelope App.Email
すべての返信メール関連情報。word がメール エディタとして使用されていない場合、そのうちの少なくとも 1 つは NOTHING を返すと思いますが、そのコードにアクセスできなくなったので、試してみないと確信が持てませんでした。
そうは言っても、MS でさえ Word を電子メール エディタとして使用しないことを推奨していることは知っています。Office 2007 および 2010 では、それがオプションであるとは思えません。
親プロパティは Microsoft Word にループ バックし続け、Outlook にはループしません。User32.dll をインポートして Windows 名を取得し、Microsoft Word が含まれているかどうかを確認しました。
私がまだ抱えている唯一の問題は、ユーザーが Outlook を開いて新しいメッセージを作成し、Word を開いた場合、WINWORD.exe プロセスにはまだ既定のテンプレートであると想定されているものがあるため、新しいコピーの単語が表示されないことです。私のプラグイン。