Hallo,
Ich versuche, Word über
OLE anzusprechen. Bis jetzt ist es mir gelungen, eine Vorlage zu laden, verschiedene Textmarken anzuspringen und dort die Vorlage mit Text zu füllen. Beim Versuch, das Zeug auszudrucken, bekomme ich aber folgende
Exception:
Im Projekt Winlink.exe ist eine
Exception der Klasse OleException mit der Meldung 'Die Zahl muss zwischen 1 und 32767 liegen'.
Emptyparam hat laut Debugger den Wert "Fehler(-2147352572)", das ist offenbar die Ursache. Es gibt zwei Units, die Emptyparam exportieren, nämlich OleCtrls und Variants - ich nehme an, OleCtrls ist die, die ich verwenden sollte, in beiden Fällen ist aber der Wert derselbe.
Wie übergebe ich leere Parameter richtig, bzw wie bekomme ich emptyparam richtig initialisiert, wenn werder das Einbinden der
Unit Variants noch der
Unit OleCtrls hilft.
Delphi-Quellcode:
procedure drucken;
var oleKopien, oleRange: olevariant;
begin
oleKopien := kopien;
oleRange := wdPrintAllDocument;
WordDoc.PrintOutOld(EmptyParam, EmptyParam, oleRange, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, oleKopien, emptyparam) ;
end;
P.S: Den
OLE Aufruf selbst habe ich aus einem alten Delphi5 Quellcode abgeschrieben, dort funktioniert das Drucken auf diese Art einwandfrei.