Gaim Plugin开发

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

Gaim Plugin开发

一. 插件描述

Gaim是基于GTK+2的多平台的即时通信的客户端。它支持很多常见的协议,包括:MSN,Yahoo,ICQ,QQ,JABBER还有我在做的淘宝旺旺.如果需要为一个新的im 协议做一个插件,那么看下面的简单描述,详细的内容只能等再进一步补充了.

二. 接口定义

按照GAIM PLUGIN API的要求定义接口函数和接口变量.

1. 定义Gaim Plugin句柄

static GaimPlugin *ww_plugin = NULL;

此结构定义在Plugin.h中说明:

结构的成员变量 GaimPluginInfo *info将在初始化中指向插件详细信息的指针.

2.定义插件协议信息

static GaimPluginProtocolInfo prpl_info= {

..

..

..

}

此结构定义了所有协议函数的人口以提供给GAIM调用. GAIM在事件触发的时候来这个结构里面查找相应的函数,如用户在GAIM使用此插件在界面上点击登陆时候,GAIM将在此查找到登陆的函数进行调用.

注意: list_icon函数不能为空

3. 定义插件详细信息

static GaimPluginInfo info ={

..

..

}

此结构定义在Plugin.h中说明:

其中主要的有插件ID,插件的名字,插件的版本,插件类型(说明是协议插件或者是普通插件),插件协议信息(定义消息处理)

4.定义初始化函数

static void init_plugin(GaimPlugin *plugin){

ww_plugin = plugin; //将plugin指向前面定义的ww_plugin

}

5.定义插件入口函数

GAIM_INIT_PLUGIN(ww, init_plugin, info)

6.源代码.

不知道怎么放,参看gaim代码里面的Protocol例子吧

三. 编译安装

看一下Makefile吧

all:install

libwangwang.so:wwang.o

ld -shared -o libwwang.so wwang.o

wwang.o:wwang.c

gcc -fPIC -DGAIM_PLUGINS -Wall -g -DVERSION=\"1.1.1\" -I. -I../../src -I.. -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/

include -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -c wwang.c -o wwang.o

install: libwangwang.so

cp libwwang.so /home/wee/bin/gaim/lib/gaim/

三. 进一步处理

编译完的so被拷贝到GAIM安装目录下后,启动GAIM选新建一个帐户,然后可以在协议列表里面看到你所定义的插件的名字,可以输入用户名和密码保存,当然登陆的时候,点登陆按钮什么也不没做,进一步的处理是根据你要连接的IM服务器的协议针对每个动作进行处理,如登陆退出,增删改好友,组,收发消息. 可以参考的例子除了GAIM自身带的MSN,JABBER,yahoo的插件外,还有OPENQ..

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有  導航