.版本 2
.程序集 程序集1
.程序集变量 s_pBuffer, 整数型
.子程序 _启动子程序, 整数型
返回 (0)
.子程序 Dll入口函数, 逻辑型, 公开
.参数 hModule, 整数型
.参数 ul_reason_for_call, 整数型
.参数 lpReserved, 整数型
.如果 (ul_reason_for_call = #DLL_PROCESS_ATTACH)
.否则
.如果真 (ul_reason_for_call = #DLL_PROCESS_DETACH)
' 释放所保持的内存
.如果真 (s_pBuffer ≠ 0)
HeapFree (GetProcessHeap (), 0, s_pBuffer)
.如果真结束
.如果真结束
.如果结束
返回 (真)
.子程序 MacroProcessor, 文本型, 公开
.参数 apImmArgs, 整数型, , IMM_VALUE_WITH_DATA_TYPE
.参数 nNumImmArgs, 整数型
.参数 pProcessResult, 整数型, , IMM_VALUE_WITH_DATA_TYPE
.局部变量 szErrorMessage, 文本型, , , 用作返回错误信息
.局部变量 pImmArg, IMM_VALUE_WITH_DATA_TYPE
.局部变量 ProcessResult, IMM_VALUE_WITH_DATA_TYPE
' 释放上一次调用所使用的内存
.如果真 (s_pBuffer ≠ 0)
HeapFree (GetProcessHeap (), 0, s_pBuffer)
s_pBuffer = 0
.如果真结束
.循环判断首 ()
.如果真 (nNumImmArgs ≠ 1) ' 参数数目不为1(本插件只能处理一个参数)
szErrorMessage = “参数数目错误”
跳出循环 ()
.如果真结束
' 获得第一个参数数据
RtlMoveMemory1 (pImmArg, apImmArgs, 12)
' 设置所返回数据的数据类型和数组类型
ProcessResult.m_dtDataType = pImmArg.m_dtDataType ' 数据类型一致
ProcessResult.m_blIsAry = pImmArg.m_blIsAry ' 数组类型也一致
.如果 (pImmArg.m_blIsAry) ' 参数数据不为数组
szErrorMessage = “无效的参数数据类型”
跳出循环 ()
.否则
.如果真 (pImmArg.m_dtDataType = #MDT_INT)
ProcessResult.m_imm = pImmArg.m_imm + 1
RtlMoveMemory2 (pProcessResult, ProcessResult, 12)
.如果真结束
.如果结束
.循环判断尾 (假)
返回 (szErrorMessage)
易语言写插件