On Fri, May 10, 2013 at 1:58 PM, Mike Copeland <[email protected]> wrote:


> Okay, first, honors to The Great Ted for this...it's like the last piece
> of a puzzle that makes everything complete.
>

Aw, shucks.

And just to make sure I understand why this helps, my guess is that
> GETOBJECT() creates a pointer to the existing, activated OLE app, and
> therefore it prevents the OLE app from responding in the same way as it
> would by direct interaction. Please correct me if that's wrong (probably
> not 100% on target, but...)
>

Yes, my understanding is that, depending on the OLE interface that's
implemented, CreateObject() invokes a new EXE to talk to (starting a new
conversation), while GetObject() attempts to communicate with an existing,
running executable.

I suspect that what you REALLY want to do is... (pseudocode, will not
compile)

oWord = CreateObject(Word.Application)
start loop...
oDoc = oWord.Open(MyExistingDoc.Doc)
oDoc.Print()
... pause ....
oDoc.Close(WithoutSaveChangesDialog)
end loop
oWord.Close, Clear, Release, whichever's appropriate.

But as I've already disclaimed, Automation was a dozen years ago, and I
gave up on writing Automation code around the third time MS broke the
backwards-compatible interfaces.

>
> Would it be good practice, to prevent consuming more and more memory, to
> release the GETOBJECT() reference after the document is printed (and before
> you iterate for the next document)?
>


If GetObject getting released causes the EXE to collapse, so the
next invocation requires reloading the EXE, no, that would be less
efficient. IIRC, different Office apps behave(d) differently. Did I mention
there's a book you ought to review <g>?

-- 
Ted Roche
Ted Roche & Associates, LLC
http://www.tedroche.com


--- StripMime Report -- processed MIME parts ---
multipart/alternative
  text/plain (text body -- kept)
  text/html
---

_______________________________________________
Post Messages to: [email protected]
Subscription Maintenance: http://mail.leafe.com/mailman/listinfo/profox
OT-free version of this list: http://mail.leafe.com/mailman/listinfo/profoxtech
Searchable Archive: http://leafe.com/archives/search/profox
This message: 
http://leafe.com/archives/byMID/profox/CACW6n4vC2+Eu_ye=ivuvsyiu5sjzptbbjd5tyxko67qphw2...@mail.gmail.com
** All postings, unless explicitly stated otherwise, are the opinions of the 
author, and do not constitute legal or medical advice. This statement is added 
to the messages for those lawyers who are too stupid to see the obvious.

Reply via email to