■ VisualC++(MFC限定)相談室 4■
■ このスレッドは過去ログ倉庫に格納されています
0105デフォルトの名無しさん
NGNGVBで「Dim WithEvents obj???? 〜」って宣言すると、COMコンポーネントの
イベントを受け取れるじゃないですか。
このコンポーネントをVCで動かそうとしています。
VBで出来る事がVCで出来ないわけがないと思っていましたが、いわゆる
インタフェイスクラス側のインプリメントは簡単に出来るんですが、
イベントハンドラ側がうまく実装できません。
タイプライブラリを指定して同コンポーネントのクラスを自動生成させた
のですが、ヘッダファイル上でプロトタイプを確認すると、「引数の型が
あいまいでメンバを実装できません」みたいな表示がされて、イベント
ハンドラが加えられていません。ここでひとつ質問。
1、vテーブルが存在するものとしてviatual宣言の上メンバ関数を書き加えて
意味があるのでしょうか。
そこからイベントをキャッチする場合、
2、生成されたクラスを派生させて、イベント割り当て関数をオーバーライド
すれば、イベントをキャッチできるのでしょうか?
インタフェイス側のクラスはCoRegisterClassObject関数でハンドシェイク
出来ましたが、イベントハンドラ側は「クラスがない」といった風なエラー
が発生します。
3、COMコンポーネントの設計の問題でしょうか?それともクライアント側の
コーディングの問題でしょうか?それとも他に?
COMコンポーネント側もある程度ソースレベルでの融通が効きます。
以上3点の解決について知恵をいただければと思います。
よろしくお願いします。
■ このスレッドは過去ログ倉庫に格納されています