Помогите разобраться в чем баг.
От: Аноним  
Дата: 03.11.04 23:58
Оценка:
Здравствуйте.

Я написал с помощью ATL примочку к Internet Explorer'у. Но возникла такая проблема.
Дело вот в чем:

Во время выполнения я создаю popup окошко в котором показываю свою страницу.
Окно я создаю обычными APIшными функциями, а потом (для отображения страницы)
создаю ActiveX конрол WebBrowser'a с помощью функции AtlAxCreateControl. Все работает нормально,
но проблема заключается в том, что после закрытия Internet Explorer'а вылетает Access Violation.
в эксплодере или в файле atlhost.h в строке 506 (функция ReleaseAll) вот в этом месте:
            if (m_spOleObject)
            {
                  m_spOleObject->Unadvise(m_dwOleObject);
>>>>>>>           m_spOleObject->Close(OLECLOSE_NOSAVE);
                  m_spOleObject->SetClientSite(NULL);
            }


Может кто-то сталкивался с подобной проблемой. Подскажите, что делать и куда копать.

P.S. Самое интересное, что если не вызывать Naviagte у браузера в окне, то бага не лезет.
Re: Помогите разобраться в чем баг.
От: Vish  
Дата: 05.11.04 10:40
Оценка:
Здравствуйте, <Аноним>, Вы писали:


А>но проблема заключается в том, что после закрытия Internet Explorer'а вылетает Access Violation.

А>в эксплодере или в файле atlhost.h в строке 506 (функция ReleaseAll) вот в этом месте:
А>
А>            if (m_spOleObject)
А>            {
А>                  m_spOleObject->Unadvise(m_dwOleObject);
>>>>>>>>           m_spOleObject->Close(OLECLOSE_NOSAVE);
А>                  m_spOleObject->SetClientSite(NULL);
А>            }
А>


А>Может кто-то сталкивался с подобной проблемой. Подскажите, что делать и куда копать.


А>P.S. Самое интересное, что если не вызывать Naviagte у браузера в окне, то бага не лезет.


Похоже что m_spOleObject указывает на уже разрушеный обьект.
Это может быть если ты лешний раз вызвал Release() для бровзера.
... << RSDN@Home 1.1.3 stable >>
Re[2]: Помогите разобраться в чем баг.
От: Konstantin S. http://www.bspdev.com
Дата: 07.11.04 21:26
Оценка:
Здравствуйте, Vish, Вы писали:

V>Здравствуйте, <Аноним>, Вы писали:



А>>но проблема заключается в том, что после закрытия Internet Explorer'а вылетает Access Violation.

А>>в эксплодере или в файле atlhost.h в строке 506 (функция ReleaseAll) вот в этом месте:
А>>
А>>            if (m_spOleObject)
А>>            {
А>>                  m_spOleObject->Unadvise(m_dwOleObject);
>>>>>>>>>           m_spOleObject->Close(OLECLOSE_NOSAVE);
А>>                  m_spOleObject->SetClientSite(NULL);
А>>            }
А>>


А>>Может кто-то сталкивался с подобной проблемой. Подскажите, что делать и куда копать.


А>>P.S. Самое интересное, что если не вызывать Naviagte у браузера в окне, то бага не лезет.


V>Похоже что m_spOleObject указывает на уже разрушеный обьект.

V>Это может быть если ты лешний раз вызвал Release() для бровзера.

Не. Прикол оказался в том, что у меня стоял Регет. И этот самый Регет при завершении глючил.
Хотя я с трудом понимаю, причем тут он... Может это совпадение ?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.