15,471
社区成员
发帖
与我相关
我的任务
分享
//这部分是线程函数
static DWORD WINAPI GoRefresh(void *pArg) //刷新消息函数
{
IWebBrowser2* pWebBrowser = (IWebBrowser2*)pArg;
while (1)
{
pWebBrowser->Refresh();
Sleep(30000);
}
return 0;
}
//窗口类中的public定义插件
IWebBrowser2 *pWebBrowser=NULL;
//下面是插件相关的代码,在这里建立的线程
CActiveXUI* pActiveXUI3 = static_cast<CActiveXUI*>(m_PaintManager.FindControl(_T("ActiveXDemo3")));
if (pActiveXUI3)
{
IWebBrowser2* pWebBrowser = NULL;
//pWebBrowser->put_Silent(VARIANT_TRUE);
pActiveXUI3->SetDelayCreate(false);
pActiveXUI3->CreateControl(CLSID_WebBrowser);
pActiveXUI3->GetControl(IID_IWebBrowser2, (void**)&pWebBrowser);
if (pWebBrowser != NULL)
{
pWebBrowser->put_Silent(VARIANT_TRUE);
pWebBrowser->Navigate(L"http://www.baidu.com/", NULL, NULL, NULL, NULL);
DWORD dwThreadID = 0;
HANDLE hThread = CreateThread(NULL, 0, GoRefresh, (void*)pWebBrowser, NULL, &dwThreadID);//创建请求线程
////////////等待线程结束
DWORD dRet;
MSG msg;
while (1)
{
dRet = ::MsgWaitForMultipleObjects(1, &hThread, FALSE, INFINITE, QS_ALLINPUT);
if (dRet == WAIT_OBJECT_0 + 1)
{
while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
else
{
break;
}
}
//删除的线程资源。
CloseHandle(hThread);
//AfxBeginThread(CDuiFrameWnd::getrefresh,this);
pWebBrowser->Release();
}
}