|
|
Написание плагинов Описания функций интерфейса плагина указаны на Delphi. Но их несложно переделать на C/C++ или другой язык программирования. Когда вы скомпилируете библиотеку, пожалуйста, разместите ее в любую подпапку каталога Plugins в папке, куда установлена программа DupKiller. Например, C:\Program Files\DupKiller\Plugins\YourPluginName Ниже подана таблица, которой указанны все доступные функции. Не все функции должны присутствовать в вашем плагине, но напротив обязательных для каждого типа плагина поставлены плюсы (+). Если стоит минус (), то функция в плагине данного типа не используется. | Тип плагина | Функция | Описание | | Сравнение | Просмотр | | + | + | function DupKillerPlugin:boolean | Эта функция должна возвращать истину (всегда!). Она предназначена, чтобы DupKiller мог найти свои плагины. Если эта функция отсутствует, или возвращает ложь, то плагин не будет подключен. | | + | + | function GetPluginInfo(value:PChar):PChar | Возвращает информацию о плагине, используя значение value. Например: GetPluginInfo('name') возвращает имя плагина (например, 'ApproCom'). GetPluginInfo('author') возвращает имя автора плагина (например, 'Oleksandr Roslov'). GetPluginInfo('version') возвращает версию плагина (например, '0.1'). GetPluginInfo('comparer') возвращает '1', если плагин предназначен для сравнения файлов, или '0', если нет. GetPluginInfo('viewer') возвращает '1', если плагин предназначен для предпросмотра файлов, или '0', если нет. GetPluginInfo('tbc') возвращает '1', если при сравнении файлов плагин использует побайтное сравнение, или '0', если нет. GetPluginInfo('description') возвращает описание плагина (например, 'Compares files using not whole contents but random samples.'). Все другие значения должны возвращать пустую строку (''). | | + | | function PluginCompare(f1,f2:PChar):boolean | Сравнивает файлы и возвращает истину, если файлы являются дублированными, или ложь в другом случае. f1 и f2 полные пути (с именами файлов) к файлам, которые нужно сравнивать. | | | | procedure ShowPluginProperties | Отображает окно настроек плагина. | | | | procedure LoadSettings(FullPath:PChar) | Загружает настройки плагина из реестра. FullPath указывает ветку реестра HKCU, где плагины сохраняют свои настройки. Например, Software\TR\DupKiller\Settings\Plugins. Здесь плагин должен иметь свой раздел (например, ApproCom), в котором он хранит свои настройки. | | | | procedure SaveSettings(FullPath:PChar) | Сохраняет настройки плагина в реестре. FullPath указывает ветку реестра HKCU, где плагины сохраняют свои настройки. Например, Software\TR\DupKiller\Settings\Plugins. Здесь плагин должен иметь свой раздел (например, ApproCom), в котором он хранит свои настройки. | | | | procedure LoadDefaultSettings | Загружает настройки плагина по умолчанию. | | | | procedure Terminate | Останавливает работу плагина. Вызывается, когда пользователь нажал кнопку остановки сканирования. | | | | procedure Prepare | Подготавливает плагин к работе. Вызывается перед началом сканирования. | | | + | function ViewFile(h:THandle; fn:PChar):boolean | Отображает файл в окне предпросмотра. Первый параметр указывает на хэндл панели окна, на которой плагин должен разместить свои компонеты для отображения файла. Второй параметр это полный путь к файлу, который нужно отобразить. Функция возвращает истину, если удалось отобразить файл, или ложь, если произошла какая-то ошибка. Вызывется, когда курсор в списке дубликатов стает на файл с расширением, которое поддерживает данный плагин. | | | | procedure StopView | Дает указание плагину о прекращении отображения файла. Вызывается, когда курсор уходит с файла или окно предпросмотра закрывается. | | | + | function GetPluginExtensions:PChar | Возвращает строку с расширениями файлов, которые поддерживает плагин. Расширения должны разделятся пробелом и не включать символ точки (например, 'wav wma mp3'). | | | | procedure Resize | Вызывается при изменении размеров окна предпросмотра, чтобы плагин сумел корректно обновить изображение в соответствии с новыми размерами окна. | | + | + | function GetDKVersion:PChar | Возвращает версию программы DupKiller, которая может поддерживать данный плагин (например, '0.8.2'). Желательно указывать наименьшую версию DupKiller, которая полностью поддерживает данный плагин. |
|