Eventhandling mit externen DLLs

19/10/2007 - 15:02 von Peter Haider | Report spam
Hallo Newsgroup,

ich möchte eine DLL erstellen, wo ich z.B. Word (word.application) einbinde
Das Ergebnis sollte sein, dass ich meine DLL aufrufe und Word damit starte
und ein Dokument öffne.
Meine DLL sollte erst dann wieder verlassen werden, wenn Word verlassen wird
(Da gibt es einen "Quit" - Event bei Word, denn ich abfangen möchte)
Wie realisiere ich das mit Visual Foxpro 7/8/9?
Hat da jemand Codesamples oder Link zu hilfreichen Tips?

Grüsse

Peter
 

Lesen sie die antworten

#1 Jürgen Wondzinski
19/10/2007 - 17:27 | Warnen spam
Hallo Peter

a) Warum soll das denn eine DLL werden? FoxPro kann keine klassischen DLLs
machen (also reine Funkstionssammlungen) sondern "nur" COM-DLLs, die als
Objekt instanziiert werden. Selbst wenn jetzt aus deinem COM-Objekt heraus
Word aufgreufen wird: Dein Com-Objekt lebt immer nur solange, wie das
_aufrufende_ Programm die Objektreferenz hàlt. D.h. Dein Wunsch "Meine DLL
sollte erst dann wieder verlassen werden, wenn Word verlassen wird"
funktioniert so nicht.

b) Word aufzurufen sollte ja kein Problem sein, und zum Thema auf
Word-Ereignisse reagieren (user druckt, User beendet Word etc) guggst du mal
in der Hilfe unter EVENTHANDLER() nach. Diese Funktion koppelt das
Word-Objekt an ein VFP-Objekt, wobei zu beachten ist, dass das VFP-Objekt
exakt nach der Interface-Definition der Word-Schnittstelle aufgebaut sein
muss. So eine passende Klassendefinition kann dir der VFP-Objectbrowser per
Drag&Drop generieren:
a) ObjectBrowser starten
b) Word suchen und auswàhlen
c) Den Zweig "INterfaces" aufklappen
d) die passende Schnittstelle aussuchen, in deinem Fall scheint mir
"ApplicationEvents2" die Richtige zu sein, da hat's ne "Quit" Methode drin.
e) ein neues leeres prg öffnen
f) den Node "ApplicationEvents2" aus dem ObjectBrowser ins PRG Drag&Droppen,
g) den fertign Code bestaunen
h) in den entsprechendne Methoden den eigenen Code ergànzen.
i) Wichtig: unbenutzte Ereignisse trotzdem als Methoden stehen lassen! Die
Struktur dieser Klassendefinition darf nicht veràndert werden, sondern nur
ergànzt werden




Jürgen Wondzinski

Microsoft Visual FoxPro Technologieberater
Microsoft Most Valuable Professional seit 1996
"*´¨)
¸.•´¸.•*´¨) ¸.•*¨)
(¸.•´. (¸.•` *
.•`.Visual FoxPro: It's magic !
(¸.•``••*

Ähnliche fragen