Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


11220 / 13644 ツリー ←次へ | 前へ→

【17345】vbaでサブクラス化 roz 04/8/27(金) 13:34 質問[未読]
【17346】Re:vbaでサブクラス化 IROC 04/8/27(金) 13:43 回答[未読]
【17347】Re:vbaでサブクラス化 roz 04/8/27(金) 14:04 発言[未読]
【17348】Re:vbaでサブクラス化 IROC 04/8/27(金) 14:06 回答[未読]
【17352】Re:vbaでサブクラス化 roz 04/8/27(金) 14:17 発言[未読]
【17356】Re:vbaでサブクラス化 IROC 04/8/27(金) 15:35 回答[未読]
【17367】Re:vbaでサブクラス化 roz 04/8/27(金) 16:46 発言[未読]
【17366】Re:vbaでサブクラス化 Asaki 04/8/27(金) 16:40 発言[未読]
【17369】Re:vbaでサブクラス化 roz 04/8/27(金) 16:50 お礼[未読]
【17372】Re:vbaでサブクラス化 Asaki 04/8/27(金) 17:17 発言[未読]
【17377】Re:vbaでサブクラス化 roz 04/8/27(金) 18:07 お礼[未読]
【17379】Re:vbaでサブクラス化 Asaki 04/8/27(金) 18:13 発言[未読]

【17345】vbaでサブクラス化
質問  roz E-MAIL  - 04/8/27(金) 13:34 -

引用なし
パスワード
   始めまして。質問させていただきます。

<質問>
vbaでサブクラス化を行ったところ、以下のメッセージが消えません。
発声させない方法はありますでしょうか。
「エラー番号:-2147417848 オートメーション エラーです。
起動されたオブジェクトはクライアントから切断されました。 」

<実行していること>
winsock.dllにて、FTPを作成しています。(wininet.dllではなくて。)
発生したイベントを取得することが目的です。

具体的には、
1.UserFormをshow
2.Initializeイベント内にて、イベントハンドルをFindWindowで取得、SetWindowでサブクラス化
3.WindowProc(内部で、CallWindowProcを呼び出し)を設定
4.UserFormがUnload下タイミングで、SetWindowLongを行っています。

<現象>
2の時点で、エラーが発生してしまい、処理が止まってしまいます。
止まった後も、ハングアップするなど、大変不安定です。

以上宜しくお願いいたします。

【17346】Re:vbaでサブクラス化
回答  IROC  - 04/8/27(金) 13:43 -

引用なし
パスワード
   処理の目的は何でしょうか?

【17347】Re:vbaでサブクラス化
発言  roz E-MAIL  - 04/8/27(金) 14:04 -

引用なし
パスワード
   ▼IROC さん:
>処理の目的は何でしょうか?
UserFormのウィンドウハンドルにWSAAsyncSelectで紐付けて、
winsockのイベントをwindowproc内で判断(横取り?)したい。。。
といえば分かりますでしょうか?

以上宜しくお願いいたします。

【17348】Re:vbaでサブクラス化
回答  IROC  - 04/8/27(金) 14:06 -

引用なし
パスワード
   あまり詳しくないので申し訳ないのですが、
他のイベント(Activateイベント等)でもダメでしょうか?

【17352】Re:vbaでサブクラス化
発言  roz E-MAIL  - 04/8/27(金) 14:17 -

引用なし
パスワード
   ▼IROC さん:
>あまり詳しくないので申し訳ないのですが、
>他のイベント(Activateイベント等)でもダメでしょうか?
すいませんが、おっしゃっている他のイベントの意味が分かりません。

winsockのイベントをハンドル(WindowProcのlParamの値を取得)するために、サブクラス化する必要があります。

例えば、Activateイベントでは、
WindowProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
のlParamの値が取得することが可能ですか?

【17356】Re:vbaでサブクラス化
回答  IROC  - 04/8/27(金) 15:35 -

引用なし
パスワード
   >すいませんが、おっしゃっている他のイベントの意味が分かりません。

>Initializeイベント内にて、
とのことでしたので、
本件とは関係無い処理ですが、Initializeでは動作しなくても、
Activateだと動作するものがあったので、書かせて頂きました。

【17366】Re:vbaでサブクラス化
発言  Asaki  - 04/8/27(金) 16:40 -

引用なし
パスワード
   こんにちは。
回答ではありません。

こちらはOKですが、他サイトはマルチポスト禁止です。
こちらは閉じて、あちらで続けられた方が良いのでは?

【17367】Re:vbaでサブクラス化
発言  roz E-MAIL  - 04/8/27(金) 16:46 -

引用なし
パスワード
   ▼IROC さん:
>>すいませんが、おっしゃっている他のイベントの意味が分かりません。
>
>>Initializeイベント内にて、
>とのことでしたので、
>本件とは関係無い処理ですが、Initializeでは動作しなくても、
>Activateだと動作するものがあったので、書かせて頂きました。

UserForm_Activateなどのイベントでしょうか。
とりあえず、やってみます。
ただ、それでもいいのですが、Activateですと、UserFormがActiveになるたびに、初期化を行ってしまうので、あまり好ましくありません。

IROC さんありがとうございます。

【17369】Re:vbaでサブクラス化
お礼  roz E-MAIL  - 04/8/27(金) 16:50 -

引用なし
パスワード
   ▼Asaki さん:
>こんにちは。
>回答ではありません。
>
>こちらはOKですが、他サイトはマルチポスト禁止です。
>こちらは閉じて、あちらで続けられた方が良いのでは?

すいませんでした。
マルチポストと言う言葉自体知らなかったもので。。。
Asakiさんのあちらが、どのサイトをさしているか分かりませんが、
こちらの質問は閉じさせていただきます。

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

【17372】Re:vbaでサブクラス化
発言  Asaki  - 04/8/27(金) 17:17 -

引用なし
パスワード
   >Asakiさんのあちらが、どのサイトをさしているか分かりませんが、
え?
そんなにあちこちマルチしてるんですか?
1箇所に絞るのが良いと思いますが。

ちなみに、あちら=Moug です。

【17377】Re:vbaでサブクラス化
お礼  roz E-MAIL  - 04/8/27(金) 18:07 -

引用なし
パスワード
   ▼Asaki さん:
>>Asakiさんのあちらが、どのサイトをさしているか分かりませんが、
>え?
>そんなにあちこちマルチしてるんですか?
>1箇所に絞るのが良いと思いますが。
>
>ちなみに、あちら=Moug です。
すいません。
最初から1つに絞って書き込んでも、返事の無いサイトもあるので。。。

とりあえず、こちらは、CLOSEとさせていただきます。
解決ではないですが。。。種別は特に「解決」とか選択肢は無いのですね。

以上ありがとうございました。

【17379】Re:vbaでサブクラス化
発言  Asaki  - 04/8/27(金) 18:13 -

引用なし
パスワード
   >最初から1つに絞って書き込んでも、返事の無いサイトもあるので。。。
そのような場合は、削除してしまうか、よそに移動することを宣言してCloseすればよいでしょう。
多くのサイトは、マルチポストを禁止していますから、先ずは、使用上の注意をお読みになってからにすることです。

マナー違反は、余計にレスをもらえません。

11220 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free