Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Заполнение форм cppWebBrowser

290
25 июня 2012 года
Patr1ot
458 / / 09.02.2008
Добрый день!
В с++ Builder 2007 этот код нормально работал, в Rad Studio xe2
Отказывается пишет ошибку:
[BCC32 Fatal Error] atlbase.h(5): F1003 Error directive: You must copy ATL files from an earlier version of BDS [$(BDS)\include\atl\*.*] to use ATL

код:
подгружал вот эту директиву: #include <atl/atlbase.h>
#include <mshtml.h>

Код:
CComQIPtr<IHTMLDocument2, &IID_IHTMLDocument2>                  pDoc;
  CComQIPtr<IHTMLElementCollection, &IID_IHTMLElementCollection>  pColl;
  CComQIPtr<IDispatch, &IID_IDispatch>                            pTmpDisp;
  CComQIPtr<IHTMLInputElement, &IID_IHTMLInputElement>            pElement;
  CComQIPtr<IDispatch, &IID_IDispatch>                            pDisp;
  if ( SUCCEEDED (CppWebBrowser1->Document->QueryInterface(IID_IHTMLDocument2, (LPVOID*)&pDoc)))    {
    if ( SUCCEEDED (pDoc->get_all(&pColl)))                 {
      if ( SUCCEEDED (pColl->item(TVariant(WideString(Name)), TVariant(0), &pDisp))) {
        pElement = pDisp;
        pElement->put_value(WideString(Data));
      }
    }
  }
290
26 июня 2012 года
Patr1ot
458 / / 09.02.2008
В общем сам решил проблему.
Кому интересно вышел из положения так:

Скопировал файлы из BCB6 в Rad Studio XE2 следующий каталог:
C:\Program Files\Embarcadero\RAD Studio\9.0\include\windows\sdk\atl\atlbase.h
C:\Program Files\Embarcadero\RAD Studio\9.0\include\windows\sdk\atl\atldef.h
C:\Program Files\Embarcadero\RAD Studio\9.0\include\windows\sdk\atl\atliface.h
C:\Program Files\Embarcadero\RAD Studio\9.0\include\windows\sdk\atl\atlconv.h
C:\Program Files\Embarcadero\RAD Studio\9.0\lib\win32\release\bcbatl.lib

И все заработало
290
26 июня 2012 года
Patr1ot
458 / / 09.02.2008
Есть еще один вопрос, код ниже является кнопкой, но она не имеет ни id ни name для нажатия, как можно ее нажать не имея id и name?

<div class="button_center_small" style="width: 50px"><span style="font-weight:normal">Find</span></div>
<span style="font-weight:normal">Find</span>

Код:
if( CppWebBrowser1->Document )    {
    TComInterface<IHTMLDocument2> pDocument;
    CppWebBrowser1->Document->QueryInterface(IID_IHTMLDocument2, (LPVOID*)&pDocument);
    if( pDocument )        {
      TComInterface<IHTMLElementCollection> pCollection;
      pDocument->get_all(&pCollection);
      if( pCollection )            {
        TComInterface<IDispatch> pDisp;
        pCollection->item(TVariant(WideString("имя кнопки")), TVariant(0), &pDisp);
        if( pDisp )                {
          TComInterface<IHTMLElement> pElement;
          pDisp->QueryInterface(IID_IHTMLElement, (LPVOID*)&pElement);
          if( pElement )                    {
            pElement->click();
          }
        }
      }
    }
  }
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог