易IDE行号插件源码

.版本 2 .支持库 EThread .程序集 插件 .程序集变量 线程句柄_窗口探测, 整数型 .子程序 _启动子程序, 整数型 ET.添加事件处理 (#事件标识_插件启用, &事件_插件启用) ET.添加事件处理 (#事件标识_插件停用, &事件_插件停用) 返回 (0) .子程序 插件信息, 整数型, 公开 返回 (生成插件信息 (“插件名称”, “插件备注”, “1.0”, “插件作者”, , )) .子程序 事件_插件启用 进程ID = 进程_取自进程ID () .如果真 (IDE_地址初始化 () = 假) 返回 () .如果真结束 启动线程 (&线程_窗口探测, , 线程句柄_窗口探测) .子程序 事件_插件停用 强制结束线程 (线程句柄_窗口探测) 恢复所有消息事件 () .子程序 恢复所有消息事件 .局部变量 窗口数量, 整数型 .局部变量 i, 整数型 窗口数量 = 取数组成员数 (所有窗口) .计次循环首 (窗口数量, i) SetWindowLongA (所有窗口 [窗口数量 - i + 1].代码框句柄, -4, GetPropA (所有窗口 [窗口数量 - i + 1].代码框句柄, “LineNumber_Proc”)) .计次循环尾 () .子程序 IDE_地址初始化, 逻辑型 .局部变量 数据, 字节集 .局部变量 版本, 小数型 .局部变量 索引, 整数型 .局部变量 i, 整数型 .局部变量 起始地址, 整数型 .局部变量 数据长度, 整数型 .局部变量 剩余长度, 整数型 起始地址 = 4194304 数据长度 = 2000000 数据 = 指针到字节集 (起始地址, 数据长度) 间距地址 = 寻找字节集 (数据, { 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 244, 255, 255, 255 }, ) .如果真 (间距地址 = -1) ET.输出文本 (“初始化失败”, 真) 返回 (假) .如果真结束 剩余长度 = 数据长度 - 间距地址 间距地址 = 间距地址 + 起始地址 - 2 索引 = 间距地址 .计次循环首 (剩余长度, i) .如果真 (指针到字节集 (索引 + i, 4) = { 1, 0, 0, 0 }) .如果真 (指针到字节集 (索引 + i + 7, 1) = { 0 }) .如果真 (指针到字节集 (索引 + i + 12, 4) = { 6, 0, 0, 0 }) 单行高度地址 = 索引 + i + 16 跳出循环 () .如果真结束 .如果真结束 .如果真结束 .计次循环尾 () .如果真 (单行高度地址 = 0) ET.输出文本 (“初始化失败”, 真) 返回 (假) .如果真结束 ET.输出文本 (“初始化成功”, 真) 返回 (真) .子程序 线程_窗口探测 .局部变量 窗口数量, 整数型 .局部变量 i, 整数型 .局部变量 rcWnd, 精易_矩形 .局部变量 窗口句柄, 整数型 .局部变量 hProc, 整数型 .判断循环首 (真) 功能_取窗口句柄 () 窗口数量 = 取数组成员数 (所有窗口) .计次循环首 (窗口数量, i) SetPropA (所有窗口 [窗口数量 - i + 1].代码框句柄, “Obj_index”, 窗口数量 - i + 1) .判断开始 (IsWindow (所有窗口 [窗口数量 - i + 1].代码框句柄) = 0) 删除成员 (所有窗口, 窗口数量 - i + 1, ) 跳出循环 () .判断 (所有窗口 [窗口数量 - i + 1].是否开启 = 假) SetPropA (所有窗口 [窗口数量 - i + 1].代码框句柄, “LineNumber_LineWidth”, 45) 所有窗口 [窗口数量 - i + 1].接口_IDE代码编辑框管理 = 接口_获取IDE代码编辑框管理 () 所有窗口 [窗口数量 - i + 1].接口_IDE代码编辑框管理.初始化 (所有窗口 [窗口数量 - i + 1].代码框句柄) hProc = SetWindowLongA (所有窗口 [窗口数量 - i + 1].代码框句柄, -4, 到整数 (&LineNumber_OnMessage)) SetPropA (所有窗口 [窗口数量 - i + 1].代码框句柄, “LineNumber_Proc”, hProc) 所有窗口 [窗口数量 - i + 1].是否开启 = 真 跳出循环 () .默认 .判断结束 程序_延时 (5) .计次循环尾 () 程序_延时 (100) .判断循环尾 () .子程序 功能_取窗口句柄 .局部变量 顶层句柄, 整数型 .局部变量 一级窗口, 整数型, , "0" .局部变量 二级窗口, 整数型 .局部变量 三级窗口, 整数型, , "0" .局部变量 i, 整数型 .局部变量 j, 整数型 .局部变量 dwStyle, 整数型 .局部变量 窗口结构, 窗口结构 .局部变量 重复, 逻辑型 顶层句柄 = 进程_ID取窗口句柄 (进程ID, , “ENewFrame”) .如果真 (顶层句柄 = 0) 返回 () .如果真结束 顶层句柄 = 窗口_取句柄 (顶层句柄, , “MDIClient”, ) .如果真 (顶层句柄 = 0) 返回 () .如果真结束 窗口_枚举子窗口 (顶层句柄, 一级窗口) .计次循环首 (取数组成员数 (一级窗口), i) 二级窗口 = 窗口_取句柄 (一级窗口 [i], , ) 重复 = 假 .计次循环首 (取数组成员数 (所有窗口), j) .如果真 (所有窗口 [j].顶层句柄 = 二级窗口) 重复 = 真 .如果真结束 .计次循环尾 () .如果真 (重复 = 假) 窗口_枚举子窗口 (二级窗口, 三级窗口) 窗口结构.顶层句柄 = 0 窗口结构.滚动条句柄 = 0 窗口结构.代码框句柄 = 0 .计次循环首 (取数组成员数 (三级窗口), j) dwStyle = GetWindowLongA (三级窗口 [j], -16) ' #GWL_STYLE .如果真 (位与 (dwStyle, 1) = 1) ' #SBS_VERT 窗口结构.顶层句柄 = 二级窗口 窗口结构.滚动条句柄 = 三级窗口 [j] .如果真结束 .如果真 (窗口_取类名 (三级窗口 [j]) = “Afx:400000:8:10003:1900015:0”) 窗口结构.绘制框句柄 = 三级窗口 [j] 窗口结构.代码框句柄 = 窗口_取句柄 (三级窗口 [j]) .如果真结束 .计次循环尾 () .如果真 (窗口结构.滚动条句柄 ≠ 0 且 窗口结构.代码框句柄 ≠ 0) 加入成员 (所有窗口, 窗口结构) .如果真结束 .如果真结束 程序_延时 (5) .计次循环尾 ()
相关文件下载地址
©下载资源版权归作者所有;本站所有资源均来源于网络,仅供学习使用,请支持正版!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注