文档详情

visualstudio2008开发火狐浏览器插件.doc

发布:2018-06-22约2.58千字共22页下载文档
文本预览下载声明
1. 准备工作 开发工具 本例使用的是visual studio 2008 英文版,下图是关于信息 Windows SDK 本例使用Windows7操作系统 这里下载SDK NPAPISDK 本例使用的是Firefox4.0.1提供的SDK。 首先,从这里下载mozilla源码。然后,解压firefox-4.0.1.source.tar.bz2文件。 将 \firefox-4.0.1.source\mozilla-2.0\modules\plugin 目录解压缩出来,里面有我们开发NPAPI插件所需的所有资源。 为了方便大家使用,这里提供plugin.zip的下载。 本例将plugin目标解压到D:\code\下(后面统一使用绝对路径,以避免异意) 2. 创建Plugin 本着“有图有真相”的原则,下面将连续多图并配文字一步步创建、调试Plugin。图中画红圈的代表需要填写或者需要选择的地方。 创建项目 新建项目   Name项一定要以np开头,为了将来适应不同操作系统,最好全小写,不要太长,尽量控制在8字符内。 本例定义为npdemo Location项定义到plugin\sdk\samples以便项目属性中用相对路径引用NPAPI的SDK 本例定义为d:\code\plugin\sdk\samples   向导   选择Application type为DLL 选择Empty project   添加文件 首先,添加NPAPI SDK中的Common文件   一共3个文件   然后,添加def文件   命名最好与项目一致   编辑npdemo.def为 LIBRARY npdemo EXPORTS NP_GetEntryPoints @1 NP_Initialize @2 NP_Shutdown @3   现在,添加资源   选择Version   自动生成了resource.h和npdemo.rc。由于要在版本信息中加项,所以手工npdemo.rc   选择“Y”   在图中的BLOCK中添加。注意!BLOCK 一定要是040904e4 VALUE MIMEType, application/demo-plugin 这里顺便说一下,MIMEType是plugin的唯一标示,需要自己定义 通常的格式是application/“+ [plugin name] 本例中定义为application/demo-plugin   下面添加最关键的部分:Plugin实现类   类名可以随便起,本例命名为CPlugin 但是一定要继承自nsPluginInstanceBace   修改Plugin.h #pragma once #include pluginbase.h class CPlugin : public nsPluginInstanceBase { private: NPP m_pNPInstance; NPBool m_bInitialized; public: CPlugin(NPP pNPInstance); ~CPlugin(); NPBool init(NPWindow* pNPWindow) { m_bInitialized = TRUE; return TRUE;} void shut() { m_bInitialized = FALSE; } NPBool isInitialized() { return m_bInitialized; } };   修改Plugin.cpp 其中实现了4个全局函数 #include plugin.h ////// functions ///////// NPError NS_PluginInitialize() { return NPERR_NO_ERROR; } void NS_PluginShutdown() { } nsPluginInstanceBase * NS_NewPluginInstance(nsPluginCreateData * aCreateDataStruct) { if(!aCreateDataStruct) return NULL; CPlugin * plugin = new CPlugin(aCreateDataStruct-instance); return plugin; } void NS_DestroyPluginInstance(nsPluginInstanceBase * aPlugin) { if(aPlugin) delete (CPlugin *)aPl
显示全部
相似文档