Gaim Plugin开发

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..

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值