Попробую в кратце описать проблему:
В приложение было принято ловить глобально все исключения путем вызова AddVectoredExceptionHandler, колбэк которого проверяет код перехваченного исключения и если это, например, EXCEPTION_ARRAY_BOUNDS_EXCEEDED или EXCEPTION_ACCESS_VIOLATION или ... создает минидамп и завершает процесс.
Также приложение использует купленные ActiveX-ы. И вот, что просходит: Некоторые ActiveX-ы обрабатывают исключения, но при этом эти исключения все-равно ловятся нашим глобальным хендлером, и в этом случае процесс завершается, что быть не должно.(т.к ActiveX ожидает это исключение и обрабатывает его). Казалась бы, что проблемму можно решить путем регистрации этого ActiveX-а в неком списке. Теперь когда исключение ловится глобальным хендлером, то проверя модуль из которого это исключение пришло, и наличия его в списке, минидамп мы создавать не будем.
Однако появляется новая проблемма — как узнать это исключение ожидаеся ActiveX-ом и он его обрабатывает, или это пропущенное исключение, и нужно завершать процесс? Какие предложения?