================================================================================
Extractor API 1.3, Copyright (c) 1994-2003 Nova Software
================================================================================
Pomocí API programu Extractor lze vytvoøit pluginy, které budou pøidávat podporu
nových formátù a groupfilù a umoòovat vytváøet groupfily dalích formátù.
V adresáøi api jsou umístnìny hlavièkové soubory pouitelných funkcí a struktur.
Adresáø samples obsahuje nìkolik pøíkladù pluginù. Pøíklady jsou vytvoøeny pro
jazyky C++ (Microsoft Visual Studio, Borland C++ Builder) a Pascal (Borland
Delphi).
Pluginy musí být umístnìny v adresáøi Plugins a jejich jména musí odpovídat
souborové masce fmt_*.dll (formáty), grp_*.dll (groupfily) a out_*.dll
(vytváøení groupfilù).
Plugin se shodnou pøíponou formátu jako integrovaná podpora má vìtí prioritu,
tj. bude pouit pouze tento plugin.
1. Zjitìní informací o pluginu
===============================
Knihovna musí mít exportovanou funkci GetPluginInfo, která v návratové hodnotì
vrací ukazatel na informace (TPluginInfo) o pluginu. Pro uloení informací o
pluginu je doporuèno pouít globální promìnnou.
* Popis funkce GetPluginInfo (prototyp TGetPluginInfoProc):
ServiceProcs doplòkové funkce, pouitelné napø. pøi konfiguraci pluginu
návratová hodnota:
ukazatel na strukturu TPluginInfo
* Popis struktury TPluginInfo:
Version verze API pluginu (doporuèeno pouít konstantu API_VER)
FormatType formát souboru (výbìr z FT_xxx konstant)
Ext pøípona souboru (více pøípon je mono oddìlit èárkou)
Description popis pluginu
Priority priorita, u formátù 0 a 100 (nejvyí), u groupfilù 0 a 2,
mìla by odpovídat èetnosti výskytu formátu
TestProc adresa funkce, která testuje existenci formátu,
pokud není zadána (NULL), je testování provádìno podle pøípon
souboru, u výstupních pluginù má také hodnotu NULL
WorkProc adresa funkce, která naèítá/ukládá formát nebo groupfile,
pøedávání informací se u naèítání formátù provádí v parametru
funkce, u naèítání groupfilù pomocí funkce AddFile
AboutProc adresa informaèní funkce pluginu, není vyadována (NULL)
ConfigProc adresa konfiguraèní funkce pluginu, není vyadována (NULL)
2. Testování formátu nebo groupfilu
===================================
Funkce Test je volána, aby urèila zda se na aktuální pozici nachází formát nebo
groupfile. Funkci je pøedána adresa bufferu, z jeho obsahu se detekuje
pøísluný formát nebo groupfile. Pro detekci je mono pouít funkci Compare
nebo v pøípadì jazyka C také makro COMPARE,
které zjistí, zda se na zadané adrese nachází uvedený øetìzec.
* Popis funkce TestProc (prototyp TTestProc):
Buf adresa bufferu,
minimální velikost bufferu je 128B, maximální velikost platných
dat v bufferu není pøedávána, na rychlosti provedení funkce
silnì závisí rychlost hledání
návratová hodnota:
0 (False) formát nebo groupfile nebyl detekován
!= 0 (True) formát nebo groupfile byl detekován
* Popis funkce Compare:
buf adresa bufferu
s testovaný øetìzec
len délka testovaného øetìzce
pos posun testování od zaèátku bufferu
návratová hodnota:
0 (False) øetìzec nebyl nalezen
!= 0 (True) øetìzec byl nalezen
Makro COMPARE má shodné paramentry, navíc obsahuje pøíkaz return.
3. Naètení informací
====================
3.1 Formát
----------
Funkce WorkProc s prototypem TLoadFormatProc slouí k naètení informací o
formátu. Zjitìné informace jsou vráceny prostøednictvím parametru typu
TLoadFormatParams.
* Popis funkce WorkProc (prototyp TLoadFormatProc):
Params parametry pro nalezení souboru
návratová hodnota:
0 (False) informace o souboru nebyly úspìnì naèteny nebo se nejedná o
detekovaný soubor (planý poplach)
!= 0 (True) informace o souboru byly úspìnì naèteny
* Popis struktury TLoadFormatParams:
vstupní parametry:
FileHandle handle prohledávaného souboru,
pozice souboru je automaticky pøednastavena na hodnotu
FileStartPos
SourceFileSize velikost prohledávaného souboru
FileStartPos výchozí pozice v prohledávaném souboru
výstupní parametry:
FileSize velikost nalezeného souboru
FileExt pøípona nalezeného souboru,
pøíponu lze zkopírovat na pøedávanou adresu (vyhrazeno 256B)
nebo priøadit promìnné adresu øetìzcové konstanty èi globální
promìnné, nepøiøazovat výraz nebo lokální promìnnou, která je
uloena v zásobníku !!!
FileInfo informace o nalezeném souboru,
vyhrazeno je 4096B, o pøiøazování platí toté co u pøedchozího
parametru FileExt
3.2 Groupfile
-------------
Funkce WorkProc s prototypem TLoadGroupfileProc slouí k naètení informací
o souborech uvnitø groupfilu. Zjitìné informace o souborech jsou pøedávány
prostøednictvím funkce AddFile.
* Popis funkce WorkProc (prototyp TLoadGroupfileProc):
Params parametry pro nalezení souborù
návratová hodnota:
0 (False) nastala chyba pøi naèítání informací o souborech
!= 0 (True) vechny informace o souborech byly úspìnì naèteny
* Popis struktury TLoadGroupfileParams:
vstupní parametry:
FileHandle handle prohledávaného souboru,
pozice souboru je vdy automaticky pøednastavena na hodnotu 0
FileName jméno zdrojového souboru
Stop pøíznak udávající pøíkaz k ukonèení prohledávání souboru
výstupní parametry:
FileDone promìnná udávající poèet zpracovaných bytù souboru,
slouí pro informativní úèely
AddFile funkce, pomocí ní se pøedávají informace o nalezeném souboru
Extractoru
ShowStatus funkce, která obnoví informace o prohledávání souboru,
* Popis funkce AddFile:
Source ukazatel na název zdrojového souboru,
promìnné se pøiøazuje ukazatel na název souboru, vìtinou
vstupní parametr FileName
Pos pozice nalezeného souboru ve zdrojovém souboru
Size velikost nalezeného souboru
Info informace o nalezeném souboru,
lze uvést ukazatel na informace o nalezeném souboru
Flag pøíznak souboru,
pro interní pouití, nastavovat na 0
návratová hodnota:
0 (False) pøidání souboru do seznamu neprobìhlo v poøádku, hledání je
nutné ukonèit
!= 0 (True) pøidání souboru do seznamu probìhlo v poøádku
4. Vytvoøení groupfilu
======================
Funkce WorkProc s prototypem TSaveGroupfileProc slouí k uloení souborù
do groupfilu. K uloení souborù je mono pouít funkci ExtractFile.
* Popis funkce WorkProc (prototyp TSaveGroupfileProc):
Params parametry pro nalezení souborù
návratová hodnota:
0 (False) nastala chyba pøi vytváøení groupfilu nebo bylo vytváøení
groupfilu pøerueno (chybová zpráva se nezobrazí)
!= 0 (True) groupfile byl úspìnì vytvoøen
* Popis struktury TSaveGroupfileParams:
vstupní parametry:
FileHandle handle vytváøeného souboru,
pozice souboru je vdy automaticky pøednastavena na hodnotu 0
FileName jméno vytváøeného souboru
Count poèet souborù pro uloení do groupfilu
Stop pøíznak udávající pøíkaz k ukonèení prohledávání souboru
výstupní parametry:
FileDone promìnná udávající poèet zpracovaných bytù souboru,
slouí pro informativní úèely
GetFile funkce vracející informace o daném souboru ze seznamu ukládaných
- 1
- 2
- 3
- 4
- 5
前往页