habe mal (wieder) ein Problem mit ActiveX.
Aus einer Xbase Anwendung bediene ich MS Powerpoint (2003).
(Ich muss das Format einer Folie ermitteln.)
Beispiel:
Code: Alles auswählen
oPowerpoint := GetObject( NIL, "Powerpoint.Application" )
IF NIL == oPowerpoint
...
// Druckeigenschaften einstellen
cPageFormat := MEMVAR->gcFormat
ELSE
// Erzeugen eins Objektes der Klasse ActiveXObject aus
// einem Objekt der Klasse AutomationObject.
// Diese wurde von der Function GetObject() zurückgegeben.
oPowerpoint := oPowerpoint:dynamicCast( ActiveXObject() )
// Wichtig !!! Fenster muss visible sein !!!
oPowerpoint:visible := .T.
// Fenster minimieren
oPowerpoint:WindowState = 2
// Folie laden
oPowerpoint:Presentations:Open( pcFile )
// Hier wird das Format ermittelt ...
...
// dann wird noch gedruckt ...
...
// Und zum Schluss Folie und die Presentation schließen..
oPowerpoint:ActivePresentation:close()
oPowerpoint:Quit()
oPowerpoint:destroy()
Nach meinen Recherchen muss es eine quit() Methode geben. Das Programm läuft an diese Stelle aber ohne Murks durch und es passiert nichts.
Leider bin ich auf der Suche nach einer ActiveX Dokumentation für Powerpoint nicht wirklich erfolgreich gewesen.
In diesen Fällen hälfe ich mir damit, dass ich VBA benutzte und schaue was da möglich ist. Das übertrage ich dann in Xbase.
Alle so gefundenen Methoden funktionieren, nur eben das Quit() nicht.
Hat jem. einen Tipp für mich? Was könnte ich noch versuchen?
Gruß,
Notloesung