Получение url фрейма веб странички.
Может ли кто-то подсказать как получить url или html - код заданного фрейма веб странички? Имя нужного фрейма находиться в переменной CComVariant vFrame("targetframe");
Пробовал воспользоваться примером из MSDN:
BSTR *hcode;
IHTMLWindow2 *pWin;
IHTMLFramesCollection2* pFramesCol;
HRESULT hr = pWin->get_frames(&pFramesCol);
if (SUCCEEDED(hr))
{
VARIANT frameRequested;
VARIANT frameOut;
frameRequested.vt = VT_I4;
frameRequested.pvarVal = &vFrame; //Указываем имя фрейма.
//frameRequested.vt = VT_BSTR;
//frameRequested.bstrVal = x;
hr = pFramesCol->item(&frameRequested, &frameOut);
if (SUCCEEDED(hr))
{
IHTMLWindow2* pRightFrameWindow = NULL;
hr = V_DISPATCH(&frameOut)->QueryInterface(IID_IHTMLWindow2,
(void**)&pRightFrameWindow);
if (SUCCEEDED(hr))
{
IHTMLDocument2* pRightDoc;
hr = pRightFrameWindow->get_document(&pRightDoc);
if (SUCCEEDED(hr))
{
// Use the document
pRightDoc->get_URL(hcode); // получаем URL фрейма?
pRightDoc->Release();
}
pRightFrameWindow->Release();
}
}
pFramesCol->Release();
m_text.SetWindowTextA(LPCTSTR(&hcode)); // Полученный URL фрейма выводится в текствое поле.
}
Однако ввиду того, что я имею только общие представления о работе интерфейсов и COM - объектов, не знаю как связать данный код с объектом WebBrowser.
При вызове данного кода программа прерывается и появляется сообщение: " An unhandled exception of type 'System.NullReferenceException' occurred in AIv2.exe. Additional information: В экземпляре объекта не задана ссылка на объект. "
Буду признателен за любую помощь.
Проблема решилась, я вручную нашел этот URL :)