Официальный сайт программы DupKiller

Написание плагинов

Описания функций интерфейса плагина указаны на 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, которая полностью поддерживает данный плагин.


© Александр Рослов aka TR da Alien, 2004-2007
http://www.dupkiller.net | dupkiller@dupkiller.net