ATL в Visual Studio 2008
От: Muxeu  
Дата: 31.05.10 10:01
Оценка:
Добрый день. Создаю в ATL заготовку для СОМ-объекта. В idl-файле создаю свой интерфейс, который наследуется от интерфейса IDispatch. При создании методов интерфейса тип возвращаемого значения метода по умолчанию становится HRESULT. Как мне сделать интерфейс средствами ATL, чтоб тип возвращаемого значения метода был boolean?
Re: ATL в Visual Studio 2008
От: okman Беларусь https://searchinform.ru/
Дата: 31.05.10 10:40
Оценка:
Приветствую, Muxeu.
Вы писали:

M>Добрый день. Создаю в ATL заготовку для СОМ-объекта. В idl-файле создаю свой интерфейс, который наследуется от интерфейса IDispatch. При создании методов интерфейса тип возвращаемого значения метода по умолчанию становится HRESULT. Как мне сделать интерфейс средствами ATL, чтоб тип возвращаемого значения метода был boolean?


Только вручную редактируя idl-файл.
А вообще, так сделано неспроста. Если возвращаемое значение не является HRESULT-ом, Ваш компонент
перестает быть совместимым с Automation (и все заморочки с IDispatch становятся бессмысленными).
Так что возвращать результат из метода лучше стандартным способом, через [out, retval],
а HRESULT оставить для индикации статуса, как и положено в COM.
Re: ATL в Visual Studio 2008
От: Vi2 Удмуртия http://www.adem.ru
Дата: 31.05.10 10:41
Оценка:
Здравствуйте, Muxeu, Вы писали:

M>Создаю в ATL заготовку для СОМ-объекта. В idl-файле создаю свой интерфейс, который наследуется от интерфейса IDispatch. При создании методов интерфейса тип возвращаемого значения метода по умолчанию становится HRESULT. Как мне сделать интерфейс средствами ATL, чтоб тип возвращаемого значения метода был boolean?


По правилам СОМа, каждый метод интерфейса возвращает HRESULT как значение функции. Если этот метод также возвращает значение(я), то они возвращаются через параметры, из которых только один должен иметь атрибут [out, retval], а все другие — атрибут [out].

AFAIR, параметры методов при создании методов не автоматизируются. Нужно писать ручками.
Vita
Выше головы не прыгнешь, ниже земли не упадешь, дальше границы не убежишь! © КВН НГУ
Re[2]: ATL в Visual Studio 2008
От: Muxeu  
Дата: 31.05.10 12:05
Оценка:
Здравствуйте, Vi2, Вы писали:

Vi2>Здравствуйте, Muxeu, Вы писали:


M>>Создаю в ATL заготовку для СОМ-объекта. В idl-файле создаю свой интерфейс, который наследуется от интерфейса IDispatch. При создании методов интерфейса тип возвращаемого значения метода по умолчанию становится HRESULT. Как мне сделать интерфейс средствами ATL, чтоб тип возвращаемого значения метода был boolean?


Vi2>По правилам СОМа, каждый метод интерфейса возвращает HRESULT как значение функции. Если этот метод также возвращает значение(я), то они возвращаются через параметры, из которых только один должен иметь атрибут [out, retval], а все другие — атрибут [out].


Vi2>AFAIR, параметры методов при создании методов не автоматизируются. Нужно писать ручками.


Спасибо...)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.