易语言创建“Windows动态链接库”，

链接库中只有一个子程序（函数）Receive，有一个文本型传入参数和一个文本型返回值，机器人收到消息，把QQ号码、消息内容等拼接后（拼接格式后面有说明，参考传入参数）传递给Receive，Receive内部处理后，返回处理结果，处理结果也是自己拼接的字符串（拼接格式后面有说明，参考返回值）
.版本 2

.子程序 Receive, 文本型, 公开
.参数 Message, 文本型

' 这里根据Message内容，执行不同操作
返回 (Message)


★传入参数说明：
传入参数：Message格式为参数1=值1<&>参数2=值2<&>参数3=值3......<&>参数n=值n
例如：c#调用SendToDLL("Event", "Install", "QQ", client.User.QQ);传递给Receive的参数为：
RobotQQ=123456<&>Event=Install<&>QQ=123456
表示机器人正在安装插件，调用了插件的安装函数。

以下详细说明：
SendToDLL("Event", "Install", "QQ", client.User.QQ);
安装插件、机器人QQ号码

SendToDLL("Event", "Start", "QQ", client.User.QQ);
启动插件、机器人QQ号码

SendToDLL("Event", "ShowForm", "QQ", client.User.QQ);
显示插件设置窗口、机器人QQ号码

SendToDLL("Event", "Stop", "QQ", client.User.QQ);
停止插件、机器人QQ号码

SendToDLL("Event", "UnInstall", "QQ", client.User.QQ);
卸载插件、机器人QQ号码

SendToDLL("Event", "StatusChanged", "QQ", friend.QQ, "NickName", friend.NickName, "QQStatus", friend.QQStatus.ToString());
好友状态改变、好友QQ、好友昵称、当前在线状态

SendToDLL("Event", "SignatureChanged", "QQ", friend.QQ, "NickName", friend.NickName, "Signature", Friend.Signature.Sig);
好友签名改变、QQ、昵称、当前签名

SendToDLL("Event", "RejectJoinCluster", "ExternalId", Cluster.ExternalId, "Name", Cluster.Name, "QQ", friend.QQ, "NickName", friend.NickName, "Message", e.Message);
群管理员拒绝我的入群申请、群号码、群名、管理员QQ、管理员昵称、拒绝理由

SendToDLL("Event", "ReceiveVibration", "QQ", friend.QQ, "NickName", friend.NickName, "First", e.First);
收到抖动、QQ、昵称、是否首次打开聊天窗口（首次打开聊天窗口为True，其他抖动窗口为False）

SendToDLL("Event", "ReceiveTempIM", "ExternalId", e.ExternalId, "QQ", friend.QQ, "NickName", friend.NickName, "Message", e.Message);
收到临时对话、群号码（如果是从群发起的临时对话则传递群号码，如果是网页发起的，传递0）、对方QQ、昵称、消息内容

SendToDLL("Event", "ReceiveNormalIM", "QQ", friend.QQ, "NickName", friend.NickName, "Message", e.Message);
收到好友消息（包括单向好友）、QQ、昵称、消息内容

SendToDLL("Event", "ReceiveClusterIM", "ExternalId", Cluster.ExternalId, "Name", Cluster.Name, "QQ", ClusterMember.QQ, "Nick", ClusterMember.Nick, "Card", ClusterMember.Card, "Message", e.Message);
收到群消息、群号码、群名、对方QQ、昵称、名片、消息内容

SendToDLL("Event", "QQLevel", "VIP", e.VIP, "Level", e.Level, "ActiveDays", e.ActiveDays, "UpgradeDays", e.UpgradeDays);
QQ号码等级（没什么大用）

SendToDLL("Event", "MemberExitCluster", "ExternalId", e.Cluster.ExternalId, "Name", e.Cluster.Name, "QQ", e.ClusterMember.QQ, "NickName", e.ClusterMember.Nick, "Card", e.ClusterMember.Card, "AdminQQ", e.ClusterMemberAdmin.QQ, "AdminNickName", e.ClusterMemberAdmin.Nick, "AdminCard", e.ClusterMemberAdmin.Card);
成员退群事件、群号码、群名、退群的QQ、退群的昵称、退群的名片、管理员QQ（如果是被踢的）、管理员昵称（如果是被踢）、管理员名片（如果是被踢）

SendToDLL("Event", "MemberExitCluster", "ExternalId", e.Cluster.ExternalId, "Name", e.Cluster.Name, "QQ", e.ClusterMember.QQ, "NickName", e.ClusterMember.Nick, "Card", e.ClusterMember.Card);
成员退群事件、群号码、群名、退群的QQ、退群的昵称、退群的名片

SendToDLL("Event", "LostConnection", "QQ", client.User.QQ, "Message", e.Message);
机器人掉线、机器人号码、掉线说明

SendToDLL("Event", "LoginSuccessed", "QQ", client.User.QQ);
登陆成功，此事件不会发生，因为机器人登陆成功后才加载插件，所以插件收不到这个事件（不需要处理该事件）

SendToDLL("Event", "Licence", "t", e.ExpTime);
授权到期时间、时间

SendToDLL("Event", "KeepAlive", "AliveCount", e.AliveCount, "ServerTime", e.ServerTime);
心跳包、服务器当前在线人数、服务器时间（机器人会每分钟发送一次心跳包，如果收不到该事件，表示机器人掉线）

SendToDLL("Event", "ClusterAdminChanged", "ExternalId", e.Cluster.ExternalId, "Name", e.Cluster.Name, "QQ", e.ClusterMember.QQ, "NickName", e.ClusterMember.Nick, "Card", e.ClusterMember.Card, "IsAdmin", e.ClusterMember.IsAdmin());
群管理权限变更、群号码、群名、QQ、昵称、名片、变为管理员

SendToDLL("Event", "CardChanged", "ExternalId", e.Cluster.ExternalId, "Name", e.Cluster.Name, "QQ", e.ClusterMember.QQ, "NickName", e.ClusterMember.Nick, "Card", e.ClusterMember.Card);
群成员名片改变、群号、昵称、名片

SendToDLL("Event", "AddToClusterNeedAuth", "ExternalId", e.Cluster.ExternalId, "Name", e.Cluster.Name, "QQ", e.QQ, "Message", e.Message);
有人申请加入群等待我审核、群号、群名、QQ、验证内容

SendToDLL("Event", "AddMeFriendNeedAuth", "QQ", e.QQ, "NickName", friend.NickName, "Message", e.Message);
我被加为好友，需要我认证、QQ、昵称、验证内容

SendToDLL("Event", "AddMeFriend", "QQ", e.QQ, "NickName", friend.NickName);
我被加为好友，自动通过认证、对方qq、昵称

SendToDLL("Event", "AddedToClusterInvite", "ExternalId", e.Cluster.ExternalId, "Name", e.Cluster.Name, "QQ", e.ClusterMemberAdmin.QQ, "Nick", e.ClusterMemberAdmin.Nick);
我被邀请加入群或者我是管理员，其他人被邀请

SendToDLL("Event", "AddedToCluster", "ExternalId", e.Cluster.ExternalId, "Name", e.Cluster.Name, "QQ", e.ClusterMember.QQ, "Nick", e.ClusterMember.Nick, "Card", e.ClusterMember.Card, "AdminQQ", e.ClusterMemberAdmin.QQ, "AdminNick", e.ClusterMemberAdmin.Nick, "AdminCard", e.ClusterMemberAdmin.Card);
有人进入群

SendToDLL("Event", "GET");
该事件每间隔10秒钟发生一次，用于DLL插件需要主动发送消息（或者主动踢人、同意进群等）时返回消息（返回消息格式参考下面说明）



★返回值说明
返回格式为<&&>函数1<&>参数1<&>参数2......<&>参数n
例如给qq：123456发送你好，返回：
<&&>SendMessage<&>123456<&>你好
表示：发送消息、QQ号码、消息内容


★返回值具体说明如下：
<&&>AddFriend<&>QQ<&>验证内容
【待实现】主动加好友，不能频繁调用，否则出验证码

<&&>AgreeAddedToClusterInvite<&>群号码<&>true：同意 false：拒绝<&>拒绝理由
同意、拒绝加入别人的群（我被邀请加入群），机器人重启无效

<&&>AgreeJoinCluster<&>群号码<&>QQ<&>同意：true 不同意：false<&>不同意时，拒绝的理由
同意他人加入群或者拒绝

<&&>ChangeQQStatus<&>状态<&>
改变我的在线状态
状态可选值：在线、离开、隐身、忙碌、Q我吧、请勿打扰

<&&>ExitCluster<&>群号码
退出群


<&&>JoinCluster<&>群号码<&>验证内容
申请加入群


<&&>Logout
退出机器人


<&&>ModifyMemberCard<&>群号码<&>成员QQ<&>新名片
修改群成员名片（需要机器人是管理员）


<&&>ModifySignature<&>新签名
修改个性签名


<&&>RemoveMember<&>群号码<&>QQ号码
群里踢人


<&&>SayHello<&>QQ<&>打招呼内容
打招呼


<&&>SendClusterMessage<&>群号码<&>消息内容
发送q群消息，群号码为1时，发给所有群


<&&>SendMessage<&>QQ<&>内容
发送qq消息


<&&>SendTempMessage<&>群号码<&>QQ号码<&>内容
发送临时对话消息，群号码为0时表示网页临时对话，否则表示群临时对话






