#c #com #atl #ole
#c #com #atl #ole
Вопрос:
Привет, я пытаюсь вернуть свой OLE-объект (SerwerError) следующим образом :
[propget, id(2)] HRESULT LastError([out, retval] IServerError* pVal);
но я получаю ошибку :
syntax error : expecting a type specification near "IServerError"
Я не могу найти разрешение… Как я могу передать Ole-объект ([in] / [out])
Комментарии:
1. Вы показываете снимок экрана с именем класса C CServerError. C, а не I. Какие интерфейсы он реализует или вы забыли #включить файл .h, угадать невозможно.
2. @HansPassant screenshot.sh/mKTX2EwR7ovDY
Ответ №1:
[out]
параметр указателя интерфейса должен иметь тип «указатель на указатель интерфейса»:
[out, retval] IServerError** pVal
То есть вторая звездочка. Вы будете возвращать IServerError*
значение. Затем IServerError
сам интерфейс должен быть определен достаточно рано, чтобы на момент объявления метода его тип был известен.
Комментарии:
1. я объявил IServerError