How to close one instance of an OLE application without closing its RPC server along with it

Hi Community,

I have developed an application in Delphi 5, which reads information from a MS WORD document and parses it into HTML. I have used OLE technology to achieve this. The problem is that if I start another instance of MS Word form the start menu while I am running my application and close the MS Word (application that i started from the start menu) the RPC server instance also gets destroyed and everytime I want to refresh the details in my Delphi application an error message appears saying "RPC Server not found" .

How to overcome this problem ? I havetried using threads etc. Please suggest me something .

Thanks and regards

Ashish Agnihotri
ashishagnihotriAsked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
CSJConnect With a Mentor Commented:
Hi,
This is a fault in some versions of word, please refer to following link:
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q188546

To get round this you have to create a temporary ole instance:

var
  Word972000Bug, WP : Variant;
begin
  Word972000Bug := CreateOleObject('Word.Basic');
  WP := CreateOleObject('Word.Basic');
  Word972000Bug.AppClose;
  Word972000Bug := Unassigned;
  WP.AppShow;
  ..
end;

Hope this helps

Craig
0
 
lottolCommented:
You can check active OLE object. Here is an example of it for Excel.

try
  Excel:=GetActiveOLEObject('Excel.Application');
except
  try
   Excel:=CreateOLEObject('Excel.Application');
  except
   MessageDlg('Cannot create Ole object'#39
               +'Excel.Application!',mtError,[mbOK],0);
   exit;
  end;
end;
0
 
SpideyModCommented:
Force Accepted

SpideyMod
Community Support Moderator @Experts Exchange
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.