Windows 2000 で開けないICO ファイルを調べてみた その1
原因を調べてみました。・ω・
Google Earth の ico ファイル を指定したら 利用できるアイコンがありませんが出てくる原因をとりあえず突き止めてみました。
原因は PrivateExtractIcons が対応していないこと。
この関数を実行すると、ICONファイルから展開できたアイコンの数が返ってくるのですが
Windows 2000で実行すると 0が返ってくることが分かりました ・ω・
L77DF5BD5: cmp word ptr [ebp-0Eh],0001h jz L77DF5BE3 cmp word ptr [ebp-0Eh],0002h jnz L77DF5C10 L77DF5BE3: cmp word ptr [ebp-0Ch],0001h jc L77DF5C10 cmp word ptr [ebp-0Ch],000Ah ja L77DF5C10 L77DF5BF1: push [ebp+24h] lea eax,[ebp-00000228h] push [ebp+18h] push [ebp+14h] push [ebp+10h] push [ebp+0Ch] push eax call SUB_L77E18FCD |
ICO (ファイルフォーマット) - Wikipedia
画像の数。どうやら Windows 2000 は 10を超える画像を持つICOファイルを開こうとするとエラーになるらしい。
ちなみに、Windows XP には制限はなかった
Google Earth の ico ファイルの場合この値が11になっている。
そこで、10 に書き換えてみると…
なんと、表示されるようになった!・ω・
これ、フルカラーアイコンの場合、アイコン数が異様に多いので、開けない可能性が微レ存?
Comments