![]() |
Delphi | Написать плагин к винампу
Может кто нибудь встречался с подобным делом.
Есть такая вот штука: 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 (это наверное указатель на нуль терминальную строку)? |
Код:
#define IPC_GETPLAYLISTFILE 211 |
Я пишу на Delphi.
Вообще то кажется можна сделать так: Код:
А с написаниям плагинов - я еще не знаком. :( |
Может обяснит кто-нибудь на пальцах: как написать плагин к Winamp на Delphi?
Хотя бы основные основные вещи проясните на эту туманную для меня вещь. ЗЫ. На С у меня код (из winamp SDK) есть - но я в нем мало-что могу разобрать. |
Дык, конечно только для плагинов :) Во-первых, это там и написано, а во-вторых, передаётся же указатель на строку, строка хранится внутри контекста процесса, естественно, что только потоки внутри данного контекста смогут её прочитать :)
|
Ну а как насчет самого плугина? Какие минимальные требования с точки присутствия процедур?
|
Если очень кратенько:
Плагин (к чему бы то ни было) - это по сути просто dll. Т.е. Вы пишите программу, которая компилится и линкуется дельфями как динамическая библиотека. Наружу из длл "торчат" только несколько стандартизованных процедур, которые доступны пользователя. Чтобы их было видно, винамп (и любая другая прога) должна сама знать про них. Для этого используются всякие-разные "процедуры регистрации". В самой главной (dllmain) вы вызываете некую функцию регистрации и "прописываетесь" в процессе винампа. Узнать о "главной" и спецификациях "видных для пользователя" можно из документации. Дальше только нужно действовать согласно указаниям. В Вашем случае придётся немного попыхтеть (совсем чуть-чуть) для перевода С-шных обявлений (что-нибудь типа __cdecl(dllexport)) в паскалевские. Это не сложно, уверен. |
|
Время: 00:14. |
Время: 00:14.
© OSzone.net 2001-