2010-02-20 4 views
0

Я пытаюсь найти любую ссылку для этой функции, но я ничего не нашел.У кого-нибудь есть документация по SHGetSysColor?

Все у меня есть смутное KB from 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, АА - АА я m, здесь, поскольку каждый цвет имеет байт AA как 00, что означает, что это сплошной цвет).

То, что я не могу исправить, - это то, что означает каждый индекс, так как у меня есть 41 разные цвета.

Googling for SHGetSysColor in дает мне всего 7 совпадений, два из них - KB от Microsoft (один на английском, другой на французском), один с русского сайта (который я не читаю), еще два из FreePascal.org и один из Koders.com, который описывает файл commctl.def.

Я пошел в commctl.h, пытаясь увидеть, могу ли я найти ссылку на эту функцию и ничего не нашел.

Поиск по MSDN, ни по Google, ни по Bing, ни по запросу MSDN по умолчанию не привел к каким-либо результатам.

Итак, кто-нибудь знает, какие индексы мы говорим здесь?

+0

Если это не документировано, то не используйте его. –

ответ

1

Мне удалось найти информацию о записи реестра SHColor благодаря Russian site.

Эта информация была на MSDN, но она больше не доступна.

Цвета обозначены следующим образом:

Color# Description 

    0 COLOR_ALERT 
     Obsolete. 

    1 COLOR_ACCENTTEXT 
     Obsolete. 

    2 COLOR_CALOFFHOURS 
     Obsolete. 

    3 COLOR_CALONHOURS 
     Obsolete. 

    4 COLOR_TODAYTEXT 
     Today screen text color. 

    5 COLOR_STARTICONBACKGROUND 
     Base color for title bar and soft keys 
     Obs.:Windows Mobile 6 Professional and Windows Mobile 6 Classic. 

    6 COLOR_TODAYSEPARATOR 
     Today screen separator line color. 

    7 COLOR_TODAYMENU 
     Today screen menubar background color. 

    8 COLOR_NAVBAR 
     Color of title bar 
     Obs.:Windows Mobile 6 Professional and Windows Mobile 6 Classic. 

    9 COLOR_NAVBARTEXT 
     Color of title bar text on 
     Obs.:Windows Mobile 6 Professional and Windows Mobile 6 Classic. 

    10 COLOR_NAVBARHILITE 
     Obsolete. 

    11 COLOR_NOTIFTRAY 
     Notification tray background color 
     Obs.:Windows Mobile 6 Professional and Windows Mobile 6 Classic. 

    12 COLOR_NOTIFTRAYHILITE 
     Background of highlighted icon in the notification tray 
     Obs.:Windows Mobile 6 Professional and Windows Mobile 6 Classic. 

    13 COLOR_BUBBLECAPTION 
     Left color of bubble caption background gradient on 
     Obs.:Windows Mobile 6 Professional and Windows Mobile 6 Classic. 

    14 COLOR_GRADIENTBUBBLECAPTION 
     Right color of bubble caption background gradient 
     Obs.:Windows Mobile 6 Professional and Windows Mobile 6 Classic. 

    15 COLOR_INTGRADLEFT 
     Left color of a gradient listview background, for the interlaced rows. 

    16 COLOR_INTGRADRIGHT 
     Right color of a gradient listview background, for the interlaced rows. 

    17 COLOR_HIGHGRADLEFT 
     Currently not used. 

    18 COLOR_HIGHGRADRIGHT 
     Currently not used. 

    19 COLOR_PHONEDIALERTEXT 
     Text color of the text in the Phone dialpad buttons. 

    20 COLOR_TRAYGRADLEFT 
     Base color for title bar and soft keys 
     Obs.:Windows Mobile 6 Standard only. 

    21 COLOR_TRAYGRADRIGHT 
     Right color of tray 
     Obs.:Windows Mobile 6 Standard only. 

    22 COLOR_TRAYTEXT 
     Tray text color 
     Obs.:Windows Mobile 6 Standard only. 

    23 COLOR_TRAYBKGND 
     Tray background color, if not a gradient 
     Obs.:Windows Mobile 6 Standard only. 

    24 COLOR_DIALPADBKGND 
     Currently not used. 

    25 COLOR_CRITGRADLEFT 
     Left color of a critical bubble caption gradient 
     Obs.:Windows Mobile 6 Professional and Windows Mobile 6 Classic. 

    26 COLOR_CRITGRADRIGHT 
     Right color of a critical bubble caption gradient 
     Obs.:Windows Mobile 6 Professional and Windows Mobile 6 Classic. 

    27 COLOR_BUBBLETITLE 
     Text color of a bubble caption 
     Obs.:Windows Mobile 6 Professional and Windows Mobile 6 Classic. 

    28 COLOR_CRITBUBBLETITLE 
     Text color of a critical bubble caption 
     Obs.:Windows Mobile 6 Professional and Windows Mobile 6 Classic. 

    29 COLOR_ALERTTITLE 
     Alert title text color. An alert is a full screen message box 
     Obs.:Windows Mobile 6 Standard only. 

    30 COLOR_ALERTWINDOW 
     Background color of a listview in alert. Also used for volume alert slider bar 
     Obs.:Windows Mobile 6 Standard only. 

    31 COLOR_ALERTRULE 
     Color of alert horizontal separator line. An alert is a full screen message box 
     Obs.:Windows Mobile 6 Standard only. 

    32 COLOR_HOMETEXT 
     Home Screen text 
     Obs.:Windows Mobile 6 Standard only. 

    33 COLOR_HOMERULE 
     Home Screen horizontal separator line 
     Obs.:Windows Mobile 6 Standard only. 

    34 COLOR_HOMEHIGHLIGHT 
     Home Screen background color of highlighted text 
     Obs.:Windows Mobile 6 Standard only. 

    35 COLOR_HOMEHIGHLIGHTTEXT 
     Home Screen highlighted text 
     Obs.:Windows Mobile 6 Standard only. 

    36 COLOR_GRADLEFT 
     Left color of a gradient listview background, used to draw alternating lines together with COLOR_INTGRADLEFT and COLOR_INTGRADRIGHT. 

    37 COLOR_GRADRIGHT 
     Right color of a gradient listview background, used to draw alternating lines together with COLOR_INTGRADLEFT and COLOR_INTGRADRIGHT. 

    38 COLOR_STARTMENU 
     Start Menu background color when there is no background bitmap 
     Obs.:Windows Mobile 6 Professional and Windows Mobile 6 Classic. 

    39 COLOR_STARTMENUTEXT 
     Start Menu text. 

    40 COLOR_TAPANDHOLD 
     Tap and Hold 
     Obs.:Windows Mobile 6 Professional and Windows Mobile 6 Classic. 
Смежные вопросы