...ing logging 4.0

はてなブログに移行しました。D言語の話とかいろいろ。

SetWindowLong/GetWindowLong

べたべたの Win32 を用いた Windows プログラミングはあまり勉強してない私.
C++ で書かれたコードの遺産を抱えている後輩がいるのだが,コードがよく分からなくて動かせないと言うのでものを見てみた.
そしたら,ウィンドウとウィンドウの間で情報をやり取りするために,この情報を格納する構造体を定義し,SetWindowLong と GetWindowLong でその構造体を受け渡していた.
前にもこういうやり方をしているサンプルコードを見たことがあるけど,何でこんなことをしなきゃいけないのだろう.
別のスレッドを立ち上げて,その中から CreateWindow していたのが何か関係あるのだろうか?
ウィンドウプロシージャを書き換えてサブクラス化するのでもなければ,SetWindowLong とかはなるべく使わない方が綺麗だと思うのだが.
それともコードを書いた人がこのやり方しか知らなかっただけか?
うーん,なんでだ.