TWordEvents = class(TInterfacedObject, IUnknown, IDispatch)
A QueryInterface függvény az IUnknown osztály deklarációjában szerepel. A QueryInterface egy hozzáférést ad a megadott interfészhez, amennyiben az objektum támogatja azt. Ennek kódja a következő:
Result := E_NOINTERFACE;
if GetInterface(IID, Obj) then Result := S_OK;
if IsEqualGUID(IID, ApplicationEvents2) and GetInterface(IDispatch, Obj) then Result := S_OK;
Az IID paraméter a kérdezett interfész GUID-je. Az új osztály az ApplicationEvents2 interfészt támogatja, amiben a Word eseményei vannak deklarálva. Ehhez szükség van a Word_TLB unit-ra, amit a Word Type Library importálásával készíthetünk el. Ehhez nyissuk meg a Delphi Project menüjének Import Type Library menüpontját. A listából válasszuk ki a Microsoft Word x.0 Object Library-t, és kattintsunk a Create gombra.
FWordApp:=CoWordApplication.Create;
InterfaceConnect(FWordApp, ApplicationEvents2, self, FConnection);
Ezután az Invoke függvény minden esetben lefut, amikor egy esemény bekövetkezik. Ennek DispID paraméteréből megtudhatjuk, hogy melyik esemény futott le. Ezekhez előzőleg konstansokat hoztunk létre, hogy a forráskód átláthatóbb legyen.
A naplózandó események a következő
Startup: a Word indításakor következik be.
Quit: kilépéskor következik be.
DocumentChange: új dokumentum létrehozásakor, meglévő dokumentum megnyitásakor, vagy egy másik
dokumentumra történő átváltáskor jön létr
A következő események csak Word 2000-ben létezne
DocumentBeforeClose: a dokumentum bezárása előtt jön létre.
DocumentBeforePrint: a dokumentumkinyomtatása előtt jön létre.
DocumentBeforeSave: a dokumentum mentése előtt jön létre.
DocumentOpen. dokumentum megnyitása.
NewDocument: új dokumentum létrehozása.
WindowActivate: ablak aktivizálása.
WindowBeforeDoubleClick: az ablakra történő dupla kattintás előtt jön létre.
WindowBeforeRightClick: az ablakra jobb egérgombbal történő kattintás előtt jön létre.
WindowDeactivate: akkor jön létre, amikor az ablak elveszíti a fókuszt.
WindowSelectionChange: a kijelölés megváltozásakor jön létr