https://sourceforge.net/projects/audica/
HILIGHTS (0.4.0 -> 0.5.1):
- Поддержка обложек (из папки или ID3V2 тегов).
- Поиск по плейлисту, сортировка плейлистов.
- Улучшенная поддержка Unicode.
- Инфо-окно отображает информацию о композиции и громкость.
- Получение тегов OGG интернет-потоков.
- Визуализация: изменение цвета окон Windows Aero.
- Фиксы, увеличена стабильность.
Так вот. Сабж находится в файле modSpectrum.basPrivate Type WDM_COLORIZATION_PARAMS
Color1 As Long
Color2 As Long
intensity As Long
Unknown1 As Long
Unknown2 As Long
Unknown3 As Long
Opaque As Long
End Type
Private Declare Sub WdmGetColorizationParameters Lib "dwmapi.dll" Alias "#127" (ByRef parameters As WDM_COLORIZATION_PARAMS)
Private Declare Sub WdmSetColorizationParameters Lib "dwmapi.dll" Alias "#131" (ByRef parameters As WDM_COLORIZATION_PARAMS, ByVal uUnknown As Long)
Dim p As WDM_COLORIZATION_PARAMS, special As Long, wdm_saved_color As Long, wdm_is_on As Boolean
Public Sub RestoreWDMColor()
If wdm_is_on Then
p.Color1 = special + wdm_saved_color
p.Color2 = p.Color1
WdmSetColorizationParameters p, 0
End If
End Sub
Public Sub UnInitWDM()
Call RestoreWDMColor
wdm_is_on = False
End Sub
Public Sub InitWDM()
On Error GoTo 1:
WdmGetColorizationParameters p
special = Sgn(p.Color1) * (p.Color1 And &HFF000000)
wdm_saved_color = p.Color1 And &HFFFFFF
wdm_is_on = True
Exit Sub
1: qError "Cannot initializate WDM."
End Sub
Public Function WDMIsReady() As Boolean
On Error GoTo 1:
Dim ret As WDM_COLORIZATION_PARAMS
WdmGetColorizationParameters ret
WDMIsReady = True
1:
End Function
WDMIsReady - доступно ли изменение цвета
InitWDM - считать текущие параметры цвета, запомнить старый цвет и параметр special
RestoreWDMColor - восстановить старый цвет
wdm_saved_color - старый цвет
special - 4ый байт Color1 - не разобрался как, но это связано с интенсивностью цвета, как и параметры intensity, Unknown1, Unknown2, Unknown3
Opaque - 1=без прозрачноти, 0=прозрачность
Color2 - опять же не ясно зачем, но всегда равен Color1
Установка нового цвета происходит так
p.Color1 = special + RGB(B, G, R)
p.Color2 = p.Color1
WdmSetColorizationParameters p, 0
Ответить
|