
Miranda IM
文章平均质量分 54
程序猿凯撒
从事软件研发多年,2013年加盟南斗智拓,主持公司各项产品研发工作。从事软件研发多年,2013年加盟南斗智拓,主持公司各项产品研发工作。
展开
-
Miranda的HOOK及SERVICE机制分析
最近换了工作, 新的工作任务是维护一个IM系统,由于一些原因还没有拿到IM的源码,所以这段时间就研究一下开源的IM客户端miranda,初步了解一下,就感觉miranda是一个很优秀的系统,灵活的插件结构,使的miranda系统非常的灵活,也方便世界各地的程序员实现各种不同的功能,以后我会陆续把自己分析的笔记贴出来,同时也欢迎分析过这个系统的朋友一起来参与讨论,指出我理解的不正确的地方.0 概原创 2007-06-20 10:35:00 · 1673 阅读 · 0 评论 -
Jabber 协议概述
Jabber 协议概述Peter Saint-Andrestpeter@jabber.org1.4版Jabber服务协议的概述1. 介绍 Jabber是一个由开源社区发起并领导开发的即时消息和在线状态的系统。Jabber系统和其它即时消息(IM)服务的一个功能上的差别在于Jabber拥有开放的XML协议。在保持Jabber1.0版本有关消息核心以及在线状态的协议的基转载 2007-09-25 14:50:00 · 1518 阅读 · 0 评论 -
Jabber 技术概况
Jabber 技 术 概 况Jabber即时通信系统服务整体框架的概述1、Jabber技术概述 本文档包括以下内容:? Introduction 简介? Foundations 基本知识? High-Level Server Architecture高阶服务体系? Basi转载 2007-09-25 14:48:00 · 1324 阅读 · 0 评论 -
注册注销登录退出jabber
注册Jabber用户static BOOL CALLBACK JabberRegisterDlgProc( HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam ){ ThreadData *thread, *regInfo; switch ( msg ) { case WM_I原创 2007-09-25 14:46:00 · 3341 阅读 · 0 评论 -
收发Jabber消息流程
1. 聊天对话框基本信息:1) 对话框模板: IDD_MSG2) 窗口过程: DlgProcMessage3) “发送”按钮: IDOK 在聊天对话框初始化的时候关于该联系人所用协议等信息已经做为该窗口的用户数据设置好了,用到的时候只要以GWL_USERDATA 为参数调用GetWindowLong就可以得到该用户数据的原创 2007-09-25 14:44:00 · 4632 阅读 · 0 评论 -
Miranda插件分析
1. 概述Miranda 提供了一套非常灵活的插件机制, 使得用户可以很方便的通过增减插件来添加或去除一些扩展功能. 源码里有一个testplug project, 演示了实现一个Miranda插件的基本方法,下面就通过对testplug project的分析, 来学习Miranda的插件技术.2. Miranda插件分类 基本插件: srmm.dll,clist_mod原创 2007-09-25 14:42:00 · 2777 阅读 · 0 评论 -
Miranda UI 分析
1. 概述1.1. Miranda IM运行以后的主界面: 1.2. 用spy++可以看到窗口的构成: 从上图可以看出miranda的窗口的基本构成,下面对比较重要的几个窗口进行具体的分析. 1.3. 关于GWL_USERDATAMiranda的窗口里经常会有一些全局的数据需要保存, Miranda的做法是在处理WM_INITDIALOG时动态原创 2007-09-25 14:41:00 · 4490 阅读 · 0 评论 -
miranda-主要模块列表
Miranda IM plugin list:AIM.dll提供AIM协议支持的插件,如果使用aim聊天工具的话,就用这个BossKey.dll老板键支持 快捷键隐藏软件界面 上班不怕老板抓哦chat.dll多人聊天支持 是IRC插件的必要插件 QQ、MSN插件也可用clist_modern.dll让软件主界面支持皮肤等更多功能dbeditorpp.dll数据库编辑插件db原创 2007-07-12 18:23:00 · 2783 阅读 · 0 评论 -
miranda-APC(异步过程调用)分析
APC : asynchronous procdure call 异步过程调用 Alertable IO(告警IO)提供了更有效的异步通知形式。ReadFileEx / WriteFileEx在发出IO请求的同时, 提供一个回调函数(APC过程),当IO请求完成后,一旦线程进入可告警状态,回调函数将会执行。 以下五个函数能够使线程进入告警状态: SleepEx Wai原创 2007-07-12 18:19:00 · 2430 阅读 · 3 评论 -
miranda-组件图
原创 2007-07-12 18:35:00 · 1444 阅读 · 0 评论 -
miranda-forkthread,forkthread_r分析
与forkthread,forkthread_r对应还有另外一套forkthreadex,forkthreadex_r不同之处在于前者调用_beginthread来创建线程,后者调用_beginthreadex创建线程,可指定的参数更多一些基本的思想都是一样的,都是为了当进程正常退出的时候能够安全的结束线程,下面只分析forkthread和forkthread_r./*Purpose:原创 2007-07-12 18:21:00 · 1321 阅读 · 0 评论 -
miranda-主流程
原创 2007-07-12 18:31:00 · 1524 阅读 · 2 评论 -
miranda内存分配机制
Miranda里使用专门的函数分配和释放内存,分配内存的时候总是在前面多分配三个DWORD(12 bytes),第一个DWORD用于存储内存块的大小(不包括这三个附加的DWORD)第二个和第三个DWORD用于描述这块内存的使用状态:BLOCK_ALLOCED 或 BLOCK_FREEDvoid* mir_alloc( size_t size ){ if ( size == 0 ) retur原创 2007-07-12 18:18:00 · 1483 阅读 · 0 评论 -
miranda-用例图0
原创 2007-07-12 18:39:00 · 1088 阅读 · 1 评论 -
GNU通用公共许可证(中--英对照)
GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave, Cambridge,转载 2007-06-20 11:17:00 · 1135 阅读 · 0 评论 -
Miranda 分析结束语
该文件夹下的文档, 大多数是这段时间分析Miranda源码的结果, 也有一些是从网上收集的相关资料. 4个多月了, 除了开发了一个收发短信的web service以外, 每天基本是以学习技术, 分析jabber, 分析miranda为主了.这些文档格式都很不规范, 很多都是以随笔的形式用记事本记录的文本文件, 从昨天开始,中搜那边答应给im的代码了, 所以我把Miranda的东西整理一下,原创 2007-09-25 14:56:00 · 2456 阅读 · 1 评论