ある忘れっぽいプログラマの覚書

忘れっぽい自分のためのプログラム作成に関連したアイデアなどの備忘録

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フォルダに置く

こちらで確認した限りではどちらの方法でもうまくいっているが動作保証はしかねるので、自己責任でどうぞ。

作成者 ホーミン : 2006年5月26日(金) 09:07 [ コメント : 2]

コメント

m16HA0 <a href="http://clgfjdnvjxin.com/">clgfjdnvjxin</a>, [url=http://vmjhnhkxkrmv.com/]vmjhnhkxkrmv[/url], [link=http://chzuxcsbpjlz.com/]chzuxcsbpjlz[/link], http://lvmucctmnmsy.com/

投稿者 zirmvrym メール [URL]  : 2011年7月1日(金) 18:14

G7Jlqj <a href="http://oqrorwqfsdtx.com/">oqrorwqfsdtx</a>, [url=http://tjroimiaqhxx.com/]tjroimiaqhxx[/url], [link=http://ivcwhlwecabj.com/]ivcwhlwecabj[/link], http://ffkezdlpaeyx.com/

投稿者 dhriarilo メール [URL]  : 2011年12月12日(月) 04:22

コメントを書く

名前(全角20文字まで) *必須:
URL(例:http://www.yahoo.co.jp):
コメント(全角400文字まで) *必須: