Visual C++2005でATLを使わずにCOM(ActiveX)のWebBrowserコントロールを使う方法。
#pragma warning(disable:4192)
#import <shdocvw.dll> auto_rename
#import <mshtml.tlb> auto_rename
#pragma warning(default:4192)
...
CoInitialize(NULL);
SHDocVw::IWebBrowser2Ptr pIE;
//IEの起動
try {
HRESULT hr = pIE.CreateInstance(__uuidof(SHDocVw::InternetExplorer));
SUCCEEDED(hr) ? 0 : throw hr;
//IE非表示
pIE->PutVisible(VARIANT_FALSE);
pIE->Navigate(_T("http://yahoo.com"));
while(pIE->GetBusy() != FALSE || pIE->GetReadyState() != READYSTATE_COMPLETE) {
//この間にInvoke()でイベントが捕捉できる
::Sleep(200);
}
pIE->Quit();
}catch(...){
}
::CoUninitialize();ネタ元