Как вы используете DwmGetColorizationColor?
документация говорит, что он возвращает два значения:
-  32-бит 
0xAARRGGBB, содержащий цвет, используемый для композиции стекла - логический параметр, который является истинным "если цвет является непрозрачной смесью" (что бы это ни значило)
 
Вот цвет, который мне нравится, красивый зеленый блеск:

Вы можете заметить, что цвет зеленый, а полупрозрачная строка заголовка (на белом фоне) очень четко показывает цвет сота:

Я пытаюсь получить цвет из Windows:
DwmGetColorizationColor(dwCcolorization, bIsOpaqueBlend);
И я получаю
dwColorization: 0x0D0A0F04
bIsOpaqueBlend: false
В соответствии с документацией это значение имеет формат AARRGGBB и поэтому содержит:
AA: 0x0D (13)
RR: 0x0A (10)
GG: 0x0F (15)
BB: 0x04 (4)
Это означает, что цвет равен (10, 15, 4) с непрозрачностью ~ 5,1%.
Но если вы действительно посмотрите на это значение RGB, это нигде рядом с моим желаемым зеленым светом. Здесь
- (10, 15, 4) с нулевой прозрачностью (исходный цвет) и
 - (10,15,4) с непрозрачностью 5% на фоне белой/шахматной доски:
 
 
Вместо Lime зеленого цвета DwmGetColorizationColor возвращает почти полностью прозрачный  черный.
Итак, вопрос: Как получить цвет стекла в Windows Vista/7?
Я попытался использовать DwmGetColorizationColor, но это не работает очень хорошо.
A человек с той же проблемой, но более красивое блестящее изображение, чтобы привлечь вас белки:

Итак, это сводится к - DwmGetColorizationColor полностью неприменимо для приложений, пытающихся применить текущий цвет на непрозрачная поверхность.
 
 
 
 
 
 
Для последних двух скриншотов альфа-смешанный чип - это истинный частично прозрачный PNG, смешающийся с вашим фоном браузера. Круто! (я такой выродка)
Редактировать 2: Пришлось расположить их в радужном цвете. (я такой выродка)
Редактировать 3: Ну, теперь я, конечно, должен добавить Желтый.
Недокументированные/неподдерживаемые/хрупкие временные решения
Существует недокументированный экспорт из DwmApi.dll в точке 137 записи, который мы будем называть DwmGetColorizationParameters:
HRESULT GetColorizationParameters_Undocumented(out DWMCOLORIZATIONPARAMS params);
struct DWMCOLORIZATIONPARAMS
{
   public UInt32 ColorizationColor;
   public UInt32 ColorizationAfterglow;
   public UInt32 ColorizationColorBalance;
   public UInt32 ColorizationAfterglowBalance;
   public UInt32 ColorizationBlurBalance;
   public UInt32 ColorizationGlassReflectionIntensity;
   public UInt32 ColorizationOpaqueBlend;
}
Нам интересен первый параметр: ColorizationColor.
Мы также можем прочитать значение из реестра:
HKEY_CURRENT_USER\Software\Microsoft\Windows\DWM
    ColorizationColor: REG_DWORD = 0x6614A600
Итак, вы выбираете яд для создания проблем с апплетами. Вы можете
- полагаться на недокументированный API (который bad, bad, bad, и может уйти в любое время)
 - используйте недокументированный раздел реестра (который также bad, и может уйти в любое время)
 
См. также
- Есть ли список допустимых комбинаций параметров для API-интерфейсов GetThemeColor/Visual Styles
 - Как Windows меняет цвет Aero Glass?
 - DWM - Цветная обработка цветов с использованием DWMGetColorizationColor
 - Извлечение базового цвета Aero Glass для непрозрачной визуализации поверхности
 
Я хотел задать этот вопрос уже более года. я всегда знал, что ответить невозможно, и что единственный способ заставить кого-нибудь фактически обратить внимание - это иметь красочные скриншоты; разработчиков привлекают блестящие вещи. Но с другой стороны это означает, что мне пришлось приложить всевозможные усилия для создания приманок.
