DS_NOFAILCREATE を強制的に ONにする実験

ダイアログの作成時に DS_NOFAILCREATE フラグがオンになっていると、対応していないコンポーネントがダイアログ上にあってもとりあえずWindow を生成してくれます。

ちなみに DS_NOFAILCREATE の値は 0x10 なので…。

DialogParamが呼び出される時に内部でコールされる DialogBoxIndirectParamAorW に渡される 第2パラメータ にDLGTEMPLATEEX が入っているので、オフセット 0xc が Window Styleとなります。

メモリの中身を見ると

dlg

先頭が 0xffff0001 というのはDLG アイテムの シグネチャなので、問題ないですね。

何がやりたいかというと、XP用アプリを無理やり動作させたときに、ダイアログが生成されないソフトがあるので、無理やり表示できないかという作戦です。

ダイアログ: メモリ上にテンプレートを作成

おすすめ

コメントを残す

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