Я не знаю об этой конкретной ошибке, но у меня есть некоторая справочная информация об этом сообщении об ошибке.
COM определяет два уровня информации об ошибках. Все COM-методы и свойства имеют возвращаемое значение с типом HRESULT, где 0 (S_OK) указывает на успех, а отрицательные значения указывают на ошибку. Кроме того, существует механизм предоставления так называемой «расширенной информации об ошибках».
Если COM-объект генерирует расширенную информацию об ошибках, VB6 покажет предоставленную информацию. Если COM-объект возвращает отрицательное значение, но не предоставляет исчерпывающую информацию об ошибках, то VB6 показывает сообщение «Метод» ~ «объекта« ~ »не удалось».
Существуют некоторые стандартные коды ошибок, такие как E_POINTER и E_NOTIMPL, которые часто возвращаются COM-объектами в C ++. Все это приводит к сообщению «Метод« ~ »объекта« ~ »не выполнен».
Если вы реализуете COM-объект в C ++, я советую всегда генерировать расширенную информацию об ошибках. (В ATL вам просто нужно вызвать функцию Error.)