Главная
MuzCat
Мои проги
Гостевая книга
Написать письмо
|
© 2003 pa
Титул
 | 
Загрузка
 | 
Описание
 | 
Плагины
 | 
Вопросы и ответы
 | 
История версий
 | 
Спасибо
Создание плагинов.
Итак, у вас появилось желание расширить скудный список форматов файлов, который программа поддерживает изначально.
Для реализации этого замысла вам потребуется написать DLL по следующему шаблону:
(пример на Delphi)
library fmt_newformat;
Const
SectionMaxSize = 65535;
function READTAG(Var FileName,Title,Artist,Album,Genre,Comment,
Data:PChar;Var TagPr:LONGBOOL;
Var Time,BitRate:integer;Var TrackNo:byte):boolean;stdcall;
Begin
В этой функции должен быть прочитан тег из файла и скопирован в соответствующие переменные. В случаи удачи - возвратить true и false в случаи провала операции чтения.
Память под все входные переменные выделяется в головной программе, для строк это SectionMaxSize
End;
function WRITETAG(Const FileName,Title,Artist,Album,Genre,Comment,
Data:PChar;Const TrackNo:byte):boolean;stdcall;
Begin
Всё аналогично предыдущей функции за исключением предназначения.
Здесь тег должен быть записан с учетом переданной информации и в случаи удачи нужно вернуть true , а при неудаче false.
End;
procedure ABOUT(Var AboutString:PChar);stdcall;
Begin
Здесь необходимо вернуть в AboutString информацию о плагине.
Память под AboutString выделяется в основной программе в размере SectionMaxSize
End;
procedure GETEXT(Var Ext:PChar);stdcall;
Begin
Здесь необходимо вернуть в Ext расширение файла без точки (например Wma)
Память под Ext выделяется в основной программе в размере SectionMaxSize
End;
procedure CONFIGURE(Const Window:THandle);
Begin
Настройки плагина. Window - дескриптор главного окна MuzCat
End;
procedure GETFILEINFO(Const FileName:PChar;Var info:PChar);stdcall;
Begin
В строку info нужно поместить информацию о файле FileName
Память под info выделяется в основной программе в размере SectionMaxSize
End;
exports
READTAG,
GETFILEINFO,
GETEXT,
ABOUT,
WRITETAG,
CONFIGURE;
begin
end.
- Плагин считается пригодным если в нём реализованы хотя бы функции READTAG и GETEXT.
- Плагин может замещать встроенную поддержку формата.
- Имя файла плагина должно обязательно начинаться с "fmt_"
Скачать пример (Delphi 6)
Титул
 | 
Загрузка
 | 
Описание
 | 
Плагины
 | 
Вопросы и ответы
 | 
История версий
 | 
Спасибо
|