2009-06-30 13 views
2

オリジナルのポスト:
Outlookは起動すると、アドインがロードされ、いくつかのボタンをツールバーに追加されます。は、コマンドバーを作成することはできません(2007 Outlookアドインを)

toolBar = OutlookApp.ActiveExplorer().CommandBars.Add(MENU_TAG, MsoBarPosition.msoBarTop, false, true); 

すべてがうまくいきましたが、今では1人のユーザーがOutlookを起動するように設定されたOutlookショートカットを最小化しました。

OutlookApp.ActiveExplorer()はnullを返します。 ActiveExplorerがあるときにキャッチしてコマンドバーを追加するために使用できるイベントはありますか?

OutlookApp.Explorers.NewExplorerが機能しません。

また、CommandBarを追加する前にメッセージボックスを表示すると、すべてが正常に動作し、Outlookを最小限に抑えても...なぜですか?

編集:誰かが答えに言ったように
探検家のproprertyへのアクセスは、直接、仕事をしました。しかし、これは最小限の見通しの問題を解決します...しかし...

ユーザーの1人は、Outlookを最小限に抑えて実行していませんし、まだGUIが利用可能になる前にプラグインが読み込まれます。でも1つのエクスプローラはこれが可能である方法探検コレクション:(ではありません

編集2:?。76melにより示唆されるように
が、私はこれが追加されますnullのすべての100msの間ActiveExplorerをチェックし、タイマーを使用してみました予想されるが、私は、ボタンのPictureプロパティを設定することができますよう、ボタン

私はこの例外を取得:。
致命的なエラー(HRESULTからの例外:0x8000ffffが返さ(E_UNEXPECTED))

答えて

2

UI = no explorerが存在しない場合:(

Explorers.NewExplorerイベントが発生してCommandBarsオブジェクトを取得するまで待機してください。

更新: はい、それはタイマーのように見えますが、少しハッキーです。 したがって、ActiveExplorerがnullの場合はタイマーを起動し、ActiveExplorer onTickを確認します。ユーザーが見通しをポップアップすると、アクティブなエクスプローラが表示され、ツールバーを追加できます。

+0

Outlookのメインウィンドウを開くときにそのイベントが発生しないため、機能しません。他のアイデア? –

+0

はい、申し訳ありませんが、2007年には起動しないようです。タイマーであるかもしれません..行く方法は..それは、チェックでヌルのチェックを開始し、ヌルでないときに終了します。私は遊びを持っています... – 76mel

+0

タイマーを使用するとき、私のボタンのアイコンを設定することはできません。私はこの驚くべき例外を得ます: "致命的な失敗(HRESULTからの例外:0x8000FFFF(E_UNEXPECTED))" –

2

私は管理されたアドインに精通していませんが、私はこの答えを発見しました。 ActiveExplorerがない場合、Explorers [1]のようにExplorersコレクションに直接アクセスしてみてください。

ECEで同じ問題が発生し、ユーザーがOutlookでフォルダを変更してからツールバーを再作成しようとしたときに呼び出されるOnObjectChangeコールバックを待って解決しました。これは、おおよそOutlookオブジェクトモデルのFolderSwitchイベントに対応している可能性があります。

私の2cです。

+0

ありがとう、これは私が話していた場合にそれを解決した。 しかし、もう一つの関連する問題があります。私も前にOnObjectChangeを試しましたが、ユーザーがOutlookで何かをクリックしたときだけツールバーを読み込むため、awkardのようなものです。 –

+0

はい、あなたは正しいですが、私はそれがほんの些細な迷惑であり、ユーザーはそれで生きることができると思います。少なくとも私のプラグインで。私たちが反応するには何らかの出来事がなければなりません。私はタイマーソリューションの友人ではない。 –

+0

私はPetrに同意します。これは非常にハッキリですが、OOMは開発者にはあまり親しみません。このテクニックは、2000年の展望以来ずっとずっと続いていました。 – 76mel

関連する問題