380 likes | 621 Views
RTXClient 插件开发入门. 目 录. RTXC 概述 RTX Client 系统架构 RTX Client 对象模型 RTXC 插件应用 RTX Client 插件描述 - RTXC 插件应用场景 RTXC 插件开发 开发前准备 插件相关文件及接口说明 创建插件工程 RTX 界面上的体现 RTXC 事件的使用方法 RTX 数据传输 扩展 TAB 插件打包发布 插件打包 插件安装. RTXClient. 最新版本 : RTXC2007 正式版 SDK 版本: RTXC2007 SDK 正式版 开发语言: VC6.0
E N D
目 录 • RTXC 概述 • RTX Client 系统架构 • RTX Client 对象模型 • RTXC 插件应用 • RTX Client 插件描述 - RTXC插件应用场景 • RTXC 插件开发 • 开发前准备 • 插件相关文件及接口说明 • 创建插件工程 • RTX界面上的体现 • RTXC事件的使用方法 • RTX数据传输 • 扩展TAB • 插件打包发布 • 插件打包 • 插件安装
RTXClient 最新版本:RTXC2007 正式版 SDK版本: RTXC2007 SDK 正式版 开发语言:VC6.0 构建方式:COM/ATL组件 代码量: 约50万行 开发人数:10人 架构特性:平台化、模块化、 组件化
RTXC 插件应用 • RTXC插件是RTX Client内系统功能的扩展,让第三方开发者根据实际需求,在RTX Client平台上定制开发一些功能; • 第三方开发者只需要实现几个简单的接口函数,就可以实现跟RTXC进行数据交互; RTXC提供了一套基于COM的扩展接口,来实现在平台内核中对插件扩展功能的支持。
RTXC 插件应用 RTXC是提供了一个插件运行的平台,但对插件的功能没有做任何的限制,所以开发者可以根据实际情况开发任意插件;
RTXC 插件开发 ---- 开发前准备 需要安装如下文件: 1、RTX Client2007 正式版 2、RTX Client2007 SDK 正式版 需要阅读的文件: RTX Client SDK帮助.CHM RTXClient 插件开发入门 .DOC
RTXC 插件开发 ---- 相关文件 RTXC提供了一些头文件和TLB文件给开发人员调用。以下是一些主要的文件:
RTXC 插件开发----插件接口函数 IRTXCPlugin接口函数:
RTXC 插件开发 ---- 创建插件工程 利用向导的方式创建插件工程; 需要将RTXC SDK目录中wizard目录下的 RTXCModuleAW .awx 文件拷至VC安装目录 Microsoft Visual Studio\COMMON\MSDev98\Template\
RTXC 插件开发 ---- 界面上体现 1、动态菜单
RTXC 插件开发 ---- 界面上体现 自定义第三方 设置
RTXC 插件开发 ---- 界面上体现 自定义“您可以”区域 自定义消息 类型 自定义TAB 自定义图标
RTXC 插件开发 ---- 事件 RTXC事件使用纯分派接口。为了方便编写事件接收器,RTXC提供了一套RTXC_EVENT_SINK 帮助宏。同时,使用这套宏封装了 RTXC的所有事件,将 RTXC的 COM 事件通通转为 C++ Events 的接收器对象,避免重复编写事件接收器。 RTXC的事件可以分为两种:内核事件和用户自定义事件。 用户自定义事件是通过内核中的事件中心来实现事件的中转,用户在插件中向事件中心注册一个自定义的事件,就可以在其他的插件中捕获到该事件。
RTXC 插件开发 ---- 事件 用户资料更改事件 用户状态更改事件 … …
RTXC 插件开发 ---- 数据传输 RTXC插件中数据传输可以分为三种,其特点总结如下:
RTXC 插件开发 ---- RTXC传输通道 RTXC的传输通道是采用TCP的传输,所有的数据都是通过服务器中转,所以传输数据稳定可靠,但是效率比较低;适合于传输量比较小的数据。 RTXC传输的数据都需要通过IRTXCData来封装,然后通过 IRTXCModuleSite::SendData来发送数据。执行完发送数据之后,可以通过OnSendDataResult事件来得到发送数据的结果。 接受到数据后,就触发消息 OnDataReceived ,用户可以在该消息的触发函数中处理接受到的数据; 另外, OnDataReceived 函数中只能得到能标识 IRTXCData 的KEY值,用户需要通过该KEY值, 通过 IRTXCModuleSite :: GetData 的方式得到当前接受到的IRTXCData 数据包。
RTXC 插件开发 ---- IRTXCData 任意数据封装的容器,通过任意的KEY值来设置或者获取容器内对应的数据,用于在各模块、编成环境之间进行传递数据。 用例: // 创建一个IRTXCData对象 IRTXCDataPtr& ptrSendData = m_ptrRoot -> CreateRTXCData(); // 设置RTXCData的内容 ptrSendData->SetString(_T("SENDER"), _bstr_t (( LPCTSTR )_T(“ Benchen ”))); ptrSendData->SetLong(_T("INDEX"),(long)0);
RTXC 插件开发 ---- P2P传输通道 P2P传输通道是采用UDP传输,实现了用户与用户之间进行点对点传输的模式,不经过服务器中转,而且效率比较高,用户可以用来进行大数据量的传输。
RTXC 插件开发 ---- 扩展TAB 第三方开发者可以在插件中实现自定义RTXC面板上的TAB,并且可以在新增加的TAB页面中,定制一些自己的业务;用户实现扩展TAB必须包含以下几类文件: 除此之外,这些文件还需要跟一个插件文件一起发布。
RTXC 插件开发 ---- ExtTab.XML 扩展TAB的实现原理是在RTXC启动的时候,会到插件目录下去查找Tabs文件夹下的ExtTab.XML文件,根据该文件的配置,在RTXC的面板上添加一个TAB,并把该TAB显示出来。一个ExtTab.XML文件的格式如下: <?xml version="1.0" encoding="gb2312"?><Root><ExtTab GUID="{A86882ED-3AA1-45BF-AEDF-1A14C7E6F28F}" Title="扩展面板1" IconFile="exttab.bmp" Enabled="1">exttab.ocx</ExtTab></Root>
RTXC 插件开发 ---- 扩展TAB接口 用户在开发扩展TAB的时候,需要实现IRTXPluginTab和IRTXPluginFrameSize 接口函数,来设置TAB的大小以及与RTXC的内核进行交互。 IRTXPluginTab接口 IRTXPluginFrameSize接口
RTXC 插件打包发布 插件开发完成后,需要采用 RPIPackager .EXE 对插件文件进行打包,打包完成之后,生成 RPI 后缀的文件,该文件自动跟客户端的RPISetup .EXE文件进行关联,并通过该文件自动的将插件部署到RTXC里。
RTXC 插件打包发布 此处可能出现的问题: 1、GUID不是插件COM文件的GUID,所以会不匹配; 2、插件DLL文件缺少其相关联的DLL文件,建议采用Depends查看。 3、插件接口错误;在没有采用向导的情况可能会出现。
后 语 本文档描述的功能点,只涉及到一些比较常用的SDK功能,并不包括所有 RTXC SDK的功能,开发者如果需要了解更多 RTXC SDK的功能,请参看《RTXClient SDK帮助文档》。谢谢! RTXC 开发组 2008.3.17