Компонент CppInternetExplorer
От: aleckstein Россия  
Дата: 17.09.03 10:48
Оценка:
В С++ Builder`е 5 на странице палитры Servers есть компонент CppInternetExplorer, который судя по всему служит для связи, управления и работы с InternetExplorer. Будьте добры, подскажите, кто знает, какой метод этого компонента сможет заставить перейти InternetExplorer на сайт, скажем http://www.rsdn.ru/ ? И если не трудно, то не могли бы вы дать не просто название метода, а то какие у него параметры и как их заполнять. А то я все эксперементировал с методом Navigate, но что-то у меня ничего не получилось...

Заранее благодарен.
acta non est fabula — представление не окончено
Re: Компонент CppInternetExplorer
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 17.09.03 10:54
Оценка:
Здравствуйте, aleckstein, Вы писали:

A>В С++ Builder`е 5 на странице палитры Servers есть компонент CppInternetExplorer, который судя по всему служит для связи, управления и работы с InternetExplorer. Будьте добры, подскажите, кто знает, какой метод этого компонента сможет заставить перейти InternetExplorer на сайт, скажем http://www.rsdn.ru/ ? И если не трудно, то не могли бы вы дать не просто название метода, а то какие у него параметры и как их заполнять. А то я все эксперементировал с методом Navigate, но что-то у меня ничего не получилось...


А что не получалось?


CppWebBrowser1->Navigate(L"http://www.rsdn.ru/");

    TVariant noHistory = 2;
    TVariant headers = "My-Header: test";
    TVariant empty;

CppWebBrowser1->Navigate(L"http://www.rsdn.ru/",noHistory,empty,empty,headers);
Re: Компонент CppInternetExplorer
От: temofey  
Дата: 17.09.03 13:56
Оценка:
Здравствуйте, aleckstein, Вы писали:

A>В С++ Builder`е 5 на странице палитры Servers есть компонент CppInternetExplorer, который судя по всему служит для связи, управления и работы с InternetExplorer. Будьте добры, подскажите, кто знает, какой метод этого компонента сможет заставить перейти InternetExplorer на сайт, скажем http://www.rsdn.ru/ ? И если не трудно, то не могли бы вы дать не просто название метода, а то какие у него параметры и как их заполнять. А то я все эксперементировал с методом Navigate, но что-то у меня ничего не получилось...


A>Заранее благодарен.


Если надо просто реализвать в своей программе "гиперлинк" на страницу то использую:
ShellExecute( NULL, "open", "www.rsdn.com", NULL, NULL, SW_MAXIMIZE );
(откроется новое окно IE и в нем www.rsdn.com )

Если надо контроллировать уже существующий(щие) IE то вешаю на форму TCppShellWindows
далее:

typedef std::map<HWND, TCppInternetExplorer*> TM_InternetExplorerMap;
TM_InternetExplorerMap InternetExplorerMap;
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  HRESULT hr;
  HWND WHandle = NULL;
  IDispatch *spDisp;
  IWebBrowser2 *pWebBrowser; // тут надо обернуть его в TComInterface...по хорошему

  int Count = CppShellWindows1->get_Count();
  for( int i = 0; i < Count; i++ )
  {
       spDisp = ShellWindows->Item( TVAriant(i) );

       if( SUCCEEDED( spDisp->QueryInterface( IID_IWebBrowser2, (void**)&pWebBrowser ) ) )
       {
           if( SUCCEEDED( pWebBrowser->get_HWND( (long*)&WHandle ) ) )
           {
               TCppInternetExplorer *IEWrapper = new TCppInternetExplorer( this );
               IEWrapper->AutoConnect = false;
               IEWrapper->ConnectKind = ckAttachToInterface;
               IEWrapper->ConnectTo( pWebBrowser ); // присосались к одному из сущ. броузеров
               InternetExplorerMap[ WHandle ] = IEWrapper;
               IEWrapper->OnNewWindow2 = CppInternetExplorerNewWindow2;
           }
       }
  }

После чего из контейнера MAP берем окно с итым хендлом, соответствующий этому хендлу интерфейс IWebBrowser2 и выполняем его метод Navigate...
Проблема одна, если реализовывать события...то у меня не корректно доходят аргументы...
например в CppInternetExplorerNewWindow2
так, что думаю сейчас, на сколько хорошо написан класс TCppInternetExplorer...а может у меня руки кривые?
Re[2]: Компонент CppInternetExplorer
От: temofey  
Дата: 17.09.03 14:03
Оценка:
Здравствуйте, Flamer, Вы писали:

F>Здравствуйте, aleckstein, Вы писали:


A>>В С++ Builder`е 5 на странице палитры Servers есть компонент CppInternetExplorer, который судя по всему служит для связи, управления и работы с InternetExplorer. Будьте добры, подскажите, кто знает, какой метод этого компонента сможет заставить перейти InternetExplorer на сайт, скажем http://www.rsdn.ru/ ? И если не трудно, то не могли бы вы дать не просто название метода, а то какие у него параметры и как их заполнять. А то я все эксперементировал с методом Navigate, но что-то у меня ничего не получилось...


F>А что не получалось?



F>
F>CppWebBrowser1->Navigate(L"http://www.rsdn.ru/");

F>    TVariant noHistory = 2;
F>    TVariant headers = "My-Header: test";
F>    TVariant empty;

F>CppWebBrowser1->Navigate(L"http://www.rsdn.ru/",noHistory,empty,empty,headers);
F>


зы TCppInternetExplorer != TCppWebBrowser
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.