J'ai une fonction StartComObjects appelée lorsque l'utilisateur appuie sur le bouton Connexion et une fonction StopComObjects appelée lorsque l'utilisateur appuie sur le bouton Annuler. La fonction StartComObjects utilise CComPtr.CoCreateInstance pour créer l'objet COM et définit certains points de connexion à l'aide de AfxConnectionAdvise. Lorsque l'utilisateur appuie sur le bouton Annuler, les points de connexion sont déconnectés en utilisant AfxConnectionUnadvise et l'objet COM est arrêté avant d'appeler Release sur le CComPtr.CComPtr CoCreateInstance renvoie 0x80070582 (la classe existe déjà.)
Lorsque j'appuie sur le bouton de connexion une deuxième fois, CComPtr.CoCreateInstance renvoie 0x80070582 (la classe existe déjà). Cela empêche la création de l'objet COM lors du deuxième appel à StartComObjects. Je ne sais pas pourquoi cela ne fonctionne pas. CComPtr :: Release ne devrait-il pas libérer l'objet COM et me permettre d'en créer un nouveau après l'arrêt de l'ancien? Y a-t-il un moyen de contourner cela?