Re: проблема с shell extension
От: Коваленко Дмитрий Россия http://www.ibprovider.com
Дата: 25.07.05 04:06
Оценка:
Здравствуйте, dkotlyarov, Вы писали:

D>Класс просто создается, а потом разрушается.


Добавь трассировку вызовов QueryInterface

D>Подскажите, пожалуйста, возможные причины. Заренее благодарен.


class CShellExt : public IShellExtInit, public IContextMenu
//...
STDMETHODIMP CShellExt::QueryInterface(REFIID riid, void** ppv)
{
 *ppv = 0;

 if (riid == IID_IUnknown || riid == IID_IShellExtInit || riid == IID_IContextMenu)
 {
  *ppv = this;
 
  AddRef();
  return(S_OK);
 }

 return (E_NOINTERFACE);
}


Очень странная реализация QueryInterface. Как минимум для IID_IContextMenu нужно было использовать
*ppv=static_cast<IContextMenu*>(this);
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.