Xpoint
   [напомнить пароль]

Использование IE как ActiveX через СWebBrowser2 MFC класс

Метки: [без меток]
[удл]
2008-04-04 17:21:58 [обр] dimagolov(0/3)[досье]

Доброго времени суток всем.
Есть приложение, построенное вокруг класса СWebBrowser2 из MFC, то есть CustomBrowser. Все замечательно работает, но есть нюанс. Для демонстрации клиентам настраиваем и сервер (apache) и клиента (IE просто и CustomBrowser) на ноуте и несем на демонстрацию. Проблема возникает с тем, что если ноут не подключен ни к одной сетке (то есть нету активных сетевых подключений с еще одим хостом в сети), то при попытке открыть http://localhost/OurJSsite.php IE его открывает, а CustomBrowser выплевывает ошибку (action canceled, no connection...)
код навигации в C++ такой:

void CWebBrowser2::Navigate(LPCTSTR URL, VARIANT* Flags, VARIANT* TargetFrameName, VARIANT* PostData, VARIANT* Headers)
{
   static BYTE parms[] =
      VTS_BSTR VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT;
   InvokeHelper(0x68, DISPATCH_METHOD, VT_EMPTY, NULL, parms, URL, Flags, TargetFrameName, PostData, Headers);
}
// Вызов:
   COleVariant varEmpty;
   COleVariant varFlags((short)0x80, VT_I2); // navEnforceRestricted - добавленно для борьбы с проблемой,
                     // но безуспешно
   m_Browser.Navigate(StartPage, varFlags,varEmpty,varEmpty,varEmpty);

По ходу эксперементов и отключался DisconnectAutosense у сетевух, и подключались к свичу (к которому больше ничего не было подключено), виртуальные сетевухи и т.п. железячные варианты. Вплоть до установки локального BIND-а ради того, чтобы у ноута всегда был живой DNS. Но ActiveX упорно не хочет ничего делать если нету живых коннектов к сетке, не смотря на то что он же, но через оболочку IE прекрасно конектиться.

Собственно вопрос в том, как заставить ActiveX начать броузить и при отсутствии живых сеток?

спустя 5 дней [обр] dimagolov(0/3)[досье]
Начал разбираться с проблемой. Похоже, что приложение запускает ActiveX в offline-mode. Потому что если в IE открыть что-то, то это же самое откроется и в кастомном браузере, но из кеша, запроса на сервер нету при этом.
спустя 17 часов [обр] dimagolov(0/3)[досье]
решение проблемы:
   m_Browser.SetOffline(false);

void CWebBrowser2::SetOffline(BOOL bNewValue)
{
    static BYTE parms[] =
        VTS_BOOL;
    InvokeHelper(0x226, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
         bNewValue);
}
Powered by POEM™ Engine Copyright © 2002-2005