2009-05-07 13 views
1

MS Officeオートメーションを使用し、ユーザーがトリガーするイベントに対して発生するイベントハンドラーを使用したいと考えています。たとえば、ユーザーがWordの[保存]ボタンをクリックした場合、そのイベントをインターセプトしてプログラムでコードを実行したいとします。レイトバインドオブジェクトのイベントの処理

ユーザーの実行バージョンがわからないため、特定のバージョンのWordにバインドしたくないため、レイトバインディングを使用してWordへの参照をインスタンス化します。

問題は、AddHandlerコマンドとDim WithEventsコマンドは、設計時に既知のオブジェクトへの特定の参照を必要とすることです。これを考えると、特定のバージョンのWordライブラリに早期にバインドされた参照を持たずに、どのようにイベントハンドラを定義できますか?

新しいバージョンのWordが下位互換性があると予想される以前のバージョンのWordへの参照を試みることができますが、これは非常に危険で危険です。

カバーの下にあまりにも遠すぎないほうが良い方法がありますか?

答えて

-1

私はこれが可能であると信じられません。あなたが拘束しているものが同じ署名を持つその名前のイベントを持つことを保証する方法がないからです。

+0

確かに問題はありませんが、それは遅くバインドされたメソッドやプロパティの場合と同じです(実行時に例外をスローする)。 – Govert