Re[3]: Как CComPtr привести к IUnknown**
От: Vi2 Удмуртия http://www.adem.ru
Дата: 17.03.09 05:47
Оценка: +1
Здравствуйте, Аноним, Вы писали:

А>СуперФункцию не я писал. Просит на вход ИНеизвестный**


И для чего она просит именно ИНеизвестный**? Как насчет [out] параметра?
Vita
Выше головы не прыгнешь, ниже земли не упадешь, дальше границы не убежишь! © КВН НГУ
Как CComPtr привести к IUnknown**
От: Аноним  
Дата: 16.03.09 14:51
Оценка:
Имеется CComPtr<IMyInterface> m_myObject Мне надо получить указатель на указаьель на IUnknown от объекта m_myObject для пропихивания в функцию

Делаю так:

CComPtr<IUnknown> pUnk;
myObject->QueryInterface(&pUnk);
SuperFunction(&pUnk);


Падает на выделенной строке. Говорит что не может взять адрес нулдевого объекта. Что я не так делаю?
Re: Как CComPtr привести к IUnknown**
От: _dimidrol_ Украина http://dimontest.narod.ru
Дата: 16.03.09 15:42
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Имеется CComPtr<IMyInterface> m_myObject Мне надо получить указатель на указаьель на IUnknown от объекта m_myObject для пропихивания в функцию


А>Делаю так:


А>
А>CComPtr<IUnknown> pUnk;
А>myObject->QueryInterface(&pUnk);
А>SuperFunction(&pUnk);
А>


А>Падает на выделенной строке. Говорит что не может взять адрес нулдевого объекта. Что я не так делаю?


Попробуй так:

myObject.p->QueryInterface(IID_IUnknown, (void**)&pUnk);
Re[2]: Как CComPtr привести к IUnknown**
От: Аноним  
Дата: 16.03.09 15:46
Оценка:
Здравствуйте, _dimidrol_, Вы писали:

__>Попробуй так:


__>
__>myObject.p->QueryInterface(IID_IUnknown, (void**)&pUnk);
__>


Так собсвенно то же самое. Падает не на приведении, а на вызове с &PUnk
Re[3]: Как CComPtr привести к IUnknown**
От: _dimidrol_ Украина http://dimontest.narod.ru
Дата: 16.03.09 15:54
Оценка:
Здравствуйте, Аноним, Вы писали:

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


__>>Попробуй так:


__>>
__>>myObject.p->QueryInterface(IID_IUnknown, (void**)&pUnk);
__>>


А> Так собсвенно то же самое. Падает не на приведении, а на вызове с &PUnk


Ты для своего интерфейса IMyInterface функцию QueryInterface как имплементил?
Она возвращает нул.
Re: Как CComPtr привести к IUnknown**
От: Vi2 Удмуртия http://www.adem.ru
Дата: 16.03.09 18:48
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Имеется CComPtr<IMyInterface> m_myObject Мне надо получить указатель на указаьель на IUnknown от объекта m_myObject для пропихивания в функцию

А>Делаю так:
А>CComPtr<IUnknown> pUnk;
А>myObject->QueryInterface(&pUnk);
А>SuperFunction(&pUnk);

А>Падает на выделенной строке. Говорит что не может взять адрес нулевого объекта. Что я не так делаю?

SuperFunction(&pUnk.p); // ЕМНИП

Только зачем делать IUnknown**, да еще и обзывать СуперФункцией? А ты уверен, что спецификация этой SuperFunction позволяет [in,out] параметр? Вдруг там просто [out]?
Vita
Выше головы не прыгнешь, ниже земли не упадешь, дальше границы не убежишь! © КВН НГУ
Re[2]: Как CComPtr привести к IUnknown**
От: Аноним  
Дата: 16.03.09 19:04
Оценка:
Здравствуйте, Vi2, Вы писали:

Vi2>Только зачем делать IUnknown**, да еще и обзывать СуперФункцией? А ты уверен, что спецификация этой SuperFunction позволяет [in,out] параметр? Вдруг там просто [out]?


СуперФункцию не я писал. Просит на вход ИНеизвестный**
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.