易IDE视觉库插件开发文档

插件开发


IRE_ 事件注册常量

常量名 [别名] | 16进制值 | 10进制值 | 使用这个常量最低要求版本

IRE_SIZE_TABWORK IRE_TAB_WORK_SIZE 0x0001 1 v1.0.801 左边工作夹尺寸被改变, 事件回调的第三个参数收到 IRE_STRUCT_TAB_SIZE 结构指针, 返回是否拦截, 处理后返回值暂时无意义

// 注册事件, 处理这个事件前是调用 IRE_Callback_Before, 处理完这个事件后调用 IRE_Callback_After
// 如果在 IRE_Callback_Before 这个函数里返回拦截则不会触发 IRE_Callback_After
iDraw_Event_RegisterEvent(唯一标识符, IRE_SIZE_TABWORK, 参数前, IRE_Callback_Before, 参数后, IRE_Callback_After);

// 处理前的回调
// nEvent = IRE_SIZE_TABWORK
// param = iDraw_Event_RegisterEvent() 注册事件传递的 "参数前"
// pArg = IRE_STRUCT_TAB_SIZE 结构指针
DWORD CALLBACK IRE_Callback_Before(UINT nEvent, LONG_PTR param, LPVOID pArg)
{
   IRE_STRUCT_TAB_SIZE* pData = (IRE_STRUCT_TAB_SIZE*)pArg; // 这个事件是这个结构

   return 0;  // 返回是否拦截, 返回0不拦截, 返回非0则拦截
}

// 处理后的回调, 如果处理前的回调函数返回拦截, 那这个事件不会触发
// nEvent = IRE_SIZE_TABWORK
// param = iDraw_Event_RegisterEvent() 注册事件传递的 "参数后"
// pArg = IRE_STRUCT_TAB_SIZE 结构指针
DWORD CALLBACK IRE_Callback_After(UINT nEvent, LONG_PTR param, LPVOID pArg)
{
   IRE_STRUCT_TAB_SIZE* pData = (IRE_STRUCT_TAB_SIZE*)pArg; // 这个事件是这个结构

    return 0;  // 返回值目前无意义
}

IRE_SIZE_TABSTATE IRE_TAB_STATE_SIZE 0x0002 2 v1.0.801 下边状态夹尺寸被改变, 事件回调的第三个参数收到 IRE_STRUCT_TAB_SIZE 结构指针, 返回是否拦截, 处理后返回值暂时无意义

// 注册事件, 处理这个事件前是调用 IRE_Callback_Before, 处理完这个事件后调用 IRE_Callback_After
// 如果在 IRE_Callback_Before 这个函数里返回拦截则不会触发 IRE_Callback_After
iDraw_Event_RegisterEvent(唯一标识符, IRE_SIZE_TABSTATE, 参数前, IRE_Callback_Before, 参数后, IRE_Callback_After);

// 处理前的回调
// nEvent = IRE_SIZE_TABSTATE
// param = iDraw_Event_RegisterEvent() 注册事件传递的 "参数前"
// pArg = IRE_STRUCT_TAB_SIZE 结构指针
DWORD CALLBACK IRE_Callback_Before(UINT nEvent, LONG_PTR param, LPVOID pArg)
{
   IRE_STRUCT_TAB_SIZE* pData = (IRE_STRUCT_TAB_SIZE*)pArg; // 这个事件是这个结构

   return 0;  // 返回是否拦截, 返回0不拦截, 返回非0则拦截
}

// 处理后的回调, 如果处理前的回调函数返回拦截, 那这个事件不会触发
// nEvent = IRE_SIZE_TABSTATE
// param = iDraw_Event_RegisterEvent() 注册事件传递的 "参数后"
// pArg = IRE_STRUCT_TAB_SIZE 结构指针
DWORD CALLBACK IRE_Callback_After(UINT nEvent, LONG_PTR param, LPVOID pArg)
{
   IRE_STRUCT_TAB_SIZE* pData = (IRE_STRUCT_TAB_SIZE*)pArg; // 这个事件是这个结构

    return 0;  // 返回值目前无意义
}

IRE_SIZE_TABMDICLIENT IRE_TAB_MDICLIENT_SIZE 0x0003 3 v1.0.801 MDIClient尺寸被改变, 事件回调的第三个参数收到 IRE_STRUCT_MDICLIENT_MOVE_EVENT 结构指针, 返回是否拦截, 处理后返回值暂时无意义

// 注册事件, 处理这个事件前是调用 IRE_Callback_Before, 处理完这个事件后调用 IRE_Callback_After
// 如果在 IRE_Callback_Before 这个函数里返回拦截则不会触发 IRE_Callback_After
iDraw_Event_RegisterEvent(唯一标识符, IRE_SIZE_TABMDICLIENT, 参数前, IRE_Callback_Before, 参数后, IRE_Callback_After);

// 处理前的回调
// nEvent = IRE_SIZE_TABMDICLIENT
// param = iDraw_Event_RegisterEvent() 注册事件传递的 "参数前"
// pArg = IRE_STRUCT_MDICLIENT_MOVE_EVENT 结构指针
DWORD CALLBACK IRE_Callback_Before(UINT nEvent, LONG_PTR param, LPVOID pArg)
{
   IRE_STRUCT_MDICLIENT_MOVE_EVENT* pData = (IRE_STRUCT_MDICLIENT_MOVE_EVENT*)pArg; // 这个事件是这个结构

   return 0;  // 返回是否拦截, 返回0不拦截, 返回非0则拦截
}

// 处理后的回调, 如果处理前的回调函数返回拦截, 那这个事件不会触发
// nEvent = IRE_SIZE_TABMDICLIENT
// param = iDraw_Event_RegisterEvent() 注册事件传递的 "参数后"
// pArg = IRE_STRUCT_MDICLIENT_MOVE_EVENT 结构指针
DWORD CALLBACK IRE_Callback_After(UINT nEvent, LONG_PTR param, LPVOID pArg)
{
   IRE_STRUCT_MDICLIENT_MOVE_EVENT* pData = (IRE_STRUCT_MDICLIENT_MOVE_EVENT*)pArg; // 这个事件是这个结构

    return 0;  // 返回值目前无意义
}

IRE_TOOLSTATE_CHANGE 0x0012 18 v1.0.801 易语言标准工具条按钮状态被改变, 事件回调的第三个参数接收 IRE_STRUCT_TOOLSTATE_CHANGE 结构, 返回是否拦截, 处理后返回值暂时无意义

// 注册事件, 处理这个事件前是调用 IRE_Callback_Before, 处理完这个事件后调用 IRE_Callback_After
// 如果在 IRE_Callback_Before 这个函数里返回拦截则不会触发 IRE_Callback_After
iDraw_Event_RegisterEvent(唯一标识符, IRE_TOOLSTATE_CHANGE, 参数前, IRE_Callback_Before, 参数后, IRE_Callback_After);

// 处理前的回调
// nEvent = IRE_TOOLSTATE_CHANGE
// param = iDraw_Event_RegisterEvent() 注册事件传递的 "参数前"
// pArg = IRE_STRUCT_TOOLSTATE_CHANGE 结构指针
DWORD CALLBACK IRE_Callback_Before(UINT nEvent, LONG_PTR param, LPVOID pArg)
{
   IRE_STRUCT_TOOLSTATE_CHANGE* pData = (IRE_STRUCT_TOOLSTATE_CHANGE*)pArg; // 这个事件是这个结构

   return 0;  // 返回是否拦截, 返回0不拦截, 返回非0则拦截
}

// 处理后的回调, 如果处理前的回调函数返回拦截, 那这个事件不会触发
// nEvent = IRE_TOOLSTATE_CHANGE
// param = iDraw_Event_RegisterEvent() 注册事件传递的 "参数后"
// pArg = IRE_STRUCT_TOOLSTATE_CHANGE 结构指针
DWORD CALLBACK IRE_Callback_After(UINT nEvent, LONG_PTR param, LPVOID pArg)
{
   IRE_STRUCT_TOOLSTATE_CHANGE* pData = (IRE_STRUCT_TOOLSTATE_CHANGE*)pArg; // 这个事件是这个结构

    return 0;  // 返回值目前无意义
}

IRE_TABSELCHANGED_WORK IRE_TAB_WORK_SELCHANGED 0x0020 32 v1.0.801 左边工作夹选择被改变, 事件回调的第三个参数收到 IRE_STRUCT_TAB_SELCHANGE 结构指针, 处理前拦截的话不会改变子夹, 处理后返回值暂时无意义

// 注册事件, 处理这个事件前是调用 IRE_Callback_Before, 处理完这个事件后调用 IRE_Callback_After
// 如果在 IRE_Callback_Before 这个函数里返回拦截则不会触发 IRE_Callback_After
iDraw_Event_RegisterEvent(唯一标识符, IRE_TABSELCHANGED_WORK, 参数前, IRE_Callback_Before, 参数后, IRE_Callback_After);

// 处理前的回调
// nEvent = IRE_TABSELCHANGED_WORK
// param = iDraw_Event_RegisterEvent() 注册事件传递的 "参数前"
// pArg = IRE_STRUCT_TAB_SELCHANGE 结构指针
DWORD CALLBACK IRE_Callback_Before(UINT nEvent, LONG_PTR param, LPVOID pArg)
{
   IRE_STRUCT_TAB_SELCHANGE* pData = (IRE_STRUCT_TAB_SELCHANGE*)pArg; // 这个事件是这个结构

   return 0;  // 返回是否拦截, 返回拦截则不会改变子夹
}

// 处理后的回调, 如果处理前的回调函数返回拦截, 那这个事件不会触发
// nEvent = IRE_TABSELCHANGED_WORK
// param = iDraw_Event_RegisterEvent() 注册事件传递的 "参数后"
// pArg = IRE_STRUCT_TAB_SELCHANGE 结构指针
DWORD CALLBACK IRE_Callback_After(UINT nEvent, LONG_PTR param, LPVOID pArg)
{
   IRE_STRUCT_TAB_SELCHANGE* pData = (IRE_STRUCT_TAB_SELCHANGE*)pArg; // 这个事件是这个结构

    return 0;  // 返回值目前无意义
}

IRE_TABSELCHANGED_STATE IRE_TAB_STATE_SELCHANGED 0x0021 33 v1.0.801 下边状态夹选择被改变, 事件回调的第三个参数收到 IRE_STRUCT_TAB_SELCHANGE 结构指针, 处理前拦截的话不会改变子夹, 处理后返回值暂时无意义

// 注册事件, 处理这个事件前是调用 IRE_Callback_Before, 处理完这个事件后调用 IRE_Callback_After
// 如果在 IRE_Callback_Before 这个函数里返回拦截则不会触发 IRE_Callback_After
iDraw_Event_RegisterEvent(唯一标识符, IRE_TABSELCHANGED_STATE, 参数前, IRE_Callback_Before, 参数后, IRE_Callback_After);

// 处理前的回调
// nEvent = IRE_TABSELCHANGED_STATE
// param = iDraw_Event_RegisterEvent() 注册事件传递的 "参数前"
// pArg = IRE_STRUCT_TAB_SELCHANGE 结构指针
DWORD CALLBACK IRE_Callback_Before(UINT nEvent, LONG_PTR param, LPVOID pArg)
{
   IRE_STRUCT_TAB_SELCHANGE* pData = (IRE_STRUCT_TAB_SELCHANGE*)pArg; // 这个事件是这个结构

   return 0;  // 返回是否拦截, 返回拦截则不会改变子夹
}

// 处理后的回调, 如果处理前的回调函数返回拦截, 那这个事件不会触发
// nEvent = IRE_TABSELCHANGED_STATE
// param = iDraw_Event_RegisterEvent() 注册事件传递的 "参数后"
// pArg = IRE_STRUCT_TAB_SELCHANGE 结构指针
DWORD CALLBACK IRE_Callback_After(UINT nEvent, LONG_PTR param, LPVOID pArg)
{
   IRE_STRUCT_TAB_SELCHANGE* pData = (IRE_STRUCT_TAB_SELCHANGE*)pArg; // 这个事件是这个结构

    return 0;  // 返回值目前无意义
}

IRE_TABSELCHANGED_CODE IRE_TAB_CODE_SELCHANGED 0x0022 34 v1.0.801 代码切换选择夹选择被改变, 事件回调的第三个参数收到 IRE_STRUCT_TAB_SELCHANGE 结构指针, 处理前拦截的话不会触发尺寸改变事件, 处理后返回值暂时无意义

// 注册事件, 处理这个事件前是调用 IRE_Callback_Before, 处理完这个事件后调用 IRE_Callback_After
// 如果在 IRE_Callback_Before 这个函数里返回拦截则不会触发 IRE_Callback_After
iDraw_Event_RegisterEvent(唯一标识符, IRE_TABSELCHANGED_CODE, 参数前, IRE_Callback_Before, 参数后, IRE_Callback_After);

// 处理前的回调
// nEvent = IRE_TABSELCHANGED_CODE
// param = iDraw_Event_RegisterEvent() 注册事件传递的 "参数前"
// pArg = IRE_STRUCT_TAB_SELCHANGE 结构指针
DWORD CALLBACK IRE_Callback_Before(UINT nEvent, LONG_PTR param, LPVOID pArg)
{
   IRE_STRUCT_TAB_SELCHANGE* pData = (IRE_STRUCT_TAB_SELCHANGE*)pArg; // 这个事件是这个结构

   return 0;  // 返回是否拦截, 返回0不拦截, 返回非0则拦截
}

// 处理后的回调, 如果处理前的回调函数返回拦截, 那这个事件不会触发
// nEvent = IRE_TABSELCHANGED_CODE
// param = iDraw_Event_RegisterEvent() 注册事件传递的 "参数后"
// pArg = IRE_STRUCT_TAB_SELCHANGE 结构指针
DWORD CALLBACK IRE_Callback_After(UINT nEvent, LONG_PTR param, LPVOID pArg)
{
   IRE_STRUCT_TAB_SELCHANGE* pData = (IRE_STRUCT_TAB_SELCHANGE*)pArg; // 这个事件是这个结构

    return 0;  // 返回值目前无意义
}

IRE_MDICLIENT_CREATE 0x0023 35 v1.0.801 MDIClient下的mid窗口被创建事件, 事件回调的第三个参数收到 IRE_STRUCT_MDICREATE 结构指针 调用前拦截且不正确处理的话窗口不会被创建, 调用前结构中的 hWnd成员为0, 调用后成员为新创建的mdi窗口句柄

// 注册事件, 处理这个事件前是调用 IRE_Callback_Before, 处理完这个事件后调用 IRE_Callback_After
// 如果在 IRE_Callback_Before 这个函数里返回拦截则不会触发 IRE_Callback_After
iDraw_Event_RegisterEvent(唯一标识符, IRE_MDICLIENT_CREATE, 参数前, IRE_Callback_Before, 参数后, IRE_Callback_After);

// 处理前的回调
// nEvent = IRE_MDICLIENT_CREATE
// param = iDraw_Event_RegisterEvent() 注册事件传递的 "参数前"
// pArg = IRE_STRUCT_MDICREATE 结构指针
DWORD CALLBACK IRE_Callback_Before(UINT nEvent, LONG_PTR param, LPVOID pArg)
{
   IRE_STRUCT_MDICREATE* pData = (IRE_STRUCT_MDICREATE*)pArg; // 这个事件是这个结构

   return 0;  // 建议返回0
}

// 处理后的回调, 如果处理前的回调函数返回拦截, 那这个事件不会触发
// nEvent = IRE_MDICLIENT_CREATE
// param = iDraw_Event_RegisterEvent() 注册事件传递的 "参数后"
// pArg = IRE_STRUCT_MDICREATE 结构指针
DWORD CALLBACK IRE_Callback_After(UINT nEvent, LONG_PTR param, LPVOID pArg)
{
   IRE_STRUCT_MDICREATE* pData = (IRE_STRUCT_MDICREATE*)pArg; // 这个事件是这个结构

    return 0;  // 返回值目前无意义
}

IRE_MDICLIENT_DESTROY 0x0024 36 v1.0.801 MDIClient下的mid窗口被销毁事件, 事件回调的第三个参数收到 被销毁的MDI窗口句柄

// 注册事件, 处理这个事件前是调用 IRE_Callback_Before, 处理完这个事件后调用 IRE_Callback_After
// 如果在 IRE_Callback_Before 这个函数里返回拦截则不会触发 IRE_Callback_After
iDraw_Event_RegisterEvent(唯一标识符, IRE_MDICLIENT_DESTROY, 参数前, IRE_Callback_Before, 参数后, IRE_Callback_After);

// 处理前的回调
// nEvent = IRE_MDICLIENT_DESTROY
// param = iDraw_Event_RegisterEvent() 注册事件传递的 "参数前"
// pArg = 被销毁的MDI窗口句柄
DWORD CALLBACK IRE_Callback_Before(UINT nEvent, LONG_PTR param, LPVOID pArg)
{
   HWND hDestroyWnd = (HWND)pArg; // 被销毁的MDI窗口句柄

   return 0;  // 请返回0, 否则代码切换选择夹会错乱
}

// 处理后的回调, 如果处理前的回调函数返回拦截, 那这个事件不会触发
// nEvent = IRE_MDICLIENT_DESTROY
// param = iDraw_Event_RegisterEvent() 注册事件传递的 "参数后"
// pArg = 被销毁的MDI窗口句柄
DWORD CALLBACK IRE_Callback_After(UINT nEvent, LONG_PTR param, LPVOID pArg)
{
   HWND hDestroyWnd = (HWND)pArg; // 被销毁的MDI窗口句柄

   return 0;  // 返回值目前无意义
}

IRE_MDICLIENT_ACTIVATE 0x0025 37 v1.0.801 MDIClient下的mid窗口被激活事件, 事件回调的第三个参数收到 要激活的 MDI 子窗口的句柄

// 注册事件, 处理这个事件前是调用 IRE_Callback_Before, 处理完这个事件后调用 IRE_Callback_After
// 如果在 IRE_Callback_Before 这个函数里返回拦截则不会触发 IRE_Callback_After
iDraw_Event_RegisterEvent(唯一标识符, IRE_MDICLIENT_ACTIVATE, 参数前, IRE_Callback_Before, 参数后, IRE_Callback_After);

// 处理前的回调
// nEvent = IRE_MDICLIENT_ACTIVATE
// param = iDraw_Event_RegisterEvent() 注册事件传递的 "参数前"
// pArg = 要激活的 MDI 子窗口的句柄
DWORD CALLBACK IRE_Callback_Before(UINT nEvent, LONG_PTR param, LPVOID pArg)
{
   HWND hActiveWnd = (HWND)pArg; // 要激活的 MDI 子窗口的句柄

   return 0;  // 返回是否拦截, 返回0不拦截, 返回非0则拦截
}

// 处理后的回调, 如果处理前的回调函数返回拦截, 那这个事件不会触发
// nEvent = IRE_MDICLIENT_ACTIVATE
// param = iDraw_Event_RegisterEvent() 注册事件传递的 "参数后"
// pArg = 要激活的 MDI 子窗口的句柄
DWORD CALLBACK IRE_Callback_After(UINT nEvent, LONG_PTR param, LPVOID pArg)
{
   HWND hActiveWnd = (HWND)pArg; // 要激活的 MDI 子窗口的句柄

   return 0;  // 返回值目前无意义
}

IRE_ECODESELCHANGED 0x0026 38 v1.0.801 易语言代码窗口光标改变事件, 事件回调的第三个参数收到 IRE_STRUCT_EIDE_SELCHANGEDINFO 结构指针 此事件不会触发调用后事件, 返回值无意义

// 注册事件, 处理这个事件前是调用 IRE_Callback_Before, 处理完这个事件后调用 IRE_Callback_After
// 如果在 IRE_Callback_Before 这个函数里返回拦截则不会触发 IRE_Callback_After
iDraw_Event_RegisterEvent(唯一标识符, IRE_ECODESELCHANGED, 参数前, IRE_Callback_Before, 0, 0);

// 处理前的回调
// nEvent = IRE_ECODESELCHANGED
// param = iDraw_Event_RegisterEvent() 注册事件传递的 "参数前"
// pArg = IRE_STRUCT_EIDE_SELCHANGEDINFO 结构指针
DWORD CALLBACK IRE_Callback_Before(UINT nEvent, LONG_PTR param, LPVOID pArg)
{
   IRE_STRUCT_EIDE_SELCHANGEDINFO* pData = (IRE_STRUCT_EIDE_SELCHANGEDINFO*)pArg; // 这个事件是这个结构

   return 0;  // 请返回0, 否则其他插件不会收到这个事件
}

// 这个事件不会触发处理后回调

IRE_DRAW_BCAKGROUND IRE_BCAKGROUND_DRAW 0x0030 48 v1.0.801 背景被绘画事件, 返回值是否拦截, 事件回调的第三个参数收到 IRE_STRUCT_BACKGROUND_DRAW 结构指针

// 注册事件, 处理这个事件前是调用 IRE_Callback_Before, 处理完这个事件后调用 IRE_Callback_After
// 如果在 IRE_Callback_Before 这个函数里返回拦截则不会触发 IRE_Callback_After
iDraw_Event_RegisterEvent(唯一标识符, IRE_DRAW_BCAKGROUND, 参数前, IRE_Callback_Before, 参数后, IRE_Callback_After);

// 处理前的回调
// nEvent = IRE_DRAW_BCAKGROUND
// param = iDraw_Event_RegisterEvent() 注册事件传递的 "参数前"
// pArg = IRE_STRUCT_BACKGROUND_DRAW 结构指针
DWORD CALLBACK IRE_Callback_Before(UINT nEvent, LONG_PTR param, LPVOID pArg)
{
   IRE_STRUCT_BACKGROUND_DRAW* pData = (IRE_STRUCT_BACKGROUND_DRAW*)pArg; // 这个事件是这个结构

   return 0;  // 返回是否拦截, 返回拦截后其他插件不会收到这个事件, 拦截后会触发处理后事件
}

// 处理后的回调, 如果处理前的回调函数返回拦截, 这个事件也会触发
// nEvent = IRE_DRAW_BCAKGROUND
// param = iDraw_Event_RegisterEvent() 注册事件传递的 "参数后"
// pArg = IRE_STRUCT_BACKGROUND_DRAW 结构指针
DWORD CALLBACK IRE_Callback_After(UINT nEvent, LONG_PTR param, LPVOID pArg)
{
   IRE_STRUCT_BACKGROUND_DRAW* pData = (IRE_STRUCT_BACKGROUND_DRAW*)pArg; // 这个事件是这个结构
   // 背景插件就是挂接的这个事件来实现
   return 0;  // 返回值目前无意义
}

IRE_DRAW_AUTOHIDE_SHOW 0x0031 49 v1.0.801 自动隐藏的窗口被显示, 调用前返回是否拦截, 拦截后不会被显示, 事件回调的第三个参数收到 要显示的窗口句柄

// 注册事件, 处理这个事件前是调用 IRE_Callback_Before, 处理完这个事件后调用 IRE_Callback_After
// 如果在 IRE_Callback_Before 这个函数里返回拦截则不会触发 IRE_Callback_After
iDraw_Event_RegisterEvent(唯一标识符, IRE_DRAW_AUTOHIDE_SHOW, 参数前, IRE_Callback_Before, 参数后, IRE_Callback_After);

// 处理前的回调
// nEvent = IRE_DRAW_AUTOHIDE_SHOW
// param = iDraw_Event_RegisterEvent() 注册事件传递的 "参数前"
// pArg = 要显示的窗口句柄
DWORD CALLBACK IRE_Callback_Before(UINT nEvent, LONG_PTR param, LPVOID pArg)
{
    HWND hWndShow = (HWND)pArg; // 要显示的窗口句柄

    return 0;  // 返回是否拦截, 返回0不拦截, 返回非0则拦截
}

// 处理后的回调, 如果处理前的回调函数返回拦截, 那这个事件不会触发
// nEvent = IRE_DRAW_AUTOHIDE_SHOW
// param = iDraw_Event_RegisterEvent() 注册事件传递的 "参数后"
// pArg = 要显示的窗口句柄
DWORD CALLBACK IRE_Callback_After(UINT nEvent, LONG_PTR param, LPVOID pArg)
{
    HWND hWndShow = (HWND)pArg; // 要显示的窗口句柄

    return 0;  // 返回值目前无意义
}

IRE_DRAW_AUTOHIDE_HIDE 0x0032 50 v1.0.801 自动隐藏的窗口被隐藏, 调用前返回是否拦截, 拦截后不会被隐藏, 事件回调的第三个参数收到 要隐藏的窗口句柄

// 注册事件, 处理这个事件前是调用 IRE_Callback_Before, 处理完这个事件后调用 IRE_Callback_After
// 如果在 IRE_Callback_Before 这个函数里返回拦截则不会触发 IRE_Callback_After
iDraw_Event_RegisterEvent(唯一标识符, IRE_DRAW_AUTOHIDE_HIDE, 参数前, IRE_Callback_Before, 参数后, IRE_Callback_After);

// 处理前的回调
// nEvent = IRE_DRAW_AUTOHIDE_HIDE
// param = iDraw_Event_RegisterEvent() 注册事件传递的 "参数前"
// pArg = 要隐藏的窗口句柄
DWORD CALLBACK IRE_Callback_Before(UINT nEvent, LONG_PTR param, LPVOID pArg)
{
    HWND hWndHide = (HWND)pArg; // 要隐藏的窗口句柄

    return 0;  // 返回是否拦截, 返回0不拦截, 返回非0则拦截
}

// 处理后的回调, 如果处理前的回调函数返回拦截, 那这个事件不会触发
// nEvent = IRE_DRAW_AUTOHIDE_HIDE
// param = iDraw_Event_RegisterEvent() 注册事件传递的 "参数后"
// pArg = 要隐藏的窗口句柄
DWORD CALLBACK IRE_Callback_After(UINT nEvent, LONG_PTR param, LPVOID pArg)
{
    HWND hWndHide = (HWND)pArg; // 要隐藏的窗口句柄

    return 0;  // 返回值目前无意义
}

IRE_DRAW_AUTOHIDE_MOVE 0x0033 51 v1.0.801 自动隐藏的窗口被移动, 前和后都忽略返回值, 事件回调的第三个参数收到 IRE_STRUCT_AUTOHIDE_MOVE 指针

// 注册事件, 处理这个事件前是调用 IRE_Callback_Before, 处理完这个事件后调用 IRE_Callback_After
// 如果在 IRE_Callback_Before 这个函数里返回拦截则不会触发 IRE_Callback_After
iDraw_Event_RegisterEvent(唯一标识符, IRE_DRAW_AUTOHIDE_MOVE, 参数前, IRE_Callback_Before, 参数后, IRE_Callback_After);

// 处理前的回调
// nEvent = IRE_DRAW_AUTOHIDE_MOVE
// param = iDraw_Event_RegisterEvent() 注册事件传递的 "参数前"
// pArg = IRE_STRUCT_AUTOHIDE_MOVE 结构指针
DWORD CALLBACK IRE_Callback_Before(UINT nEvent, LONG_PTR param, LPVOID pArg)
{
   IRE_STRUCT_AUTOHIDE_MOVE* pData = (IRE_STRUCT_AUTOHIDE_MOVE*)pArg; // 这个事件是这个结构

   return 0;  // 请返回0, 否则其他插件将收不到这个事件
}

// 处理后的回调, 如果处理前的回调函数返回拦截, 那这个事件不会触发
// nEvent = IRE_DRAW_AUTOHIDE_MOVE
// param = iDraw_Event_RegisterEvent() 注册事件传递的 "参数后"
// pArg = IRE_STRUCT_AUTOHIDE_MOVE 结构指针
DWORD CALLBACK IRE_Callback_After(UINT nEvent, LONG_PTR param, LPVOID pArg)
{
   IRE_STRUCT_AUTOHIDE_MOVE* pData = (IRE_STRUCT_AUTOHIDE_MOVE*)pArg; // 这个事件是这个结构

    return 0;  // 返回值目前无意义
}

IRE_HOOKPROC_CBT 0x0050 80 v1.0.801 cbt钩子事件(WH_CBT), 事件回调第三个参数收到 IRE_STRUCT_HOOKARG 结构指针, 调用前返回是否拦截, 调用后忽略返回值

// 注册事件, 处理这个事件前是调用 IRE_Callback_Before, 处理完这个事件后调用 IRE_Callback_After
// 如果在 IRE_Callback_Before 这个函数里返回拦截则不会触发 IRE_Callback_After
iDraw_Event_RegisterEvent(唯一标识符, IRE_HOOKPROC_CBT, 参数前, IRE_Callback_Before, 参数后, IRE_Callback_After);

// 处理前的回调
// nEvent = IRE_HOOKPROC_CBT
// param = iDraw_Event_RegisterEvent() 注册事件传递的 "参数前"
// pArg = IRE_STRUCT_HOOKARG 结构指针
DWORD CALLBACK IRE_Callback_Before(UINT nEvent, LONG_PTR param, LPVOID pArg)
{
   IRE_STRUCT_HOOKARG* pData = (IRE_STRUCT_HOOKARG*)pArg; // 这个事件是这个结构
   // 需要修改 钩子的返回值请修改 pData->ret 这个的值, 钩子回调最后是使用 pData->ret 这个返回
   return 0;  // 返回是否拦截, 返回0不拦截, 返回非0则拦截
}

// 处理后的回调, 如果处理前的回调函数返回拦截, 那这个事件不会触发
// nEvent = IRE_HOOKPROC_CBT
// param = iDraw_Event_RegisterEvent() 注册事件传递的 "参数后"
// pArg = IRE_STRUCT_HOOKARG 结构指针
DWORD CALLBACK IRE_Callback_After(UINT nEvent, LONG_PTR param, LPVOID pArg)
{
    IRE_STRUCT_HOOKARG* pData = (IRE_STRUCT_HOOKARG*)pArg; // 这个事件是这个结构
    // 需要修改 钩子的返回值请修改 pData->ret 这个的值, 钩子回调最后是使用 pData->ret 这个返回
    return 0;  // 返回是否拦截, 返回0不拦截, 返回非0则拦截
}

IRE_ICON_GET 0x0060 96 v1.0.801

  • 获取图标事件, 弃用, 不会触发此事件, 获取图标回调请调用 iDraw_BindWindow()

IRE_MENUEXT_MANAGE 0x0500 1280 v1.0.801 管理扩展菜单, 不会触发调用后事件, 调用前返回是否拦截, 拦截的话其他插件不会收到这个事件, 第三个参数为0 扩展 -管理扩展(&M) 菜单项被单击

// 注册事件, 处理这个事件前是调用 IRE_Callback_Before, 处理完这个事件后调用 IRE_Callback_After
// 如果在 IRE_Callback_Before 这个函数里返回拦截则不会触发 IRE_Callback_After
iDraw_Event_RegisterEvent(唯一标识符, IRE_MENUEXT_MANAGE, 参数前, IRE_Callback_Before, 0, 0);

// 处理前的回调
// nEvent = IRE_MENUEXT_MANAGE
// param = iDraw_Event_RegisterEvent() 注册事件传递的 "参数前"
// pArg = 0
DWORD CALLBACK IRE_Callback_Before(UINT nEvent, LONG_PTR param, LPVOID pArg)
{
   // 这个事件没有参数, pArg 为0

   return 0;  // 请返回0, 否则其他插件将收不到此事件
}
// 这个事件没有调用后

IRE_MENUEXT_CUSTOP 0x0501 1281 v1.0.801 自定义扩展菜单, 不会触发调用后事件, 调用前返回是否拦截, 拦截的话其他插件不会收到这个事件, 第三个参数为0 扩展 -自定义菜单(&C) 菜单项被单击

// 注册事件, 处理这个事件前是调用 IRE_Callback_Before, 处理完这个事件后调用 IRE_Callback_After
// 如果在 IRE_Callback_Before 这个函数里返回拦截则不会触发 IRE_Callback_After
iDraw_Event_RegisterEvent(唯一标识符, IRE_MENUEXT_CUSTOP, 参数前, IRE_Callback_Before, 0, 0);

// 处理前的回调
// nEvent = IRE_MENUEXT_CUSTOP
// param = iDraw_Event_RegisterEvent() 注册事件传递的 "参数前"
// pArg = 0
DWORD CALLBACK IRE_Callback_Before(UINT nEvent, LONG_PTR param, LPVOID pArg)
{
   // 这个事件没有参数, pArg 为0

   return 0;  // 返回是否拦截, 返回0不拦截, 返回非0则拦截
}
// 这个事件没有调用后

页面列表

ITEM_HTML