[リストへもどる]
一括表示

投稿時間:2002/10/01(Tue) 13:38
投稿者名:藤四郎
Eメール:
URL :
タイトル:
参照設定をせずWithEventsを使いたい
VBのWithEventsキーワードを使用してイベントを取得したいのですが、

イベントを取得したいActiveXが頻繁にヴァージョンアップをするのです。

その度にコンパイルをしなくても良いように参照設定を行わないで取得したいのですが

どうすればよろしいでしょうか?

Private WithEvents objEvent as object
と、してもコンパイルエラーになってしまいます。

よろしくお願いします。

投稿時間:2002/10/01(Tue) 15:53
投稿者名:K.J.K.
Eメール:akiya@koalanet.ne.jp
URL :
タイトル:
Re: 参照設定をせずWithEventsを使いたい
# 回答ではありません。

基本は、バイナリ互換でActiveXモジュールを更新していくこと
でしょう。

ただ、Controls.Addで追加されたActiveXコントロールに限っては、
VBControlExtender.ObjectEventメソッドを使うことで、動的な
イベントの解決が可能になっています。

投稿時間:2002/10/02(Wed) 10:26
投稿者名:藤四郎
Eメール:
URL :
タイトル:
Re^2: 参照設定をせずWithEventsを使いたい
> # 回答ではありません。
>
> 基本は、バイナリ互換でActiveXモジュールを更新していくこと
> でしょう。
>
> ただ、Controls.Addで追加されたActiveXコントロールに限っては、
> VBControlExtender.ObjectEventメソッドを使うことで、動的な
> イベントの解決が可能になっています。

K.J.K.さんありがとうございます。

説明不足だったようで・・
ActiveXコントロールではなく、ActiveXEXEの参照設定せず、
WithEventsを使いたかったのです。

「バイナリ互換でActiveXモジュールを更新」との、とこだったのですが、
インターフェイス等も更新してしまうので、バイナリ互換での更新ができない状況です。

地道にコンパイルするしかないのでしょうか・・・

投稿時間:2002/10/02(Wed) 11:00
投稿者名:K.J.K.
Eメール:akiya@koalanet.ne.jp
URL :
タイトル:
Re: 参照設定をせずWithEventsを使いたい
> ActiveXコントロールではなく、ActiveXEXEの参照設定せず、
> WithEventsを使いたかったのです。

ええ。ですから、「回答ではありません」とことわっています。

> インターフェイス等も更新してしまうので、バイナリ互換での更新が
> できない状況です。

設計やデザインを見直してみたほうがいいのでは。

イベントではなくコールバックインターフェースを使う、という手も
ありますが、どちらにしても変わらないままでいる部分が必要です。

投稿時間:2002/10/02(Wed) 11:51
投稿者名:よねKEN
Eメール:
URL :http://www5b.biglobe.ne.jp/~yone-ken/
タイトル:
Re^3: 参照設定をせずWithEventsを使いたい
> 「バイナリ互換でActiveXモジュールを更新」との、とこだったのですが、
> インターフェイス等も更新してしまうので、バイナリ互換での更新ができない状況です。

メソッド等の追加ならバイナリ互換が保たれますが、
メソッドの引数を変更したり、削除したりすると駄目ですね。
インタフェースの変更が頻繁に入ることが根本的な間違いだと思います。
大原則としてインタフェースは一度公開したら(追加以外の)変更は許されません。

なので、以下の点を気を付けましょう。
・できるだけPublicにしない。
・Publicなものは変更しない。
・FriendやPrivateにできないか検討する。

> 地道にコンパイルするしかないのでしょうか・・・

たぶん、ないと思います。

投稿時間:2002/10/02(Wed) 12:34
投稿者名:藤四郎
Eメール:
URL :
タイトル:
ご意見ありがとうございました。
K.J.K.さん、よねKENさん、ご意見ありがとうございました。

ActiveXは自分が作っているわけではないので、
地道にコンパイルをしていきます。

ご親切にありがとうございました。