2006年5月26日(金)
WndowsMobile5でAdobeReaderが動かない理由(解決編)
と言うことで原因は判明したので、その対処方法を考えてみる。
方法1. DS_MODALFRAME掃討作戦
DS_MODALFRAMEがついてるから死ぬのでDS_MODALFRAMEを外すことで対処する。
問題のダイアログはRdLang32.JPNに含まれるものなので、これを書き換えればいいのだが、、、こいつは大量のリソースが含まれているので編集は厄介、と言うことでmuiで逃げる。
・DumpRCでRdLang32.JPNのダイアログリソースだけ抜き出す
・さらにスタイルにDS_MODALFRAME(0x80)を含むダイアログリソースだけ残す
・各ダイアログのスタイルからDS_MODALFRAME(0x80)を取り除く
・リソースdllを作成し、RdLang32.JPN.0411.muiにリネーム
・RdLang32.JPNと同じフォルダにRdLang32.JPN.0411.muiを置く
方法2. DS_MODALFRAME無視作戦
DS_MODALFRAMEを外す処理をしなければ死なないので、この処理を飛ばすことで対処する。
この処理はmfcce300.dllで行われているがROMファイルを直接書き換える術はないので、以前のSDKからmfcce300.dllを持ってきて書き換えを行う。
・PocketPC,PocketPC2002,PocketPC2003いずれかのSDKからmfcce300.dllを入手(PocketPC2003なら標準インストールでC:\Program Files\Windows CE Tools\wce420\POCKET PC 2003\Mfc\Lib\armv4)
・mfcce300.dllの80 30 13 E2 1B 00 00 0A→80 30 13 E2 1B 00 00 EA に書き換え(if(lpDialogTemplate->style & DS_MODALFRAME)の部分に相当)
・書き換えたmfcce300.dllをAcroRd32.exeと同じフォルダまたはWindowsフォルダに置く
こちらで確認した限りではどちらの方法でもうまくいっているが動作保証はしかねるので、自己責任でどうぞ。
m16HA0 <a href="http://clgfjdnvjxin.com/">clgfjdnvjxin</a>, [url=http://vmjhnhkxkrmv.com/]vmjhnhkxkrmv[/url], [link=http://chzuxcsbpjlz.com/]chzuxcsbpjlz[/link], http://lvmucctmnmsy.com/
G7Jlqj <a href="http://oqrorwqfsdtx.com/">oqrorwqfsdtx</a>, [url=http://tjroimiaqhxx.com/]tjroimiaqhxx[/url], [link=http://ivcwhlwecabj.com/]ivcwhlwecabj[/link], http://ffkezdlpaeyx.com/
コメント