Re: Очередной баг?
От: Trantor Россия  
Дата: 12.08.02 12:50
Оценка:
Здравствуйте _defrager, Вы писали:

D>Делаю себе браузер на движке ie и наткнулся на такой код в MFC:


D>(Mfc7, ViewHtml.cpp, ExecFormsCommand)


D>/////////////////////////////////////////

D> HRESULT hr = E_FAIL;

D> CComPtr<IHTMLDocument2> spDoc = (IHTMLDocument2*) GetHtmlDocument();

D> if (spDoc != NULL)
D> {
D> CComQIPtr<IOleCommandTarget> spCmdTarget = spDoc;
D> if (spCmdTarget != NULL)
D> hr = spCmdTarget->Exec(&CMDSETID_Forms3, dwCommandID,
D> OLECMDEXECOPT_DONTPROMPTUSER, pVarOut, pVarIn);
D> }

D> return hr;

D>////////////////////////////////////////

D>Как я понимаю, здесь теряется один Release() , потому что Release() нужно вызвать и для spDoc,

D>и для диспатча,возвращаемого GetHtmlDocument()

D>Так ведь?



D>ps. Любители критиковать чужие браузеры, посмотрите плз stylerbrowser.narod.ru (250kb)


На сколько я помню в деструкторе CComPtr есть Release(), так что его вызывать ненужно...
В жизни мало быть умным, надо еще быть не дураком.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.