我有一个当用户按下登录按钮时调用的 StartComObjects 函数和一个当用户按下取消按钮时调用的 StopComObjects 函数。StartComObjects 函数使用 CComPtr.CoCreateInstance 创建 COM 对象并使用 AfxConnectionAdvise 设置一些连接点。当用户按下取消按钮时,连接点使用 AfxConnectionUnadvise 断开连接,COM 对象在调用 CComPtr 上的 Release 之前停止。
当我第二次按下登录按钮时,CComPtr.CoCreateInstance 返回 0x80070582(类已存在)。这可以防止在第二次调用 StartComObjects 时创建 COM 对象。我不确定为什么这不起作用。不应该 CComPtr::Release 释放 COM 对象并允许我在旧对象停止后创建一个新对象吗?有没有办法解决这个问题?