社区
ATL
帖子详情
关于activex控件, 嵌入页面得activex控件有没有办法与调用控件的页面通讯
captainwh
2006-05-01 10:10:18
问一个嵌入html的activex控件的问题:
当activex完成任务后, 希望能通过某种方式通告给调用控件的页面, 以便页面自动刷新
当前做的代码是一个mfc activex控件, 请问有这种机制吗
...全文
370
13
打赏
收藏
关于activex控件, 嵌入页面得activex控件有没有办法与调用控件的页面通讯
问一个嵌入html的activex控件的问题: 当activex完成任务后, 希望能通过某种方式通告给调用控件的页面, 以便页面自动刷新 当前做的代码是一个mfc activex控件, 请问有这种机制吗
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
whwjn
2006-07-26
打赏
举报
回复
通过JavaScript或者VBScript,可以访问ActiveX的属性和方法,还可以响应它的事件。
whwjn
2006-07-26
打赏
举报
回复
说错了,上面的代码是JavaScript里面的
whwjn
2006-07-26
打赏
举报
回复
可以用VBScript或者JavaScript实现,在ActiveX中设定一个事件,当ActiveX完成任务后
Fire这个事件,在VBScript中可以刷新页面,差不多就是这样:
<SCRIPT FOR=MyActiveX1 EVENT=ParameterLoaded()>
<!-- {
window.document.write("The parameter you entered is:<br> "
+ MyActiveX1.OutputParameter + " ")
-->
</SCRIPT>
Analyst
2006-07-26
打赏
举报
回复
在Script里面开个Timer轮询你的控件即可。
boby168
2006-07-25
打赏
举报
回复
html:
<object classid="clsid:C0F1EDF0-34C3-4300-A322-4B94CCE40B85" id="XXXBrowser"
codebase="http://notebook/Test/XXXBrowser.cab" width=100% height=100%>
<param name="_ExtentY" value="20320">
<param name="_StockProps" value="0">
</object>
</p>
<script language=JScript for=XXXBrowser event="Logs(iType,strInfo)">
alert(iType);
alert(strInfo);
</script>
Logs(iType,strInfo)为ActiveX控件定义的Automation事件。
EagleTwenty
2006-07-25
打赏
举报
回复
MARK
BOYGUARD110
2006-05-07
打赏
举报
回复
MARK
lyl_rabbit
2006-05-04
打赏
举报
回复
有啊,给你代码
CString CXXXCtrl::PageInterface(long lParam1, long lParam2, long lParam3, const CString& strParam)
{
HRESULT hr = E_FAIL;
CComPtr<IOleObject> pOleObject = 0;
CComPtr<IOleClientSite> pClientSite = 0;
CComPtr<IWebBrowser2> m_spBrowser = 0;
CComPtr<IHTMLDocument2> m_spDoc = 0;
CComPtr<IDispatch> pscript;
IUnknown *iUn;
iUn = GetControllingUnknown();
hr = iUn->QueryInterface(IID_IOleObject, reinterpret_cast<void **> (&pOleObject));
if (FAILED(hr))
{
AfxMessageBox("pOleObject");
return "-1";
}
IServiceProvider *isp, *isp2 = NULL;
hr = pOleObject->GetClientSite(&pClientSite);
if (!pClientSite)
{
AfxMessageBox("pClientSite");
return "-1";
}
else
{
try
{
hr = pClientSite->QueryInterface(IID_IServiceProvider, reinterpret_cast<void **> (&isp));
if (FAILED(hr))
{
AfxMessageBox("IID_IServiceProvider");
return "-1";
}
hr = isp->QueryService(SID_STopLevelBrowser, IID_IServiceProvider, reinterpret_cast<void **>(&isp2));
if (FAILED(hr))
{
AfxMessageBox("SID_STopLevelBrowser");
return "-1";
}
hr = isp2->QueryService(SID_SWebBrowserApp, IID_IWebBrowser2, reinterpret_cast<void **>(&m_spBrowser));
if (FAILED(hr))
{
AfxMessageBox("SID_SWebBrowserApp");
return "-1";
}
hr = m_spBrowser->get_Document((IDispatch**)&m_spDoc);
if(FAILED(hr))
{
AfxMessageBox("get_Document");
return "-1";
}
}
catch(LPCTSTR lpszErr)
{
if(CString(lpszErr)!="")
AfxMessageBox(lpszErr);
return "-1";
}
catch(...)
{
AfxMessageBox("未知错误");
return "-1";
}
isp->Release();
isp2->Release();
}
hr = m_spDoc->get_Script(&pscript);
if(FAILED(hr))
{
AfxMessageBox("get_Script");
return "-1";
}
CComBSTR bstrMember("PageInterface");//这里得到页面的方法
DISPID dispid;
hr = pscript->GetIDsOfNames(IID_NULL, &bstrMember, 1, LOCALE_SYSTEM_DEFAULT, &dispid);
if(FAILED(hr))
{
AfxMessageBox("GetIDsOfNames");
return "-1";
}
DISPPARAMS dispparams;
memset(&dispparams, 0, sizeof dispparams);
dispparams.cArgs = 4;
dispparams.rgvarg = new VARIANT[dispparams.cArgs];
for(int i=0; i<3; i++)
dispparams.rgvarg[i].vt = VT_I4;
dispparams.rgvarg[0].lVal = lParam1;
dispparams.rgvarg[1].lVal = lParam2;
dispparams.rgvarg[2].lVal = lParam3;
dispparams.rgvarg[3].vt = VT_BSTR;
dispparams.rgvarg[i].bstrVal = strParam.AllocSysString();
dispparams.cNamedArgs = 0;
EXCEPINFO excepInfo;
memset(&excepInfo, 0, sizeof excepInfo);
_variant_t Var;
Var.Clear();
CComVariant varesult;
UINT nArgErr = (UINT)-1;
hr = pscript->Invoke(dispid, IID_NULL, 0, DISPATCH_METHOD, &dispparams, &varesult, &excepInfo, &nArgErr);//调用 页面方法
delete []dispparams.rgvarg;
if (FAILED(hr))
{
CString strMSG;
strMSG.Format("调用脚本函数出错[%d]!\n\nlParam1 = %d,lParam2 = %d,lParam3 = %d, strParam = %s", GetLastError(), lParam1, lParam2, lParam3, strParam);
AfxMessageBox(strMSG);
return "-1";
}
else
{
CString Result;
if (varesult.vt != VT_EMPTY)
{
Result = varesult.bstrVal;
}
else
{
Result = "1";
}
return Result;
}
}
上面这个页面的方法要在顶层页面定义
rageliu
2006-05-04
打赏
举报
回复
我就层这样做过,单独通过一个方法返回另一个子线程的执行进度,在页面显示进度(由于操作很费时,为了不影响页面的刷新,所以开了一个自线程)
rageliu
2006-05-04
打赏
举报
回复
本来事件是比较理想的方法,不过网页中对事件的处理是比较弱的.可以在active中再提供一个接口,在web循环调用,直到这个方法返回值为真时刷新页面
UDX协议
2006-05-03
打赏
举报
回复
用事件的机制。
通过jsp,或asp或vbs,都可以接收事件。
蒋晟
2006-05-02
打赏
举报
回复
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q257717
贵子潘
2006-05-02
打赏
举报
回复
肯定有这种机制的。我记得以前有人问过,也有一个高手给过一个MSDN连接,那上面有方法的。可惜忘了。楼主可以搜一下。
Hk海康视频
ActiveX
控件
(ocx).zip
海康视频的
ActiveX
视频
控件
(ocx),可以
嵌入
集成在别的系统中
Vue框架下引入
ActiveX
控件
的问题解决
主要介绍了Vue框架下引入
ActiveX
控件
的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
WPF与Flash相互
调用
-
嵌入
如何在 WPF 中
嵌入
Flash (
ActiveX
) 背景 最近一个 Partner 希望将以前的 Flash
嵌入
到一个全新的 WPF 应用中,将 WPF 在 .NET 3.0 下丰富的用户体验和 Flash 动画相结合,更好地服务于其用户。
嵌入
Flash 相当于
嵌入
一个
ActiveX
控件
,在
嵌入
过程中也有一些比较 Tricky 的地方需要注意,下面就在 WPF Application 中
嵌入
Flash
控件
的步骤进行简要说明,并将遇到的一些需要注意的问题进行提示。 开发环境 Visual Studio 2008 Beta1 (Code name: Orcas), Windows Vista, Flash Player 9,
chrome史上最完整
调用
ocx完整解决方案
关键字 chrome,ocx,
控件
,
activeX
。用于解决chrome
调用
ocx
控件
的一个demo。
优道pdf保护
控件
优道PDF文档版权保护
控件
(UUDoc Secure PDF Control) 优道科技提供在线文档版权保护技术和解决方案,支持保护通过网页进行在线浏览的PDF和XPS文档。
控件
采用优道科技独创的屏幕黑洞技术进行研发,能完美解决PDF和XPS文档的在线版权保护问题。
ActiveX
技术支持无缝
嵌入
到各类网站和软件产品当中,
控件
小巧且功能强大,不需要在客户端再安装Adobe Acrobat Reader等其它PDF阅读器就能打开浏览PDF和XPS文件。简单的
调用
方式可以让您很方便就能做出一款适合常用需求的文档阅读器。 产品特点: 文件小巧
控件
大小不超过3M,客户端不需要再另外安装其它庞大的PDF阅读器; 使用简单 通过属性的设置和方法的
调用
即可完成PDF和XPS文档阅读器的复杂功能; 支持版权保护 可以通过属性设置完成对复制、截屏和打印等数字版权保护功能的控制; 高强度加密 采用国际权威的高强度加密算法在内存中完成加密解密,远程加密传输,不留任何痕迹; 底层技术开发 C++
ActiveX
技术开发,支持
嵌入
到网页或桌面应用当中,支持各类编程语言进行
调用
; 功能齐全 附带有换页、查找、放大、缩小、旋转、颜色定制等文档浏览器常用功能,支持通过JavaScript或VbScript与网页进行交互; 各种语言支持 服务器端支持Windows及Linux的服务器,支持各种服务器端编程语言,例如asp,asp.net,php,java,python,ruby等 ; 国际权威认证 软件经过权威机构安全数字签名认证,通过多种环境及杀毒软件测试,可安全运行。 运行环境要求: 客户端操作系统:WindowsXP/2003/2008/Vista/Win7,支持32位及64位操作系统 使用支持
ActiveX
功能的IE浏览器 浏览时需按照提示安装SecurePdfViewer浏览
控件
ATL
3,245
社区成员
48,539
社区内容
发帖
与我相关
我的任务
ATL
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
复制链接
扫一扫
分享
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章