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