E_UNEXPECTED обычно возвращается при катастрофических сбоях. Это означает "Я не могу сказать , что пошло не так, но что-то является определенно неправильно, и я не думаю, что вы можете что-то с этим сделать. над ним ". Большую часть времени он возвращается, когда какой-то инвариант нарушается из-за ошибки или невозможности распознать дефектные входные данные (или параметры), что приводит к повреждению внутренних данных. Однако ленивые программисты возвращают его, когда им не хочется выкапывать полезное значение ошибки, и просто возвращают самое серьезное из доступных сообщений.
Если библиотека, которую вы используете, обычно должна работать, то вам следует дважды проверить, правильно ли вы ее используете.