Код:
//создай вот такую функцю
function NowPlayingWindowProc(wnd, msg, wparam, lparam : Integer) : integer; stdcall;
begin
case msg of
WM_USER : //Агентру еще проверяет играется ли сейчас песня
//Для этого винампу посылается WM_USER, 104, 0
//1 - играет 3-пауза.
if lParam = 104 then Result := 1 else
Result := DefWindowProc(wnd, msg, wparam, lparam);
else
Result := DefWindowProc(wnd, msg, wparam, lparam);
end;
end;
//Это выполни при создании формы
var
NowPlayingWnd : HWND;
wc : TWndClass;
begin
ZeroMemory(@wc, SizeOf(Wc));
wc.lpfnWndProc := @NowPlayingWindowProc;
wc.hInstance := HInstance;
wc.lpszClassName := 'Winamp v1.x';//помоему так
RegisterClass(wc);
NowPlayingWnd := CreateWindow('Winamp v1.x', '<Нет трека>', 0, 0, 0, 0, 0, 0, 0, HInstance, nil);
end.
Что бы изменить текущую песню - поменяй заголовок
Код:
SetWindowText(NowPlayingWnd, 'Terra Fantastica - Flavus ');
Когда окно не будет нужно, сделай так
Код:
DestroyWindow(NowPlayingWnd )
Вроде так.
_________
Маленькая ошибка закралась в WM_USER необходимо проверять Lparam а не Wparam на 104
_________
А, да, сам метод - мы "притворяемся" винампом.