NPAPI插件开发详细记录:实用功能——添加、识别私有属性
来源:互联网 发布:有声阅读软件 编辑:程序博客网 时间:2024/05/29 18:45
据我所知,除了通用属性如:id、class等,object标签的属性有type、data、width、height,embed标签的属性有type、src、width、height。而flashplayer插件所具有的loop、autoplay等属性都是插件自己添加的,无法用NPN_GetProperty接口进行获取。假设我们要开发一个插件允许使用loop属性,那该怎么实现呢?
这个就要找到NS_NewPluginInstance函数中了,这个函数的参数是一个nsPluginCreateData。这个结构中就保存了标签中所有的属性和属性值。这个函数中创建了一个新的Plugin对象,Plugin对象的构造函数参数为NPP,故此处传递了nsPluginCreateData的instance。如果我们需要获取和识别私有属性如loop,推荐实现一个可以接受nsPluginCreateData的Plugin构造函数。这样就可以在plugin构造函数中获取私有属性的值了。
假设我们要实现私有属性loop。并使得只有如下方式loop才无效:不设置loop属性、loop=false、loop=no、loop=0.其他方式loop如:loop、loop=true、loop=yes、loop=1等都有效。那我们的代码可以这样写:
如上代码所实现的私有属性最简单的组合就是需要loop时用<object name=value loop > </object>不需要loop时用<object name=value > </object>。其中name=value对表示其他属性类似于:id=”plugindemo”。
这个就要找到NS_NewPluginInstance函数中了,这个函数的参数是一个nsPluginCreateData。这个结构中就保存了标签中所有的属性和属性值。这个函数中创建了一个新的Plugin对象,Plugin对象的构造函数参数为NPP,故此处传递了nsPluginCreateData的instance。如果我们需要获取和识别私有属性如loop,推荐实现一个可以接受nsPluginCreateData的Plugin构造函数。这样就可以在plugin构造函数中获取私有属性的值了。
假设我们要实现私有属性loop。并使得只有如下方式loop才无效:不设置loop属性、loop=false、loop=no、loop=0.其他方式loop如:loop、loop=true、loop=yes、loop=1等都有效。那我们的代码可以这样写:
//读取私有属性。 m_bLoop=false;//初始设为false,保证没有设置该属性时无效int16_t argNum = cd->argc;//the number of HTML arguments in the element// cd->argn;//The argn array contains the attribute names// cd->argv;//the argv array contains the attribute valuesint16_t argCur = 0;for (argCur=0;argCur<argNum;argCur++){if (0==strcmp(cd->argn[argCur],"loop")){m_bLoop = true;std::string loop = std::string(cd->argv[argCur]);if(loop=="no"||loop=="false"||loop=="0") m_bLoop = false;}}
如上代码所实现的私有属性最简单的组合就是需要loop时用<object name=value loop > </object>不需要loop时用<object name=value > </object>。其中name=value对表示其他属性类似于:id=”plugindemo”。
- NPAPI插件开发详细记录:实用功能——添加、识别私有属性
- NPAPI插件开发详细记录:实用功能——改变插件窗口大小
- NPAPI插件开发详细记录:实用功能——获取插件路径、页面路径、资源路径
- NPAPI插件开发详细记录:实用功能——获取插件路径、页面路径、资源路径
- NPAPI插件开发详细记录:实用功能(库的使用及多线程)
- NPAPI插件开发详细记录:插件开发入门
- NPAPI插件开发详细记录:插件开发入门
- NPAPI插件开发详细记录:插件开发入门
- NPAPI插件开发详细记录:插件运行流程分析
- NPAPI插件开发详细记录:插件的调试
- NPAPI插件开发详细记录:利用cmake生成插件工程
- NPAPI插件开发详细记录:插件的调试
- NPAPI插件开发详细记录:插件运行流程分析
- NPAPI插件开发详细记录:插件运行流程分析
- NPAPI插件开发详细记录:用VS2010开发NPAPI插件步骤
- NPAPI插件开发详细记录:用VS2010开发NPAPI插件步骤
- NPAPI插件开发详细记录:用VS2010开发NPAPI插件步骤
- NPAPI插件开发详细记录:用VS2010开发NPAPI插件步骤
- C语言实现24点游戏
- c/c++ int _tmain(int argc, _TCHAR* argv[])
- boost::format库的使用
- ubuntu install NFS service
- C# 获取进程或线程的相关信息
- NPAPI插件开发详细记录:实用功能——添加、识别私有属性
- 注册表编程基础+实例
- ManualResetEvent详解
- One Piece,One Dream (海贼王与梦想--短篇演讲稿)
- KindEditor的使用和上传图片的后台处理
- unity自带寻路Navmesh入门教程(二)
- 去交错原理介绍
- 填空学指针
- 不是人人都懂的学习要点