因为网页里有个ActiveX可能正在处理某项工作,我防止用户关机时,当前IE会被关掉,得到窗口句柄后,我可以接收到WM_POWERBROADCAST后,进行相应处理
能通过javascript得到吗?
能通过javascript得到吗?
解决方案 »
- 触摸屏的程序应该怎么做?
- 函数之间调用
- .ocx组件在html调用 问题?在线等待!来位大侠吧%>_<%
- 小弟刚接触网络编程,求一个例子如下,如分不够我在加 谢谢谢谢
- 这里怎么回事?QQ运行了不到5小时,从我硬盘读取了300多M的东西,干什么去了?
- 两个问题--------知道的请回答(谢谢),不知道的来学习。^_^ *_*
- findwindow
- 内存映射的简单问题...
- 怎样产生目录对话框?
- 同一个结构,16位下和32位下用sizeof()获取的长度不一样?
- 剪贴板问题,困扰多时了,盼解答!
- 绝对的新手,VC,C,C++,还有 C++ Builder 这4个不都是C 吗,都是什么区别啊,糊涂了,能给我解释一下吗?
{
HRESULT hr;
HINSTANCE hInst = ::LoadLibrary( _T("OLEACC.DLL") ); IHTMLDocument2* pDoc2=NULL;
if ( hInst != NULL ){
if ( hwnd != NULL ){
//取得AccessibleObjectFromWindow函数
LPFNACCESSIBLEOBJECTFROMWINDOW pfAccessibleObjectFromWindow =
(LPFNACCESSIBLEOBJECTFROMWINDOW)::GetProcAddress(hInst,_T("AccessibleObjectFromWindow"));
if(pfAccessibleObjectFromWindow != NULL){
CComPtr spAccess;
hr=pfAccessibleObjectFromWindow(hwnd,0,
IID_IAccessible,(void**) &spAccess);//取得Webbrowser控件的IAccessible接口
if ( SUCCEEDED(hr) ){
CComPtr spServiceProv;
hr=spAccess->QueryInterface(IID_IServiceProvider,(void**)&spServiceProv);
if(hr==S_OK){
CComPtr spWin;
hr=spServiceProv->QueryService(IID_IHTMLWindow2,IID_IHTMLWindow2,
(void**)&spWin);
/*
注意:并不是每次都能取得IHTMLWindow2接口,如果调用失败,可以尝试取得IHTMLElement接口:
CComPtr spElement;
hr=spServiceProv->QueryService(IID_IHTMLElement,IID_IHTMLElement,(void**)&spElement);
*/
if(hr==S_OK)
spWin->get_document(&pDoc2);
}
}
}
}
::FreeLibrary(hInst);
}
else{
AfxMessageBox(_T("请您安装Microsoft Active Accessibility"));
}
return pDoc2;
}具体参见 VCKBASE Online Help Journal No.12 提个信息希望能帮助
PRB: Obtaining the HWND for the WebBrowser Control Q244310
IOleWindow *pOWin;
HWND hBWnd;HRESULT hRes = m_pBrowserApp->QueryInterface(IID_IOleWindow, (void **)&pOWin);
if (SUCCEEDED(hRes)) {
hRes = pOWin->GetWindow(&hBWnd);
if (SUCCEEDED(hRes)) {
// Place hBWnd-manipulating code here
}
}