VB6 IEオブジェクトをフォームにSetParentした後の終了処理

解決


m  2005-10-19 14:16:28  No: 126509  IP: [192.*.*.*]

VB6です。

IEオブジェクトをフォームにSetParentした(IEの親ウィンドウをフォームにする)後の終了処理で
困っています。

SetParent した後時間を置いて、強制的にですが End で終了させています。

このとき、IEがエラー()を起こしてしまい、OSが不安定になってしまいます。
この処理を行った後、OSを終了させる時にSysFaderというプロセスがでてしまいます。

SetParent で親ウィンドウを変更した後はそのIEオブジェクトはどのようなタイミングで解放
すればきちんと終了させれるでしょうか?

フォームの終了時(Unload(), QueryUnload()等のイベント)に Set IE = Nothing 等で解放させてますが、うまくいきません。

なにかいい方法はありませんでしょうか?

編集 削除
魔界の仮面弁士  2005-10-19 14:56:16  No: 126510  IP: [192.*.*.*]

> フォームの終了時(Unload(), QueryUnload()等のイベント)に
> Set IE = Nothing 等で解放させてますが、うまくいきません。
ヘルプで End ステートメントの項を読むと、以下のように書いてありますよね。

----
  フォームおよびクラス モジュールの Unload、QueryUnload、
  および Terminate イベントに記述されたコードは実行されません。
----


> なにかいい方法はありませんでしょうか?
まずは、End を使うのを止めましょう。

# というよりも、別のアプリケーションを SetParent するという仕様自体を
# 見直した方が良いのかも。

編集 削除
m  2005-10-19 15:17:52  No: 126511  IP: [192.*.*.*]

魔界の仮面弁士様ありがとうございました。

編集 削除