Guest |
Отправлено: 26.02.2006, 23:07 |
|
Не зарегистрирован
|
Мне нужно перевести работу IE в режим оффлайн для этого я реализовал функцию
[/CODE]
BOOL CPlugin::OnAmbientProperty(COleControlSite* pSite, DISPID dispid, VARIANT* pvar)
{
//AFX_MANAGE_STATE(AfxGetStaticModuleState());
if (dispid == DISPID_AMBIENT_DLCONTROL)
{
pvar->vt = VT_I4;
pvar->lVal =DLCTL_FORCEOFFLINE;
return true;
}
return CPlugin::OnAmbientProperty(pSite,dispid,pvar);
}
[/CODE]
А так же функцию
CODE |
void CPlugin::NotifyControl(void)
{
ASSERT(m_pWebBrowser2!= NULL);
IOleControl* pOleControl;
IDispatch *Dispatch;
m_pWebBrowser2->get_Container(&Dispatch);
HRESULT hr = Dispatch->QueryInterface( __uuidof( IOleControl ), (void**)&pOleControl );
if ( SUCCEEDED( hr ) )
{
pOleControl->OnAmbientPropertyChange(DISPID_AMBIENT_DLCONTROL);
pOleControl->Release();
}
}
|
Для изменения свойств в любое время. Но при первой загрузки документа функция OnAmbientProperty не вызывается, а при вызове NotifyControl при Dispatch->QueryInterface( __uuidof( IOleControl ), (void**)&pOleControl ); происходит ошибка Unhandled exception at 0x1002443c MY.dll in iexploer.exe
Что не так ? Нужно ли для OnAmbientProperty реализовывать какой либо обработчик или достаточно только ее определения ? |
|
GIZMO |
Отправлено: 27.02.2006, 11:29 |
|
Машинист паровоза
Группа: Участник
Сообщений: 174
|
QUOTE (Guest @ 26/02/2006, 23:07) | Мне нужно перевести работу IE в режим оффлайн для этого я реализовал функцию
[/CODE]
BOOL CPlugin::OnAmbientProperty(COleControlSite* pSite, DISPID dispid, VARIANT* pvar)
{
//AFX_MANAGE_STATE(AfxGetStaticModuleState());
if (dispid == DISPID_AMBIENT_DLCONTROL)
{
pvar->vt = VT_I4;
pvar->lVal =DLCTL_FORCEOFFLINE;
return true;
}
return CPlugin::OnAmbientProperty(pSite,dispid,pvar);
}
[/CODE]
А так же функцию
CODE |
void CPlugin::NotifyControl(void)
{
ASSERT(m_pWebBrowser2!= NULL);
IOleControl* pOleControl;
IDispatch *Dispatch;
m_pWebBrowser2->get_Container(&Dispatch);
HRESULT hr = Dispatch->QueryInterface( __uuidof( IOleControl ), (void**)&pOleControl );
if ( SUCCEEDED( hr ) )
{
pOleControl->OnAmbientPropertyChange(DISPID_AMBIENT_DLCONTROL);
pOleControl->Release();
}
}
|
Для изменения свойств в любое время. Но при первой загрузки документа функция OnAmbientProperty не вызывается, а при вызове NotifyControl при Dispatch->QueryInterface( __uuidof( IOleControl ), (void**)&pOleControl ); происходит ошибка Unhandled exception at 0x1002443c MY.dll in iexploer.exe
Что не так ? Нужно ли для OnAmbientProperty реализовывать какой либо обработчик или достаточно только ее определения ? |
1. Приглядись по внимательней к названию форума и названию сайта (подсказка — там есть слово C++Builder). Отсюда вопрос: — есть смысл постить сюда если пишешь на VC/MFC?
2. Обработать DISPID_AMBIENT_DLCONTROL можно только в своем контейнере, отключить картинки, скрипты и т.д. таким способом у IE не получится.
|
|
|