I've got several problems here, which I think are all related. When I run this, giving it a fully-qualified file name of a Word document, it apparently does load the object and hooks it up to the proper COM server, because the FullName property works and SaveAs works.my $filename= shift @ARGV; print "processing [$filename]\n"; my $Doc= Win32::OLE->GetObject ($filename, sub {$_[0]->Close()} ); print "** $Doc $Doc->{FullName}\n"; $Doc->SaveAs ('F:\\dev\\experiment\\ScanWord\\foobar.doc');
But then when it quits, it can't Close the document (error says "This method or property is not available because a document window is not active". Close method is documented as taking either a Window or a Document or Pane, so why doens't it close this document?).
Meanwhile, after Perl terminates, WINWORD.EXE is still running, and still has the file foobar.doc open. That problem (I would have thought that this whole reference counting thing would have taken care of it!) is why I put the Close in the destructor-spec in the first place.
Any clues, please? Pointers to better Win32::OLE information than came with the .pm?
—John
In reply to Win32::OLE problem with Destructing by John M. Dlugosz
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |