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

Ваш аккаунт

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

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

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

CppWEbBrowser и фреймы

386
15 августа 2005 года
newcss
297 / / 05.04.2005
Работать с обычными сайтами при помощи CppWebBrowser более менее нормально... А тут столкнулся с проблемкой....
Вообщем в одном из топиков форума взял код...

long i;
IHTMLDocument2* iDoc;
IDispatch* iDisp;
IHTMLElement* IElement;
IHTMLSelectElement* iSelectElement;
IHTMLInputElement *iInputElement;
IHTMLOptionElement* iOptionElement;
IHTMLAnchorElement* IAnchorElement;
IHTMLScriptElement *IScriptElement;
IHTMLBodyElement* IBodyElement;
IHTMLTextAreaElement* iTextAreaElement;
IHTMLImgElement* iImgElement;
IHTMLFormElement* iFormElement;
IHTMLElementCollection* iElementCollection=NULL;
if( CppWebBrowser1 ->ControlInterface->Document)
{
CppWebBrowser1 ->ControlInterface->Document->QueryInterface(__uuidof( IHTMLDocument2),(void**)&iDoc);
}
iDoc->get_all(&iElementCollection);

long p;
iDoc->get_links(&iElementCollection);
iElementCollection->get_length(&p);

TVariant Name;
AnsiString FoundURL;

for (i=0;i<p;i++)
{
TVariant index=i;
iElementCollection->item(index,index,&iDisp);
index.operator =(&iDisp);
FoundURL=AnsiString(index.operator AnsiString());
ComboBox1->Items->Add(FoundURL);

}


Немного переделал под нужды... свои....
ComboBox1->Items->Add(FoundURL); заполняется урлами...

Неподскажите как ComboBox1 заполнить урлами определенного фрейма сайта?
386
16 августа 2005 года
newcss
297 / / 05.04.2005
Вообщем данный вопрос получилось решить своими силами.... Вообщем если кому будет интересно....То вот что у меня получилось:


void __fastcall TForm1::Button3Click(TObject *Sender)
{

IDispatch* iDisp;
IHTMLDocument2* iDoc;
IHTMLFramesCollection2 *pFrames = NULL;
long ilFramesCount=0;


if( CppWebBrowser1 ->ControlInterface->Document)
{
CppWebBrowser1 ->ControlInterface->Document->QueryInterface(__uuidof( IHTMLDocument2),(void**)&iDoc);
}


if(SUCCEEDED(iDoc->get_frames(&pFrames)))
{

pFrames->get_length(&ilFramesCount);
if(ilFramesCount < 2) ilFramesCount= 0;
VARIANT vFrame;
VARIANT ret;
vFrame.vt = VT_UINT;
// f?r jedes Frame:
ShowMessage(ilFramesCount);
for(long ilFrameIndex = 0; ilFrameIndex < ilFramesCount; ilFrameIndex++)
{

vFrame.lVal = ilFrameIndex;
if(SUCCEEDED(pFrames->item(&vFrame, &ret)))
{
// Zeiger auf IHTMLWindow2 des Frames besorgen:
IHTMLWindow2 *pWindow = NULL;
if(SUCCEEDED(ret.pdispVal->QueryInterface(IID_IHTMLWindow2,
(LPVOID*)&pWindow)))
{
// Zeiger auf IHTMLDocument2 des Frames besorgen:
IHTMLDocument2 *pDoc = NULL;
if(SUCCEEDED(pWindow->get_document(&pDoc)))
{
IHTMLElementCollection* links=NULL;
long lin;
pDoc->get_links(&links);
links->get_length(&lin);
ShowMessage(lin);
AnsiString FURL;
for (int i=0;i<lin;i++)
{

TVariant index=i;

links->item(index,index,&iDisp);
index.operator =(&iDisp);
FURL=AnsiString(index.operator AnsiString());
Memo1->Lines->Add(FURL);

}

}// end if
}//end if
}//end if

}//end for
}


}



P.S. Правда не ComboBox заполняю урлами, а Memo.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог