Я пытаюсь найти ссылку на эту функцию, но я ничего не нашел.
Все, что у меня есть, - это неясные КБ от Microsoft , указывающие на то, что программист сделал бу-бу при кодировании части Windows Mobile 6, где он должен вызвать SHGetSysColor
, но вместо этого он назвал GetSysColor
дает совершенно другой цвет, для той же спецификации.
Из того, что я мог собрать GetSysColor
, считал значение цвета в реестре из HKEY_LOCAL_MACHINE\Software\Microsoft\Color\SHColor
или HKEY_LOCAL_MACHINE\Software\Microsoft\Color\DefSHColor
и возвращает цвет в соответствии с индексом.
В этом реестре у меня есть следующее значение для стандартного Win Mobile 6.5
"DefSHColor"=hex:\
ff,00,00,00,00,00,00,00,dd,dd,dd,00,ff,ff,cc,00,ff,ff,ff,00,15,af,bc,00,15,\
af,bc,00,c9,e7,e9,00,14,9c,a7,00,ff,ff,ff,00,14,9c,a7,00,14,9c,a7,00,14,9c,\
a7,00,15,af,bc,00,14,9c,a7,00,ff,ff,ff,00,c9,e7,e9,00,37,c7,d3,00,37,c7,d3,\
00,ff,ff,ff,00,00,b7,c9,00,14,9c,a7,00,ff,ff,ff,00,15,af,bc,00,84,84,c3,00,\
15,af,bc,00,14,9c,a7,00,ff,ff,ff,00,ff,ff,ff,00,00,00,00,00,ff,ff,ff,00,00,\
00,00,00,ff,ff,ff,00,2e,44,4f,00,00,14,3c,00,00,f0,ff,00,ff,ff,ff,00,c9,e7,\
e9,00,14,9c,a7,00,ff,ff,ff,00,14,9c,a7,00
И я понял, что каждые четыре байта представляют разные цвета (RR, GG, BB, AA - AA, который я предполагаю здесь, поскольку каждый цвет там имеет байт AA как 00
, что будет означать, что это сплошной цвет).
Что я не могу исправить, так это то, что означает каждый индекс, так как у меня там 41 цвет.
Поиск в Google для SHGetSysColor
дает мне всего 7 совпадений, два из них - это КБ от Microsoft (один на английском, другой на французском), один с русского сайта (который я не читаю), еще один два из них от freepascal.org и один от Koders.com, который описывает файл commctl.def
.
Я пошел к commctl.h
, пытаясь выяснить, могу ли я найти ссылку на эту функцию, и не нашел абсолютно ничего.
Никакой поиск по MSDN ни Google, ни Bing, ни поиск MSDN по умолчанию не дал мне никакого результата.
Итак, кто-нибудь знает, о каких показателях мы здесь говорим?