WowButtons with the GdiDrawStream を Windows 2000で

WowButtons with the GdiDrawStream function - CodeProject

Remote Desktop Client 6.0以降は GdiDrawStream というAPIを内部でコールしてるんですが、全く中で何をやってるかわからず、手が付けられない状態でした。

取りあえず関数を使わずに起動するとこんな感じ。
wow3
わけわかりませんね。

次にXPで起動。
wow
こんな感じになります。

というわけで、頑張って関数実装してみました。

wow2
透過処理も再現して、割と近くなったと思います|。・ω・)

gdi32: add a stub for GdiDrawStream
[ros-bugs] [Bug 4784] GDI32: GdiDrawStream is unimplemented, please try again later.

最近の Wine とか ReactOSでも実装できてないので XP以降でないOSの実装では初めてかも

対応してるフラグは DTBG_DRAWSOLID と DTBG_OMITBORDER と DTBG_MIRRORDC
他は何してるかよくわからない

というわけで、拡張カーネル v2.2f に実装してみました。

Windows 2000 Kernel32 改造計画【BM】

体感してみたい人で、コンパイルできない人はこちらをどうぞ WowButtons.zip

おすすめ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です