| ▼ なすこじさん > 確認しました。
 > User Objectsの項でしたね。ありがとうございます。
 >
 > 2chから遡ってBug 19368にたどり着きました。
 すみません。リンク貼っとけばよかったですね。
 今更だけど。。。
 http://bugs.winehq.org/show_bug.cgi?id=19368
 
 > 共有メモリにあるのはAcceletor Tableのハンドルだけです。実体はデスクトップヒープに作られると思います
 > なので、他のプロセスからも参照できるが、Destroyを忘れるとアプリを終了してもメモリに残る……と思う。
 そのようですね。
 Dmitry Timoshkov 氏の解答によるとによると、
 Acceletor Tableは、user32 kernel objectとして
 作成されるから、複数プロセスからも参照できる。
 だそうです。(解釈あってるか不安ですが。。。)
 
 # In Windows an accelerator is a user32 kernel object,
 # like windows and menus, and an accelerator created
 # in one process is visible to anotherone.
 
 
 > 一方Wineではプロセスヒープに作られてしまい
 > 他のプロセスから見れなくなっているのでは?
 > というのが私の推測です。
 > 怪しいですが (^^;
 これはYesでしょうね。
 なすこじさんがが教えてくださったAlloc16は
 最終的にヒープを取得しているようです。
 
 Dmitry Timoshkov 氏の解答によると、
 Wineは、window handleしか、
 user32 kernel object実装していない
 とのこと。(和訳あってるかしら・・・)
 
 # Wine implements this only for window handles.
 
 
 > > 生成は、起動時に1回しか呼び出されていないようです。
 >
 > ご、ごめんなさい m(_ _)m
 > 再作成のために毎回やっていると思い込んでいました。確かにループの外にありますね。
 
 ryoji さんが報告してくださった箇所でも
 Acceletor Tableは生成されているようですが、
 文章を書くのに支障はでないのではとおもいます。
 (ryojiさんありがとうございます。)
 
 
 > > Wine側には、調査後報告するようにします。
 > > (ちょっと時間が開くかもしれませんが、
 > >  またこのBBSに報告します。)
 >
 > お手数をお掛けしますが宜しくお願いします。
 
 報告しちゃいました。。。。
 
 今度は、Wine側ソースを追っかけしてみます、
 
 ではでは。
 |