
A mellékelt példa használatához a következő lépésekre van szükség: a mellékelt Registration.reg állományban lévő elérési utat módosítsa úgy, hogy a GetLinks.htm állományra mutasson, majd futtassa az állományt a bejegyzés Registry-be kerülése érdekében. Ezt követően fordítsa le a mellékelt projekteket, hogy a CLCOM COM komponens regisztrációja megtörténjen. Ezt követően indítson el egy böngészőt. Ha van betöltött weboldal, akkor annak területén kattintson jobb egérgombbal és válassza a Linkek összegyűjtése menüpontot.
A gyorsmenü kiegészítése
Az IE gyorsmenüjét egy egyszerű Windows regisztrációs adatbázis bejegyzéssel tudjuk bővíteni.
Ha a \Software\Microsoft\Internet Explorer\MenuExt\ kulcs alá elhelyezünk egy újabbat, akkor az automatikusan megjelenik. Az új bejegyzéshez azonban csak egy HTML állományt rendelhetünk hozzá.
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\Linkek összegyűjtése]
@="file://C:\\GetLinks.htm"
Ebben a HTML állományban azonban bármi lehet, így akár egy VB script is, amivel már meg tudjuk hívni a COM komponensünk metódusait.
A szükséges HTML állomány
A HTML állományban található script akkor kezd futni, mikor a létrehozott menüre kattintunk. A script kódjában a következőket tesszük:
Létrehozunk egy kapcsolatot a COM komponens osztályával, példányosítjuk azt.
<script language="VBScript">
Set ielink = CreateObject("CLCOM.CLCOMClass")
Majd lekérdezzük az aktuális weboldalon található linkek kollekcióját egy változóba.
Set links = external.menuArguments.document.links
Végigmegyünk ezen a kollekción és meghívjuk komponensünk Add függvényét, melynek paraméterként átadjuk az adott link által mutatott URL címet. Vagyis azt a sztringet, mely a HTML kód <a> tagjának href paraméterében van megadva.
For i = 0 to links.length - 1
ielink.Add links(i).href
next
Végül meghívjuk komponensünk Show függvényét, annak érdekében, hogy az elkészült lista megtekinthető legyen.
A COM komponens elkészítése
A CLCOM projekt tartalmazza a COM komponensünk kódját, mely két metódussal rendelkezik. A mellékelt példa másik projektje egy Windows-os alkalmazás, mely csak DLL-t generál, és a dialógusablak osztályának elérése a célunk vele.
A COM komponens osztályában deklarálunk is egy példányt a Form1 osztályból.
private CLForm.Form1 form = new CLForm.Form1();
A komponens Add metódusában hívjuk meg a Form1 osztályban definiált, nyilvános AddLinks metódusát, mely elhelyez egy karakterláncot (URL-t) a ListBox kontrolban.
public void Add(string link)
{
form.AddLinks(link);
}
A komponens Show metódusában pedig meghívjuk a dialógusablak Show metódusát, hogy megjelenjen ListBox kontroljában az eredményhalmazzal.
public void Show()
{
form.Show();
}
A COM komponensünk regisztrációját a RegAsm.exe segédprogrammal törölhetjük, a következő szintaxissal:
regasm.exe /u <elérési út>CLCOM.DLL