您的位置:首页 > 其它

win32 sdk下调用webbrowser控件

2010-10-06 19:14 288 查看
#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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: