Antony,
Thanks for that. I can appreciate why it isn't done automatically in the
general case.
What I am trying to do is get it to work in a *specific* case.
Any clues?
Seeya
Matthew Wills @ MLC
Senior Analyst Programmer
|---------+---------------------------->
| | Antony Perkov |
| | <[EMAIL PROTECTED]|
| | AIL.COM> |
| | |
|---------+---------------------------->
>--------------------------------------------------------------------------------------------------------------|
|
|
| To: [email protected]
|
| cc:
|
| Subject: Re: [ADVANCED-DOTNET] RCW generation with automatic
ReleaseCOMObject |
>--------------------------------------------------------------------------------------------------------------|
Here is a blog entry on why Microsoft didn't just implement RCWs the way
you
are suggesting: http://blogs.msdn.com/cbrumme/archive/2003/04/16/51355.aspx
Antony
____________________
Antony Perkov
BitBolt Software Ltd
Web: www.bitbolt.com
-----Original Message-----
From: Matthew Wills [mailto:[EMAIL PROTECTED]
Sent: 13 April 2005 03:11
Subject: RCW generation with automatic ReleaseCOMObject
All,
We are automating Word / Excel from VB.NET and ran into the problem where
they won't shut down since the garbage collector hasn't garbage collected
the objects - so the reference counts of some of the COM objects is > 0.
We moved to using ReleaseCOMObject against all the objects, which obviously
got rid of the problem. (Note that I am aware that a commonly held view is
that the solution is to call GC.Collect until the problem goes away. For a
variety of reasons I disagree with this view - mainly since that technique
is not *guaranteed* to work. But lets put that to one side for now).
Nonetheless, the use of ReleaseCOMObject is quite fiddly, especially when
you have to clean up all the intermediate objects as well. As such, I am
seeing if there is an easier way. One concept that I *think* would work
would be to have all the classes in the RCW implement IDisposable, then in
C# / VB.NET 2005 I could use Using to manage the cleanup in a simpler way
(the code would still be longer than say the VB 6 equivalent, but would be
significantly shorter than currently). So my question is - is there any way
to generate a RCW where all the classes implement IDisposable and where
Dispose will automatically call ReleaseCOMObject?
Thanks
Matthew Wills @ MLC
Senior Analyst Programmer
______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email
______________________________________________________________________
===================================
This list is hosted by DevelopMentor� http://www.develop.com
View archives and manage your subscription(s) at http://discuss.develop.com
This e-mail is sent by or on behalf of the named sender identified above.
If:
(a) you do not wish to receive any e-mail marketing material from this
person in the future, please forward the contents of this email to
[EMAIL PROTECTED] with the word "unsubscribe" in the
subject box.
(b) you wish to unsubscribe from all central e-mail marketing lists
used by our business, please forward the contents of this e-mail to
[EMAIL PROTECTED] with the message "unsubscribe
from all central e-mail marketing lists" in the subject box.
If you do not forward the contents of this e-mail with your
unsubscription then it may not be able to be implemented.
The information contained in this e-mail communication may be
confidential. You should only read, disclose, re-transmit, copy,
distribute, act in reliance on or commercialise the information if you
are authorised to do so. If you are not the intended recipient of this
e-mail communication, please immediately notify us by e-mail to
[EMAIL PROTECTED], or reply by e-mail direct to the sender and then
destroy any electronic and paper copy of this message. Any views
expressed in this e-mail communication are those of the individual
sender, except where the sender specifically states them to be the views
of a member of the National Australia Bank Group of companies. Any
advice contained in this e-mail has been prepared without taking into
account your objectives, financial situation or needs. Before acting on
any advice in this e-mail, National Australia Bank Limited recommends
that you consider whether it is appropriate for your circumstances. If
this e-mail contains reference to any financial products, the National
recommends you consider the Product Disclosure Statement (PDS) or other
disclosure document before making any decisions regarding any products.
The National Australia Bank Group of companies does not represent,
warrant or guarantee that the integrity of this communication has been
maintained nor that the communication is free of errors, virus or
interference.
===================================
This list is hosted by DevelopMentor� http://www.develop.com
View archives and manage your subscription(s) at http://discuss.develop.com