Re[6]: Указатель pSrv
От: Thanatos Украина  
Дата: 22.12.03 14:58
Оценка: +1
Здравствуйте, Vi2, Вы писали:

Vi2>Class1::connect(/*[in]*/ BSTR User, /*[in]*/ BSTR Pass, /*[out]*/ IUnknown** pSrv)

Vi2>{
Vi2>HRESULT hr = S_OK;
Vi2>CComObject<Class2> * pClass2 = NULL;

Vi2>pSrv = NULL; //Vi2 — нужно: * pSrv = ...


Vi2>pClass2 = new CComObject<Class2>;


Vi2>hr = pClass2->QueryInterface( IID_IGrandSmetaSrv, reinterpret_cast<void **>(&pSrv) ) ; //Vi2 — нужно: (pSrv)


Можно, но плохо, — (*pSrv)->AddRef().
Лучше — CComObject<Class2>::CreateInstance(pSrv) вместо pClass2 = new CComObject<Class2>;
А если не нужен доступ к тем переменным Class2, которые не вынесены в интерфейс, то ещё лучше — CoCreateInstance(...).

Vi2>if ( FAILED(hr) )

Vi2>delete pClass2;
Vi2>return hr;
Vi2>}
Лучший дар, который мы получили от природы и который лишает нас всякого права жаловаться – это возможность сбежать. /М.Монтень/
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.