チケット #19355

DllMain() 内での SendMessageTimeout() の使用で問題の起こるケース

登録: 2009-10-27 13:40 最終更新: 2009-10-28 22:54

報告者:
担当者:
チケットの種類:
状況:
オープン [担当者決定済み]
コンポーネント:
(未割り当て)
マイルストーン:
(未割り当て)
優先度:
5 - 中
重要度:
5 - 中
解決法:
なし
ファイル:
なし

詳細

オリジナルの窓使いの憂鬱からのバグなので申し訳ないのですが、 DllMain() 内での SendMessageTimeout() の使用で問題の起こるケースがあるようです。 詳しくは以下のリンクをご覧ください。

チケットの履歴 (2 件中 2 件表示)

2009-10-27 13:40 更新者: ganaware
  • 新しいチケット "DllMain() 内での SendMessageTimeout() の使用で問題の起こるケース" が作成されました
2009-10-28 22:54 更新者: gimy
コメント

お知らせありがとうございます。

YAMY はユーザーモードフックに置き換えた際に EXE-DLL 間の notify を原則メールスロット経由に変更しました。例外として(保護モードのIEのような)低整合性レベルのアプリの場合だけは SendMessageTimeout() を使っています。これは低整合性レベルアプリが書き込めるようにメールスロットのアクセス制御を設定しようとしても上手くいかなかったためです。

この問題自体は以前の記事 http://d.hatena.ne.jp/NyaRuRu/20051229/p1 を拝見して知っていたため、低整合性レベルアプリの場合は Notify::Type_threadDetach を投げないようにしています。このため DllMain から SendMessageTimeout() を呼びだすことはなくなっているはずです。ただし、それと引き換えに「低整合性レベルアプリのデタッチが行われない」という問題が生じており、こちらはまだ解決できていません。

添付ファイルリスト

添付ファイルはありません

編集

ログインしていません。ログインしていない状態では、コメントに記載者の記録が残りません。 » ログインする