掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
VB以外のDLLでメール受信の最中に、メール受信に関するすべての処理を強制終了するには? (ID:123479)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
[開発環境:WinXP/98,VB6SP6] いつもお世話になります。 今回は、メール受信についてお尋ねします。 こちらでもBASP21に関する記事が過去投稿されていますが、今回の質問に 相当するような記事が見つからなかったので質問させて頂きます。 メール受信手段として、現在BSMTP.DLLを使用していろいろと実験していますが、 ここで一般的な話しとしてアドバイス頂けないでしょうか。 大まかに下記のようなコードにより実験しています。 ■Form1での処理 Private Sub Command1_Click() '「受信」ボタンをクリック Form2.Show vbModal 'メール受信用のフォームをオープン End Sub ■Form2での処理 Private Sub Form2_Activate() 'Form2オープンと同時にメール受信処理開始 '処理1:メールサーバー内の受信メッセージの数やタイトル等を確認。 '処理2:受信ログデータベースに問い合わせて、受信すべきメールを確定します。 ' 受信後のメッセージは、メールサーバーにそのまま残しておくことにします。 '処理3:メール受信開始 ' 受信すべきメッセージのみを受信し、 ' 受信状況を逐次スクロールバーにて表示します。 ' 同時に、受信したメッセージの持つ諸情報(タイトルや送信者名等)をデータ ' ベースに書き込みます。 '処理4:なんらかのエラーが発生したら、その旨の ' メッセージをForm2内の表示エリアに表示します。 '処理5:無事受信できたら自動でForm2を閉じ、エラーが発生したら手操作 ' でForm2を閉じます。 End Sub 以上のような流れです。 さてここで質問なのですが、今回のように外部のDLLを使ってメールサーバーにアクセスして いる最中に、仮にForm2を強制的に閉じてUnloadしたい場合、Form2の中のすべての処理を 破棄してForm1に戻るよい方法はないでしょうか。 今の現象としては、 1.メール受信時のコールバック関数で受信キャンセルを有効にしてForm2を×ボタンで閉じる 2.メールサーバーへのアクセスはまだ続いている 3.受信処理が終了してユーザーキャンセルが認識される 4.ユーザーキャンセル時に呼ばれるエラーメッセージ表示のためのサブルーチンが呼ばれる 5.Form2は既に閉じられているので、VBのエラーメッセージが表示され、プログラムが強制終了 あるいは、処理3のデータベース書き込みエラーのメッセージが表示されるが、OKボタン を押してもプログラムを終了することができない。 5は、Form2を閉じるタイミングにもよるかと思います。 また、メール受信の最中にForm2を強制的に閉じてForm1でプログラムそのものを終了しても、 VBはまだ開放されずに動いています。そして、最後に5と同様の状態になります。 あまり要領を得ない説明で恐縮ですが、エラーの回避方法など是非アドバイス頂けないでしょうか。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.