アクティブウィンドウ
「RPG±0」で、DirectMusic&Soundの処理を作ろうとしていたのですが、そのためにはデバッグのためウィンドウを切り替えたりすることが必要となってきたので、先にウィンドウ切り替え処理、つまり、DirectDrawのウィンドウモードでの使用(こちらはとっくの昔に実装済み)と非アクティブのときに他のウィンドウを支障なく操作できるようにするような処理を作りました。
「ふにゃふにゃ」の時には非アクティブの検出にはWindowsからメッセージを受け取ってそれで判別していましたが、VBではそんなこと(めんどくさくて)できないので、GetForegroundWindowがメインウィンドウのhWndでなかったら一致するまでずっとWhileでDoEventsだけの空ループを回すという仕様にしました。
空ループを回す前後に音楽や効果音などの中断処理を入れれば完璧なのですが、上と同じく面倒なのでそんなことはしません。
一応、サウンド処理自体もDirectSoundクラスを生成するところぐらいはできています。