Delphi - Az Internet Explorer kiegészítése saját eszköztárral

Explorer Extension 3. rész

forráskód letöltése
Amikor egy Explorer eszköztárat készítünk, az új osztályban implementálnunk kell az IPersistStreamInit interfészt is. Ez az interfész metódusokat szolgáltat az objektum adatainak mentésére és betöltésére egy egyszerű adatfolyam interfészen keresztül. Ebben a részben az IPersistStreamInit interfész metódusait ismertetjük, valamint egy egyszerű Explorer eszköztárat is létrehozunk.
Bár az interfészt implementálnunk kell, a függvények funkcióit nem kell megvalósítanunk, erre egészen speciális esetekben lehet csak szükség. Az interfész által szolgáltatott metódusok feladatát általában sokkal egyszerűbben is megoldhatjuk.
InitNew
Osztály: IPersistStream
function InitNew: HResult;
Ez a függvény alaphelyzetbe állítja, inicializálja az objektumot. Automatikusan lefut, amikor az objektum létrejön.
Visszatérési érték
A standard hibakódokon kívül a következő értékekkel térhet vissza:
  • S_OK, ha az inicializálás sikerült.
  • E_NOTIMPL: ha az objektumot nem szükséges inicializálni;
Megjegyzés
Ha az objektum már inicializálva volt a Load függvénnyel, akkor ennek a függvénynek a visszatérési értéke E_UNEXPECTED kell hogy legyen.
IsDirty
Osztály: IPersistStream
function IsDirty: HResult;
Ez a függvény megadja, hogy az objektumban történtek-e változtatások a legutóbbi mentés óta.
Visszatérési érték
  • S_OK, ha az objektumban történt változás;
  • S_FALSE, ha nem történt változtatás az utolsó mentés óta.
Load
Osztály: IPersistStream
function Load(
const stm: IStream
): HResult;
A paraméterként megkapott stream objektumból visszatölti az elmentett adatokat.
Paraméterek
const stm: IStream
IStream interfész objektuma, amelyből az adatok kiolvashatók.
Megjegyzés
Ha az objektum már inicializálva volt az InitNew függvényben, akkor a visszatérési érték E_UNEXPECTED.
Save
Osztály: IPersistStream
function Save(
const stm: IStream;
fClearDirty: BOOL
): HResult;
Elmenti a paraméterként megkapott stream objektumba elmenti az adatokat.
Paraméterek
const stm: IStream
Az IStream interfész, amelynek segítségével elmenthetjük az adatokat.
fClearDirty: BOOL
Ha a paraméter érték igaz, akkor törli a dirty flag-et, ami azt jelenti, hogy az IsDirty függvény visszatérési értéke S_FALSE lesz.
GetSizeMax
Osztály: IPersistStream
function GetSizeMax(
out cbSize: Largeint
): HResult;
Ez a függvény adja meg a mentésre használt stream maximális méretét.
Paraméterek
out cbSize: Largeint
Ebben a paraméterben adhatjuk meg a maximális méretet.
GetClassID
Osztály: IPersist
function GetClassID(
out classID: TCLSID
): HResult;
Az objektum CLSID azonosítóját adja vissza ez a függvény.
Paraméterek
out classID: TCLSID
Ebben a paraméterben kell megadni a CLSID-re mutató pointert.
Visszatérési érték
S_OK: ha a művelet sikeres volt;
E_FAIL: ha a CLSID nem lett megadva.

Explorer Extension cikksorozat