VC++でブラウザコントロール

#include <windows.h>
#include <tchar.h>

#import <shdocvw.dll>
#import <mshtml.tlb>

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
                    PSTR szCmdLine, int iCmdShow)
{
	HRESULT hr = ::CoInitialize(NULL);	//COMを使うときのお約束
	if (FAILED(hr)) {
		return -1;
	}

	NewIE();		//新しいIEを開く

	HWND hwnd = ::FindWindow(NULL, _T("Google - Microsoft Internet Explorer"));
	if (hwnd != NULL) {
		SHDocVw::IWebBrowser2Ptr pIE = FindIE(hwnd);	//WebBrowserを取得する
		GoogleSearch(pIE);				//Googleに入力してみる
	} else {
		::OutputDebugString(_T("not found Google window\n"));
	}

	EventTest();	//WebBrowserのイベントを捕捉してみる

	::CoUninitialize();	//COM使用終了

	return 0;
}

void NewIE()
{
	SHDocVw::IWebBrowser2Ptr pIE;

	//IEの起動
	HRESULT hr = pIE.CreateInstance(__uuidof(SHDocVw::InternetExplorer));
//	HRESULT hr = pIE.CreateInstance(_T("InternetExplorer.Application"));
	if(FAILED(hr)){
		TCHAR str[256];
		wsprintf(str, _T("NewIE#CreateInstance error:%x\n"), hr);
		::OutputDebugString(str);
		return;
	}

	//IEの表示
	pIE->PutVisible(VARIANT_TRUE);

	pIE->Navigate(_T("http://www.ne.jp/asahi/hishidama/home/tech/vcpp/index.html"));
	while (pIE->Busy == TRUE || pIE->GetReadyState() < READYSTATE_COMPLETE) {
		Sleep(100);
	}
}