Windows 2000 で開けないICO ファイルを調べてみた その1

原因を調べてみました。・ω・

icon
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 に書き換えてみると…

icon2
なんと、表示されるようになった!・ω・
これ、フルカラーアイコンの場合、アイコン数が異様に多いので、開けない可能性が微レ存?

おすすめ

コメントを残す

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