## Coverage profiler SDK - Třídy

- _PackUtils
- _struc_PROCESS_INFORMATION
- _struc_STARTUPINFO
- _File
- _strucPack

#### _PackUtils

Tato třída slouží pro identifikaci VFP plug-inu komponenty, kompresní a dekompresní EXE/DLL. Plní se informacema z INI souboru ze sekce [PakcUtils]. Provádí také vlastní test na přítomnost jednotlivých částí (zda vůbec existují).
Vlastnosti
Název | Hodnota | Popis
C_File | "" | Kompresní utilita
| Určuje umístění a název kompresní utility. Pokud je v INI souboru použita relativní cesta, pak tato cesta bude nahrazena plnou cestou.
D_File | "" | Dekompresní utilita
| Určuje umístění a název dekompresní utility. Pokud je v INI souboru použita relativní cesta, pak tato cesta bude nahrazena plnou cestou.
VFP | "" | VFP plugin pro kompresi a dekompresi
| Určuje umístění a název VFP pluginu s definicí interface pro kompresní a dekompresi. Pokud je v INI souboru použita relativní cesta, pak tato cesta bude nahrazena plnou cestou.
iPack | .NULL. | Interface pro pakování a rozpakování
| Na tuto vlastnost se nalinkuje interface pakovací komponenty vrácený pomocí procedury GetIterface() z VFP pluginu.
lError | .F. | Příznak chyby
| Interní příznak pro zachycení chyby v události Error()
Metody
Název | Popis
IntegrityTest() | Provede test, zda existují části pakovací komponenty
    BOOLEAN IntegrityTest(
       liFile INTEGER && Typ části na kontrolu
    )
Parametr: liFile Tento parametr řídí, která část se má kontrolovat. 0 - kompresní část, 1 - dekompresní část Vrací: .T. - části lokalizovány, .F. - jakákoliv část nebyla lokalizována Poznámka: Pokud na daných cestách neexistují dané části (EXE/DLL), pak se je pokusí lokalizovat. Pokud se to podaří pak se zapíšou zpět do vlastností C_File/D_File/VFP cesta a název dané části.. Tuto metodu volá sám "Coverage Profiler" před každým ukládáním do CVP souboru či načítáním z CVP souboru. VFP plugin se kontroluje vždy jen jednou a to při první zavoláním této metody.

#### _struc_PROCESS_INFORMATION

Tato třída slouží předání informací pro funkci CreateProcess() co a jak se má spustit. Tato třída je částečným ekvivalentem struktury PROCESS_INFORMATION.
Vlastnosti
Název | Hodnota | Popis
cb | 0 | Reserved
lpReserved | .NULL. |
lpDesktop | .NULL. |
lpTitle | .NULL. |
dwX | 0 |
dwY | 0 |
dwXSize | 0 |
dwYSize | 0 |
dwXCountChars | 0 |
dwYCountChars | 0 |
dwFillAttribute | 0 |
dwFlags | 0 |
wShowWindow | 0 |
cbReserved2 | 0 |
lpReserved2 | .NULL. |
hStdInput | 0 |
hStdOutput | 0 |
hStdError | 0 |
Metody
Název | Popis
SizeOf() | Vrátí kompletní délku struktury v bytes.
    INTEGER SizeOf()
Vrací: Kompletní délku řetězce v bytes. Poznámka: Tuto metodu využívá metoda CreateString().
CreateString() | Vytvoří string
    STRING CreateString()
Vrací: Z obsahu vlastností vytvoří řetězec. Poznámka: Vrácený řetěc se předá do API funkce CreateProcess()..

#### _struc_STARTUPINFO

Tato třída slouží pro navrácení informací z funkce CreateProcess() o spuštěném procesu. Tato třída je ekvivalentem struktury STARTUPINFO.
Vlastnosti
Název | Hodnota | Popis
hProcess | 0 | Handle spuštěného procesu
| Handle spuštěného procesu
hThread | 0 | Handle hlavního vlákna spuštěného procesu
dwProcessId | 0 | Identifikátor spuštěného procesu
dwThreadId | 0 | Identifikátor hlavního vlákna spuštěného procesu
Metody
Název | Popis
CreateString() | Vytvoří string z vlastností
    STRING CreateString()
Vrací: Z obsahu vlastností hProcess, hThread, dwProcessId, dwThreadId vytvoří řetězec. Poznámka: Vrácený řetěc se předá do API funkce CreateProcess()..
ReadString() | Ze stringu načte zpět informace do vlastností
    NONE ReadString(
       lcStruc STRING && Zdrojový řetězec obsahující strukturu jazyka C++
    )
Parametr: lcStruc Tento parametr obsahuje naplněnou strukturu STARTUPINFO vyjádřenou jako řetězec Poznámka: Údaje z řetězce se převedou na vlastnosti hProcess, hThread, dwProcessId, dwThreadId.

#### _File

Tato třída slouží pro předání informací o komprimovaném/dekomprimovaném souboru.
Vlastnosti
Název | Hodnota | Popis
Key | "" | Kód souboru (XXT100.DBF)
| Určuje jednoznačný klíč souboru v interním seznamu.
Group | "" | Skupina (XXT100)
| Určuje skupinu, do které soubor patří. Třeba soubory XXT100.DBF a XXT100.FPT patří do skupiny XXT100
Main | .T. | Příznak, zda se jedná o hlavní soubor ve skupině
| Určuje zda tento soubor je definován jako hlavní v dané skupině. Tento příznak mají všechny DBF soubory.
Caption | "" | Popis skupiny/souboru
| Popis konkrétního souboru nebo skupiny.
Necessary | .T. | Příznak, zda je soubor nutný pro uložení
| Příznak, zda je nutné tento soubor uložit do souboru CVP.
Size | 0 | Velikost nezpakovaného souboru
| Určuje velikost nezpakovaného souboru.
Packed | 0 | Příznak souboru, zda byl zpakován
| Příznak, zda byl tento soubor při načtení z CVP souboru dekomprimován.
PackedSize | 0 | Velikost zpakovaného souboru
| Určuje velikost zpakovaného souboru.
Saved | 0 | Příznak, zda byl souboru uložen
| Příznak, zda se podařilo tento soubor uložit do souboru CVP, či byl tento soubor načten z CVP souboru.
MaySave | 0 | Příznak, zda se může uložit (jen pro Necessary=.F.)
| Určuje zda se má tento soubor ukládat do CVP souboru.
File | "" | Název cesty a souboru pro uložení a otevření
| Určuje umístění a název souboru pro práci s nim.
FirstRecord | 0 | První řádek, kde se nachází uložený soubor
| Určuje první řádek v CVP souboru, kde se nacházejí první bytes tohoto souboru.

#### _strucPack

Tato třída slouží předání informací pro kompresi/dekompresi souborů.
Vlastnosti
Název | Hodnota | Popis
PU | .NULL. | Odkaz na objekt o pakovací utilitě třídy _PackUtils
| Objekt obsahuje potřebné informace pro určení samotných kompresních a dekompresních utilit.
PI | .NULL. | Odkaz na objekt třídy _struc_PROCESS_INFORMATION
| Objekt má vyplněné vlastnosti dwFlags a wShowWindow a to tak, aby se při spuštění procesu nezobrazovalo hlavní okno procesu.
SI | .NULL. | Odkaz na objekt třídy _struc_STARTUPINFO
| Objekt soluží pro navrácení informací o spuštěném procesu.
File | .NULL. | Odkaz na objekt souboru _File
| Objekt obsahuje potřebné informace pro kompresi a dekompresi souboru (třeba velikost souboru před a po kompresi).
File_S | "" | Zdrojový soubor pro kompresi/dekompresi
| V případě komprese obsahuje umístění a název souboru pro kompresi. V případě dekomprese obsahuje umístění a název souboru pro dekompresi.
File_D | "" | Cílový soubor pro kompresi/dekompresi
| V případě komprese obsahuje umístění a název souboru výsledného zkomprimovaného souboru. V případě dekomprese obsahuje umístění a název dekomprimovaného souboru.