- #include <atlbase.h>
- CComModule _Module;
- #include <atlwin.h>
- #include <windows.h>
- #pragma comment(lib,"atl")
- #pragma comment(lib,"User32.lib")
- LRESULT CALLBACK WndProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)
- {
- RECT rc;
- IWebBrowser2* iWebBrowser;
- VARIANT varMyURL;
- static CAxWindow WinContainer;
- LPOLESTR pszName=OLESTR("shell.Explorer.2");
- GetClientRect(hWnd, &rc);
- switch(message)
- {
- case WM_CREATE:
- WinContainer.Create(hWnd, rc, 0,WS_CHILD |WS_VISIBLE);
- WinContainer.CreateControl(pszName);
- WinContainer.QueryControl(__uuidof(IWebBrowser2),(void**)&iWebBrowser);
- VariantInit(&varMyURL);
- varMyURL.vt = VT_BSTR;
- varMyURL.bstrVal = SysAllocString(_T("http://www.baidu.com"));
- iWebBrowser-> Navigate2(&varMyURL,0,0,0,0);
- VariantClear(&varMyURL);
- iWebBrowser-> Release();
- break;
- case WM_DESTROY:
- PostQuitMessage(0);
- break;
- default:
- return (int)DefWindowProc(hWnd,message,wParam,lParam);
- }
- return 0;
- }
- int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
- {
- static TCHAR szAppName[]=TEXT("WebBrowser");
- static TCHAR szClassName[]=TEXT("WebBrowser");
- HWND hWnd;
- MSG msg;
- WNDCLASS wndclass;
- wndclass.style=CS_HREDRAW | CS_VREDRAW;
- wndclass.lpfnWndProc=WndProc;
- wndclass.cbClsExtra=0;
- wndclass.cbWndExtra=0;
- wndclass.hInstance=hInstance;
- wndclass.hIcon=LoadIcon(hInstance, IDI_APPLICATION);
- wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);
- wndclass.hbrBackground=(HBRUSH)(COLOR_WINDOW+1);
- wndclass.lpszMenuName=NULL;
- wndclass.lpszClassName=szClassName;
- if(!RegisterClass(&wndclass))
- {
- MessageBox(NULL,TEXT("Error!"),szAppName,MB_ICONERROR);
- return 0;
- }
- hWnd=CreateWindow(szClassName,szAppName,WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,
- 0,CW_USEDEFAULT,0,NULL,NULL,hInstance,NULL);
- ShowWindow(hWnd,nShowCmd);
- UpdateWindow(hWnd);
- while(GetMessage(&msg, NULL, 0, 0))
- {
- TranslateMessage(&msg);
- DispatchMessage(&msg);
- }
- return msg.wParam;
- }