Данный сайт уже очень давно не обновляется :( и скорее музей, чем актуальный ресурс.
Если вас интересуют новые версии моих программ, то добро пажаловать на новый сайт - citsk.ru и на новый форум.

На главную

Главная

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)


Титул  |  Загрузка  |  Описание  |  Плагины  |  Вопросы и ответы  |  История версий  |  Спасибо

Главная  |  MuzCat  |  Мои программы  |  Гостевая книга

Hosted by uCoz