次のエラーを回避するにはどうすればよいですか?「自動化エラー。メッセージフィルタ内で呼び出し中は不正です」

私は現在、.netアプリケーションを呼び出すvb6アプリケーションに取り組んでいます。 しかし、いったん.netアプリケーションが開いていて、vb6アプリケーションをクリックすると、次のエラーが発生します。

"自動化エラー。メッセージフィルタ内で呼び出し中は不正です"

私はvb6 IDEでこれをデバッグしようとしましたが、すべてのエラーを壊すように設定していますが、エラーダイアログボックスはすぐに開きます。

誰かがこれを回避する例がありますか?

3
どのように.NETアプリケーションを呼びますか?アウトオブプロセスCOM/ActiveXオブジェクトのようなものであれば、そのような動作は設計によるものです。呼び出し先が返される前に呼び出し元で別のコードを実行することはできません。
追加された 著者 Arvo,

1 答え

基本的に、サブクラスハンドラ中にCOM COM呼び出し(ActiveX EXEなど)を処理することはできません。
コードをリファクタリングして、ハンドラの外で呼び出しを行う必要があります。 1msのインターバルを持つタイマーで動作します。使用しているコードがいくつか表示された場合は、さらに手助けすることができます。

3
追加された
通常のクリックイベントは言及されていません。私はサブクラス化とOoP COMでそれを見てきました。言及すべき下にスペースがある他の原因があるかもしれません。しかし、タイマーのアプローチは実行可能な解決策であるかもしれません。
追加された 著者 Deanna,
Command1_Click "サブクラスハンドラ"です。私はスレッド間の状況で同じエラーを見たので、ActiveX EXEが必然的に関与しているわけではありません。
追加された 著者 wqw,