Полноцветные значки в Systray

Листаю свеженькую "Компьютерру"... натыкаюсь на заметку о неофициальном Service Pack для Windows 98SE.
В качестве одной из фич упоминаются полноцветные значки в SysTray.

Сайт забанен, дескать p0rn...Начинаем искать. На "Яндексе" такие же страждущие,
а вот на Google, после манипулирования ключевыми словами, находим вот  эту  страницу.

Уау! Для всех версий - от 95 до 2000 и для разных языков!
Русский - есть!
Однако мне хотелось бы разобраться в сути проблемы и ее решения, а не бездумно
слизывать решение:

name : explorer.exe

size : 180224

from : Windows 98 build 4.10.1998 A (RUSSIAN)

version : 4.72.3110.1

//------------

Offset 0x41C2 : 01 -> 11

Offset 0xB4D5 : 01 -> 11

После некоторых шаманских пассов получаем следующее:

; создание ImageList:
.text:004041BE                 push    1
.text:004041C0                 push    ebx
.text:004041C1                 push    1 ; флаги :
                                         ; ILC_MASK = 0001h
                                         ; ILC_COLOR  = 0000h
                                         ; ILC_COLOR16 = 0010h - а этого нет!
.text:004041C3                 push    32h
.text:004041C5                 call    sub_4021B2

.text:004041CA                 push    eax ; cy

.text:004041CB                 push    31h
.text:004041CD                 call    sub_4021B2

.text:004041D2                 push    eax ; cx
.text:004041D3                 call    ds:ImageList_Create ; cx, cy, flags, остальное не важно

ага! попался!
аналогичный кусок здесь:

.text:0040B4D0                 push    1
.text:0040B4D2                 push    0
.text:0040B4D4                 push    1 ; flags
.text:0040B4D6                 push    edi
.text:0040B4D7                 push    esi
.text:0040B4D8                 call    ds:ImageList_Create

Патчим, перезагружаемся, вуаля!

Пусть вас не смущает содранная из Линолеума корзина... Кстати, второй справа значок - тестовая программа, которую можно найти у автора этого хака.

Hosted by uCoz