CComPtr CoCreateInstance returns 0x80070582 (Class already exists.)
Posted
by Trevor Balcom
on Stack Overflow
See other posts from Stack Overflow
or by Trevor Balcom
Published on 2010-05-18T16:04:57Z
Indexed on
2010/05/18
17:40 UTC
Read the original article
Hit count: 430
I have a StartComObjects function called when the user presses the Login button and a StopComObjects function called when the user presses the Cancel button. The StartComObjects function uses CComPtr.CoCreateInstance to create the COM object and sets up some connection points using AfxConnectionAdvise. When the user presses the Cancel button the connection points are disconnected using AfxConnectionUnadvise and the COM object is stopped before calling Release on the CComPtr.
When I press the login button a second time the CComPtr.CoCreateInstance returns 0x80070582 (Class already exists). This prevents the COM object from being created on the second call to StartComObjects. I am not sure why this isn't working. Shouldn't CComPtr::Release free the COM object and allow me to create a new one after the old one was stopped? Is there any way to get around this?
© Stack Overflow or respective owner