Re: Помогите плз.
От: Vi2 Удмуртия http://www.adem.ru
Дата: 13.07.04 09:16
Оценка:
Здравствуйте, Ionich, Вы писали:

I>Есть exe — сервер. В его интерфейсе функция

I>[id(2), helpstring("method Init")] HRESULT Init([in] BSTR hostName, [out, retval] long* ErrCode);

I>сама ф-я такая:
I>TDMETHODIMP CModernize::Init(BSTR hostName, long *ErrCode)
I>{
I> *ErrCode = 3; 
I> return S_OK;
I>}

I>код на клиенте: позднее связывание, объект получаю через CoCreateInstanceEx()
I>...
I>long ErrCode=10;
I>pModern->Init(BSTRHostName,&ErrCode);

I>После этого ErrCode имеет значение 0
I>Где грабли?

В позднем связывании. [out, retval] возвращается не в параметре pDispParams, а через pVarResult. Пройди через клиентский вызов pModern->Init в Отладчике или по исходникам. Может быть, правда, ошибка в серверной части, которая неправильно упаковывает результат.
Vita
Выше головы не прыгнешь, ниже земли не упадешь, дальше границы не убежишь! © КВН НГУ
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.