Плагины программы jFap v2. Тех-справка

Плагины - это средства обучения работы программы с конкретными сайтами и серверами с целью облегчения доступа пользователю к данным на них.
Принцип работы таков:

Что есть плагин:

Плагин это динамически подключаемая библиотека (.dll) формата PE32 (Windows). Помимо этого данная библиотека должна экспортировать три функции с именами:
GetAbout  - Первичный этап. Обеспечивает способ запроса сведений с какими сайтами работает твой плагин.
GetProcAndIddForUrl - Первый этап второго этапа - Обеспечивает открытие особого, создаваемого и управляемого твоим плагином, блока интерфейса пользователя в окне добавления или свойств загрузки.
HasAction - Второй этап второго этапа. Обеспечивает обработку принятых из сети данных. Таковую обработку можно делать и в составе средств, обеспечиваемых GetProcAndIddForUrl, однако это настоятельно не рекомендуется т. к. лишает пользователя возможности закрыть диалог добавления до завершения фазы участия твоего плагина в процессе запроса конечных полезных пользователю данных.

Помимо возможностей этих трёх функций программа предлагает тебе и средства:

Наборы особых сообщений, позволяющих запрашивать, управлять и контролировать различные аспекты процесса запроса данных с сервера из процедур, порождаемых GetProcAndIddForUrl.
Наборы средств, обеспечивающих управление процессом получения данных и организацией интерфейса пользователя из процедур HasAction, а также и GetProcAndIddForUrl.
Библиотеку средств помощи разбора данных и вопросов сохранения настроек.
Контрол, организующий таблицу с древовидной структурой и сворачиваемыми группами её строк.

Заметки:

Один URI или IP может обрабатываться несколькими плагинами. В таком случае в окне добавления загрузки будет более двух вариантов выбора. Средств выставления приоритетов пока не предусмотрено (выставляется редактированием файла settings.ini)
В виду текущих технических проблем нельзя чтоб имя твоего файла библиотеки содержало пробелы и знаки ";" (точка с запятой)
ВАЖНО! Плагины должны собираться со связыванием с msvcrt.dll. В частных случаях это правило допустимо нарушить, но в таком случае твой плагин ни в коем случае никогда не должен вызывать какие-либо CRT функции применительно к любым данным предоставляемым и посылаемым системе!!!

Отладка:

Программа поддерживает запуск с аргументом -l:dllName.dll для удобства отладки. Запускай отладчик с аргументами:
2Fap.exe http://твой_URL -l:your.dll,
что не исключает того что http://твой_URL должен обрабатываться твоим плагином, ну и базовые: отлаживаемый плагин должен находится в папке с программой, и не забывай про рабочий каталог, если у тебя что-либо сложней единственной библиотеки или CURL и OpenSSL у тебя не установлены централизованно в операционную систему.
Далее система после своего запуска выведет сообщение "Библиотека загружена" - это специальная "точка останова", провоцируемая сразу после успешного выполнения LoadLibrary(), но до какой либо "полезной" работы с твоей библиотекой. для твоей библиотеки. Это сделано специально для того чтоб чётко обозначить что твоя библиотека найдена и дать тебе прицепиться отладчиком, если он не может это отслеживать сразу.

Понятия:

URL - Ссылка на конечные запрашиваемые данные с какого либо сервера в сети. Состоит из URI и пути к запрашиваемому объекту.
IP - "аппаратный" адрес сервера в сети. Каждый компьютер в сети имеет свой IP, некоторые также имеют доменные имена, как средство удобного представления этого сервера пользователю.
URI - Стандартное обозначение доменного имени. Имя сайта, сервера, из URL ссылки. Доменное имя - не только средство удобного представления какого-либо сервера пользователю, но и средство автоматизации и абстракции. Один URI может соответствовать нескольким физическим серверам, так и на оборот у одного сервера может быть несколько URI, причём он может их рассматривать как часть пути к запрашиваемым данным, тем самым обеспечивая работу нескольких разных веб-сайтов.
Основная, базовая программа, система (без "операционная") - указания на основной исполняющий модуль (jFap.exe) и внутренние процессы в нём, обеспечивающие работу средств, в описании которых приведено это понятие.
Плагин - динамически подключаемая библиотека, расширяющая работу базовой программы.
Пользователь (без конкретики) - отсылка потенциальных действий с визуальным интерфейсом управления программой. Также иногда в документации пользователем обозначается и разработчик плагина, но это можно отличить по контексту.
Загрузка - Совокупность данных, описывающих запрос на получение чего либо из сети, включая уже полученные данные.

Быстрая справка

ОС С поддержкой WinAPI v4
DLL 2Fap.exe, 2fapShare.dll
Библиотека 2fapShare.lib
Заголовок ***

Смотри также