Задача такая: Нужно перехватывать значения из форм в IE после сабмита, но до отправки данных серверу.
Вопрос неоднократно задавался, но адекватного ответа так никто и не дал.
Использование Browser HELPER OBJECTS исключено (все можно и без них сделать).
Написать нужно на чистом API без всяких там MFC или ATL...
Уменя есть код реально работающий для MFC, кто-нить может подсказать как то-же самое можно без MFC сделать (размер программы имеет значение) ?
Текст примера:
#import "mshtml.tlb" // Internet Explorer 5
#import "shdocvw.dll"
//Следующая функция показывает, как можно подключиться к запущенному Web браузеру
static SHDocVw::IShellWindowsPtr m_spSHWinds;
void CIEEnumWindowsDlg::ConnectToShell()
{
CoInitialize(NULL);
if(m_spSHWinds == 0)
{
//
// Получаем указатель на интерфейс ShellWindows
//
if(m_spSHWinds.CreateInstance(__uuidof(SHDocVw::ShellWindows)) == S_OK)
{
// Каркас события
//
LPCONNECTIONPOINTCONTAINER pConnPtCont;
if ((m_spSHWinds != NULL) &&
SUCCEEDED(m_spSHWinds->QueryInterface(IID_IConnectionPointContainer,
(LPVOID*)&pConnPtCont)))
{
ASSERT(pConnPtCont != NULL);
LPCONNECTIONPOINT pConnPt = NULL;
DWORD dwCookie = 0;
if (SUCCEEDED(pConnPtCont->FindConnectionPoint(
__uuidof(SHDocVw::DShellWindowsEvents), &pConnPt)))
{
ASSERT(pConnPt != NULL);
pConnPt->Advise( this->GetIDispatch(FALSE), &dwCookie);
pConnPt->Release();
}
pConnPtCont->Release();
}
}
else
{
AfxMessageBox("Shell Windows interface is not avilable");
}
}
}
22.12.04 00:43: Перенесено из 'C/C++'