资源描述:
《腾讯通rtx插件开发指南》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、腾讯通RTX插件开发指南目录1、开发前准备2、创建插件工程3、界面上的体现4、交互控制5、收发数据处理6、插件打包发布7、后语1、开发前准备需要安装如下文件:RTXC2006Beta02,RTXClient2006SDKBeta02;开发插件的过程一般是要经历一下几个步骤:创建插件工程,RTX客户端里界面上体现,交互控制,数据传输,打包发布;以下的用例是开发一个程序共享的插件,通过介绍开发程序共享的插件,来讲解插件的一般开发过程。2、创建插件工程创建插件工程,首先把RTXCSDK目录中wizard目录下的RTXCModuleAW.awx文件拷至VC安装目录MicrosoftVisualStud
2、ioCOMMONMSDev98Template,然后在VC中创建一个插件工程。第一步:创建一个AppSharePlugin工程。第二步:设置插件的信息。第三步:设置插件内部绑定的事件。完成以上三个步骤之后,可以自动生成如下函数:这些自动生成的代码,已经定义了RTXC的接口函数,一个插件的基本框架已经搭建成功,用户只需要在这些接口函数里添加自己的功能。创建完成一个插件工程之后,就需要考虑在RTX的客户端界面能体现出该插件,如菜单、面板、TAB或者在RTXC其他的界面元素上;程序共享主要在RTXC的菜单上增加一个新的菜单项来体现,其他的体现方式,可以参看RTXCSDK文档。3、界面上的体现
3、程序共享一般需要在RTX客户端的菜单中添加“程序共享”的菜单项,操作步骤如下:第一步:设置动态菜单相关的内容。首先在Stdafx.h文件中添加如下代码:#import"ClientObjects.tlb"raw_interfaces_onlyno_namespace,named_guids#include"RTXCModuleIds.h"在插件中实现动态的添加和删除菜单,就必须包含ClientOjbect.tlb和RTXModuleIds.h这两个文件,这两个文件分别位于SDK安装目录下的TLB和INCLUDE目录下,用户可以根据实际情况,设置文件的相对路径。然后在AppSharePlugin
4、Module.h文件中增加菜单对象的定义和菜单响应的函数,如下:IRTXCMenuPtrm_pMenu;//定义RTXC菜单对象IRTXCUICommand*m_pUICmd;定义菜单响应函数的接口:BEGIN_DUAL_INTERFACE_PART(MenuSink,IRTXCUICommand)STDMETHOD(OnInvoke)(enumRTXC_UI_TYPEUIType,longId,VARIANTParameter){METHOD_PROLOGUE(CAppSharePluginModule,MenuSink)returnpThis->OnInvoke(UIType,Id,Par
5、ameter);}STDMETHOD(OnQueryState)(enumRTXC_UI_TYPEUIType,longId,VARIANTParameter,BSTR*Text,enumRTXC_UI_ITEM_STATE*State){METHOD_PROLOGUE(CAppSharePluginModule,MenuSink)returnpThis->OnQueryState(UIType,Id,Parameter,Text,State);}END_DUAL_INTERFACE_PART(MenuSink)定义菜单响应的接口函数:HRESULTOnInvoke(enumRTXC_UI_T
6、YPEUIType,longId,VARIANTParameter);HRESULTOnQueryState(enumRTXC_UI_TYPEUIType,longId,VARIANTParameter,BSTR*Text,enumRTXC_UI_ITEM_STATE*State);在AppSharePluginModule.cpp文件中,需要添加如下代码://实现标准的IDispatch方法DELEGATE_DUAL_INTERFACE(CAppSharePluginModule,MenuSink)//实现菜单响应的实现函数:HRESULTCAppSharePluginModule::OnQ
7、ueryState(enumRTXC_UI_TYPEUIType,longId,VARIANTParameter,BSTR*Text,enumRTXC_UI_ITEM_STATE*State){returnS_OK;}HRESULTCAppSharePluginModule::OnInvoke(enumRTXC_UI_TYPEUIType,longId,VARIANTParameter){retu