Destructors for COM components

   I used the ATL COM wizard to create a component. I made an interface IDBManager. The implementation class is CDBManger. This class handles Database Operations. In the constructor of this class I've opened a few connections to databases. I want to release these connections when the component is killed....where do i write the code for the destructor itself? Or anywhere else?
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Destructor will do if you're only diong non-COM related stuff.
To do that you can override 'FinalRelease' on the ATL class your class is deriving from. From the ATL Library Reference:

CComObjectRootEx::FinalReleaseSee Also
CComObjectRootEx Overview | Class Members | CComObjectRootEx::FinalConstruct
You can override this method in your derived class to perform any cleanup required for your object.

void FinalRelease( );
By default, CComObjectRootEx::FinalRelease does nothing.

Performing cleanup in FinalRelease is preferable to adding code to the destructor of your class since the object is still fully constructed at the point at which FinalRelease is called. This enables you to safely access the methods provided by the most derived class. This is particularly important for freeing any aggregated objects before deletion.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Microsoft Development

From novice to tech pro — start learning today.

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.