#include "..\include_spec_header.h"

// 调用格式: SDT_BOOL 推迟调用子程序, 命令说明: "本命令被执行时，在内部启动一个计时器（精度约为100毫秒），然后立刻返回（以便易语言继续执行后面的程序代码），当计时时间到时才调用参数所指定的子程序。如上所述，本命令不会阻塞易语言程序的运行。本命令的第四个参数“返回值”目前不予使用。请注意保证子程序调用时参数依然有效。被推迟调用的子程序是在另外的线程中调用的，请注意保证线程安全。"
// 参数<1>: 推迟时间 SDT_INT, 参数说明: "单位为毫秒。如果本参数小于或等于0，则子程序将被立刻调用。本参数最大可设置为 2147483647(0x7fffffff) 毫秒（约 596 小时）。"
// 参数<2>: 子程序指针或子程序地址 _SDT_ALL, 参数说明: "提示：在子程序名称前加“&”即可得到该子程序的“子程序指针”，如“&子程序1”就是“子程序1”的子程序指针；子程序地址可通过本库中的“取子程序地址()”命令获取，“到整数(&子程序1)”返回的也是子程序1的执行地址，也可通过Windows系统API函数“GetProcAddress()”获取，或由外部程序传入。"
// 参数<3>: [保留参数 _SDT_ALL], 参数说明: NULL
// 参数<4>: [&返回值 _SDT_ALL], 参数说明: "本参数用于接收子程序被调用后的返回值；如果该子程序没有返回值或不需要接收返回值，请省略本参数。提供本参数时，请务必提供准确的数据类型，否则所得结果可能不正确。"
// 参数<5>: [参数 _SDT_ALL], 参数说明: "本参数值将作为参数传入被调用子程序。如果相应子程序没有参数，请省略本参数；如果相应子程序有多个参数，请重复提供本参数。请务必提供准确的参数类型和参数个数，否则后果不可预知。"
// 变长参数, 命令参数表中最后一个参数可以被重复添加
SPEC_EXTERN_C void spec_DelayCallFunction_8_spec(PMDATA_INF pRetData, INT nArgCount, PMDATA_INF pArgInf)
{
    INT      arg1 = pArgInf[0].m_int;
    PVOID    arg2 = pArgInf[1].m_pByte;
    PVOID    arg3 = pArgInf[2].m_pByte;
    PVOID    arg4 = pArgInf[3].m_pByte;
    PVOID    arg5 = pArgInf[4].m_pByte;

}

