Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - Delphi | Написать плагин к винампу

Ответить
Настройки темы
Delphi - Delphi | Написать плагин к винампу

Аватара для Interceptor

Новый участник


Сообщения: 46
Благодарности: 0

Профиль | Отправить PM | Цитировать


Может кто нибудь встречался с подобным делом.

Есть такая вот штука:

IPC_GETPLAYLISTFILE=211;
{(requires Winamp 2.04+, only usable from plug-ins (not external apps))
name:=SendMessage(hwnd_winamp,WM_WA_IPC,index,IPC_GETPLAYLISTFILE);
IPC_GETPLAYLISTFILE gets the filename of the playlist entry [index].
returns a pointer to it. returns NULL on error}

Так как же мне получить имя этого файла в переменную типа String или PChar, когда функция SendMessage возвращает результат Integer (это наверное указатель на нуль терминальную строку)?

Отправлено: 21:30, 25-01-2005

 

Аватара для hasherfrog

Старый параноик


Сообщения: 2423
Благодарности: 85

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
#define IPC_GETPLAYLISTFILE 211
//  (requires Winamp 2.04+, only usable from plug-ins (not external apps))
// ** char *name=SendMessage(hwnd_winamp,WM_WA_IPC,index,IPC_GETPLAYLISTFILE);
// **
// ** IPC_GETPLAYLISTFILE gets the filename of the playlist entry [index].
// ** returns a pointer to it. returns NULL on error.
Вы на чём пишите?

Отправлено: 22:48, 25-01-2005 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Interceptor

Новый участник


Сообщения: 46
Благодарности: 0

Профиль | Отправить PM | Цитировать


Я пишу на Delphi.

Вообще то кажется можна сделать так:

Код: Выделить весь код
Var 
  name:PChar;
begin
  name:=PChar(SendMessage(hwnd_winamp,WM_WA_IPC,index,IPC_GETPLAYLISTFILE));
  Memo1.Lines.Append(name);
end;
НО, - тут я кое - что пропустил: эта процедурка оказывается пашет только в том случае, если моя програмка будет плагином к winamp.
А с написаниям плагинов - я еще не знаком.

-------
Как приятно порой бывает, когда тебя не понимают.


Отправлено: 11:19, 28-01-2005 | #3


Аватара для Interceptor

Новый участник


Сообщения: 46
Благодарности: 0

Профиль | Отправить PM | Цитировать


Может обяснит кто-нибудь на пальцах: как написать плагин к Winamp на Delphi?

Хотя бы основные основные вещи проясните на эту туманную для меня вещь.

ЗЫ. На С у меня код (из winamp SDK) есть - но я в нем мало-что могу разобрать.

-------
Как приятно порой бывает, когда тебя не понимают.


Отправлено: 11:29, 28-01-2005 | #4


Аватара для hasherfrog

Старый параноик


Сообщения: 2423
Благодарности: 85

Профиль | Отправить PM | Цитировать


Дык, конечно только для плагинов Во-первых, это там и написано, а во-вторых, передаётся же указатель на строку, строка хранится внутри контекста процесса, естественно, что только потоки внутри данного контекста смогут её прочитать

Отправлено: 11:43, 28-01-2005 | #5


Аватара для Interceptor

Новый участник


Сообщения: 46
Благодарности: 0

Профиль | Отправить PM | Цитировать


Ну а как насчет самого плугина? Какие минимальные требования с точки присутствия процедур?

-------
Как приятно порой бывает, когда тебя не понимают.


Отправлено: 11:55, 28-01-2005 | #6


Аватара для hasherfrog

Старый параноик


Сообщения: 2423
Благодарности: 85

Профиль | Отправить PM | Цитировать


Если очень кратенько:
Плагин (к чему бы то ни было) - это по сути просто dll. Т.е. Вы пишите программу, которая компилится и линкуется дельфями как динамическая библиотека.
Наружу из длл "торчат" только несколько стандартизованных процедур, которые доступны пользователя. Чтобы их было видно, винамп (и любая другая прога) должна сама знать про них. Для этого используются всякие-разные "процедуры регистрации". В самой главной (dllmain) вы вызываете некую функцию регистрации и "прописываетесь" в процессе винампа.
Узнать о "главной" и спецификациях "видных для пользователя" можно из документации. Дальше только нужно действовать согласно указаниям. В Вашем случае придётся немного попыхтеть (совсем чуть-чуть) для перевода С-шных обявлений (что-нибудь типа __cdecl(dllexport)) в паскалевские. Это не сложно, уверен.

Отправлено: 12:26, 28-01-2005 | #7


Аватара для hasherfrog

Старый параноик


Сообщения: 2423
Благодарности: 85

Профиль | Отправить PM | Цитировать


А вот несколько иное решение
Управление винампом 5
http://www.cppfrance.com/code.aspx?ID=29460

Отправлено: 12:55, 15-02-2005 | #8



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - Delphi | Написать плагин к винампу

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Помогите написать на Delphi маленькую программу! ИМХО, будет интересна многим! AlexKan Автоматическая установка Windows 2000/XP/2003 10 24-08-2006 19:48
Не установлен плагин v125147 Хочу все знать 2 03-08-2006 22:46
Delphi - Delphi | Не могу написать простейшее ДБ-приложение под WinXPSP2 Yozh Программирование и базы данных 4 04-02-2006 00:30
плагин к IE E-mail Вебмастеру 2 01-02-2006 12:11
Delphi - Помогите написать кейлогер на Delphi Guest Программирование и базы данных 1 21-06-2004 01:50




 
Переход