Я создаю COM-объект, используемый для задач автоматизации какого-либо приложения. Когда это происходит, приложение запускается и отображается его главное окно.
Проблема возникает, когда пользователь закрывает главное окно приложения. Следующий вызов Invoke для COM-объекта не работает. Проблема в том, что он не выходит из строя и не сообщает об ошибке. Если я добавлю точку останова отладчика в следующую строку кода, она никогда не будет достигнута. Если я окружаю вызов Invoke командой try / catch, исключение не возникает. В сборке релиза он просто вылетает.
Как это должно работать? Поскольку я использую CComDispatchDriver в качестве оболочки для IDispatch *, я ожидаю, что мой AddRef будет поддерживать COM-объект живым, даже если пользователь закроет приложение. Я надеялся получить хотя бы немного HRESULT как ошибку.