编辑: 苹果的酸 | 2019-07-02 |
result 是JavaScript 函数的返回值地址. 以播放实时视频功能为例, 声明一个 NPIdentifier 对象PlayReal 并初始化PlayReal = NPN_GetStringIdentifier( PlayReal ). 若包含 PlayReal 方法, 则pluginHasMethod 返回真, 调用 pluginInvoke 触发具体功能的实现;
否则返回假. 3.3 ActiveX 插件接口 本文使用 VS2010 集成开发平台创建 工程项目, 工程创建好后 XCtrl.cpp 文件 中相应的 GUID 应对应网页中控件的 classid, 实现网 页与 ActiveX 控件的连接. 以播放实时视频功能为例, 在X.idl 文件中, 声明 ActiveX 控件外部调用方法, 如下: [id(3)] VARIANT_BOOL PlayReal(LONG lChannelNO);
COleControl 的继承类 CXCtrl 实现 ActiveX 控件 内部的方法, 如下: VARIANT_BOOL FirePlayReal(LONG lChannelNO);
控件外部调用方法 PlayReal 与控件内部方法 FirePlayReal 由调度映射建立联系, 如下: BEGIN_DISPATCH_MAP(CXCtrl, COleControl) DISP_FUNCTION_ID(CXCtrl, PlayReal , dispidPlayReal, FirePlayReal, VT_BOOL, VTS_I4) END_DISPATCH_MAP() 其中, dispidPlayReal 是枚举类型, 值为 3, 与X.idl 文件中的id值对应;
VT_BOOL为返回值, VTS_I4为参数 列表中的第一个参数类型, 两个以上的参数类型用空格 分开. FirePlayReal 函数实现具体的播放实时视频功能.
4 实际应用 在网页中加载视频监控播放插件采用两种形式, 其中, 在IE 内核浏览器页面中, 插件采用 html 中object 元素的形式, 具体形式为: ;
在非 IE 内核浏览器页面中采用 html 中embed 元 素的形式, 具体形式为: . 其中, 浏览器内核通过 navigator 对象的信息进行 判断;
id 属性是元素的唯一标识;
classid 属性是 Ac........