In
VB, this is usually because of an unreleased reference. I don't know
anything about C and COM, but I would release in the opposite order that I
created
IDIspatch * Dispatch
IDIspatch * Workbooks
IDIspatch * File
CoCreateInstance ("Excel.Application,&IDispatch)
Workbooks = PropertyGet(IDispatch,"Workbooks")
File = Invoke(Workbooks,"Open","d:\test.xls")
File::Release
Workbooks::Release
IDispatch::Release
I have reversed the release of File and Workbook.
--
Regards,
Tom Ogilvy
"David Liebtag" wrote in message
...
I am having trouble with an unexplained extra reference to Excel. I'm
hoping someone here can explain.
Here is some pseudo-code that illustrates what my code (that is written in
C) is doing:
IDIspatch * Dispatch
IDIspatch * Workbooks
IDIspatch * File
CoCreateInstance ("Excel.Application,&IDispatch)
Workbooks = PropertyGet(IDispatch,"Workbooks")
File = Invoke(Workbooks,"Open","d:\test.xls")
Workbooks::Release
File::Release
IDispatch::Release
After my program terminates, I see in the XP Task Manager that an instance
of Excel is still running. This does not happen if I skip the Open and
related Release steps.
Can anyone explain why Excel is still running?
Thanks in advance.
David Liebtag