其他语言

本类阅读TOP10

·基于Solaris 开发环境的整体构思
·使用AutoMake轻松生成Makefile
·BCB数据库图像保存技术
·GNU中的Makefile
·射频芯片nRF401天线设计的分析
·iframe 的自适应高度
·BCB之Socket通信
·软件企业如何实施CMM
·入门系列--OpenGL最简单的入门
·WIN95中日志钩子(JournalRecord Hook)的使用

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
Gaim Plugin开发

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

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




相关文章

相关软件