易IDE视觉库插件开发文档

插件开发


IRE_ 事件注册常量

<h2>常量名 [别名] | 16进制值 | 10进制值 | 使用这个常量最低要求版本</h2> <p><code>IRE_SIZE_TABWORK</code> <code>IRE_TAB_WORK_SIZE</code> <code>0x0001</code> <code>1</code> <code>v1.0.801</code> 左边工作夹尺寸被改变, 事件回调的第三个参数收到 IRE_STRUCT_TAB_SIZE 结构指针, 返回是否拦截, 处理后返回值暂时无意义</p> <pre><code class="language-cpp">// 注册事件, 处理这个事件前是调用 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; // 返回值目前无意义 }</code></pre> <hr /> <p><code>IRE_SIZE_TABSTATE</code> <code>IRE_TAB_STATE_SIZE</code> <code>0x0002</code> <code>2</code> <code>v1.0.801</code> 下边状态夹尺寸被改变, 事件回调的第三个参数收到 IRE_STRUCT_TAB_SIZE 结构指针, 返回是否拦截, 处理后返回值暂时无意义</p> <pre><code class="language-cpp">// 注册事件, 处理这个事件前是调用 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; // 返回值目前无意义 }</code></pre> <hr /> <p><code>IRE_SIZE_TABMDICLIENT</code> <code>IRE_TAB_MDICLIENT_SIZE</code> <code>0x0003</code> <code>3</code> <code>v1.0.801</code> MDIClient尺寸被改变, 事件回调的第三个参数收到 IRE_STRUCT_MDICLIENT_MOVE_EVENT 结构指针, 返回是否拦截, 处理后返回值暂时无意义</p> <pre><code class="language-cpp">// 注册事件, 处理这个事件前是调用 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; // 返回值目前无意义 }</code></pre> <hr /> <p><code>IRE_TOOLSTATE_CHANGE</code> <code>0x0012</code> <code>18</code> <code>v1.0.801</code> 易语言标准工具条按钮状态被改变, 事件回调的第三个参数接收 IRE_STRUCT_TOOLSTATE_CHANGE 结构, 返回是否拦截, 处理后返回值暂时无意义</p> <pre><code class="language-cpp">// 注册事件, 处理这个事件前是调用 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; // 返回值目前无意义 }</code></pre> <hr /> <p><code>IRE_TABSELCHANGED_WORK</code> <code>IRE_TAB_WORK_SELCHANGED</code> <code>0x0020</code> <code>32</code> <code>v1.0.801</code> 左边工作夹选择被改变, 事件回调的第三个参数收到 IRE_STRUCT_TAB_SELCHANGE 结构指针, 处理前拦截的话不会改变子夹, 处理后返回值暂时无意义</p> <pre><code class="language-cpp">// 注册事件, 处理这个事件前是调用 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; // 返回值目前无意义 }</code></pre> <hr /> <p><code>IRE_TABSELCHANGED_STATE</code> <code>IRE_TAB_STATE_SELCHANGED</code> <code>0x0021</code> <code>33</code> <code>v1.0.801</code> 下边状态夹选择被改变, 事件回调的第三个参数收到 IRE_STRUCT_TAB_SELCHANGE 结构指针, 处理前拦截的话不会改变子夹, 处理后返回值暂时无意义</p> <pre><code class="language-cpp">// 注册事件, 处理这个事件前是调用 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; // 返回值目前无意义 }</code></pre> <hr /> <p><code>IRE_TABSELCHANGED_CODE</code> <code>IRE_TAB_CODE_SELCHANGED</code> <code>0x0022</code> <code>34</code> <code>v1.0.801</code> 代码切换选择夹选择被改变, 事件回调的第三个参数收到 IRE_STRUCT_TAB_SELCHANGE 结构指针, 处理前拦截的话不会触发尺寸改变事件, 处理后返回值暂时无意义</p> <pre><code class="language-cpp">// 注册事件, 处理这个事件前是调用 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; // 返回值目前无意义 }</code></pre> <hr /> <p><code>IRE_MDICLIENT_CREATE</code> <code>0x0023</code> <code>35</code> <code>v1.0.801</code> MDIClient下的mid窗口被创建事件, 事件回调的第三个参数收到 IRE_STRUCT_MDICREATE 结构指针 调用前拦截且不正确处理的话窗口不会被创建, 调用前结构中的 hWnd成员为0, 调用后成员为新创建的mdi窗口句柄</p> <pre><code class="language-cpp">// 注册事件, 处理这个事件前是调用 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; // 返回值目前无意义 }</code></pre> <hr /> <p><code>IRE_MDICLIENT_DESTROY</code> <code>0x0024</code> <code>36</code> <code>v1.0.801</code> MDIClient下的mid窗口被销毁事件, 事件回调的第三个参数收到 被销毁的MDI窗口句柄</p> <pre><code class="language-cpp">// 注册事件, 处理这个事件前是调用 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; // 返回值目前无意义 }</code></pre> <hr /> <p><code>IRE_MDICLIENT_ACTIVATE</code> <code>0x0025</code> <code>37</code> <code>v1.0.801</code> MDIClient下的mid窗口被激活事件, 事件回调的第三个参数收到 要激活的 MDI 子窗口的句柄</p> <pre><code class="language-cpp">// 注册事件, 处理这个事件前是调用 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; // 返回值目前无意义 }</code></pre> <hr /> <p><code>IRE_ECODESELCHANGED</code> <code>0x0026</code> <code>38</code> <code>v1.0.801</code> 易语言代码窗口光标改变事件, 事件回调的第三个参数收到 IRE_STRUCT_EIDE_SELCHANGEDINFO 结构指针 此事件不会触发调用后事件, 返回值无意义</p> <pre><code class="language-cpp">// 注册事件, 处理这个事件前是调用 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, 否则其他插件不会收到这个事件 } // 这个事件不会触发处理后回调</code></pre> <hr /> <p><code>IRE_DRAW_BCAKGROUND</code> <code>IRE_BCAKGROUND_DRAW</code> <code>0x0030</code> <code>48</code> <code>v1.0.801</code> 背景被绘画事件, 返回值是否拦截, 事件回调的第三个参数收到 IRE_STRUCT_BACKGROUND_DRAW 结构指针</p> <pre><code class="language-cpp">// 注册事件, 处理这个事件前是调用 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; // 返回值目前无意义 }</code></pre> <hr /> <p><code>IRE_DRAW_AUTOHIDE_SHOW</code> <code>0x0031</code> <code>49</code> <code>v1.0.801</code> 自动隐藏的窗口被显示, 调用前返回是否拦截, 拦截后不会被显示, 事件回调的第三个参数收到 要显示的窗口句柄</p> <pre><code class="language-cpp">// 注册事件, 处理这个事件前是调用 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; // 返回值目前无意义 }</code></pre> <hr /> <p><code>IRE_DRAW_AUTOHIDE_HIDE</code> <code>0x0032</code> <code>50</code> <code>v1.0.801</code> 自动隐藏的窗口被隐藏, 调用前返回是否拦截, 拦截后不会被隐藏, 事件回调的第三个参数收到 要隐藏的窗口句柄</p> <pre><code class="language-cpp">// 注册事件, 处理这个事件前是调用 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; // 返回值目前无意义 }</code></pre> <hr /> <p><code>IRE_DRAW_AUTOHIDE_MOVE</code> <code>0x0033</code> <code>51</code> <code>v1.0.801</code> 自动隐藏的窗口被移动, 前和后都忽略返回值, 事件回调的第三个参数收到 IRE_STRUCT_AUTOHIDE_MOVE 指针</p> <pre><code class="language-cpp">// 注册事件, 处理这个事件前是调用 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; // 返回值目前无意义 }</code></pre> <hr /> <p><code>IRE_HOOKPROC_CBT</code> <code>0x0050</code> <code>80</code> <code>v1.0.801</code> cbt钩子事件(WH_CBT), 事件回调第三个参数收到 IRE_STRUCT_HOOKARG 结构指针, 调用前返回是否拦截, 调用后忽略返回值</p> <pre><code class="language-cpp">// 注册事件, 处理这个事件前是调用 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-&gt;ret 这个的值, 钩子回调最后是使用 pData-&gt;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-&gt;ret 这个的值, 钩子回调最后是使用 pData-&gt;ret 这个返回 return 0; // 返回是否拦截, 返回0不拦截, 返回非0则拦截 }</code></pre> <hr /> <p><code>IRE_ICON_GET</code> <code>0x0060</code> <code>96</code> <code>v1.0.801</code></p> <ul> <li>获取图标事件, <code>弃用</code>, 不会触发此事件, 获取图标回调请调用 iDraw_BindWindow()</li> </ul> <hr /> <p><code>IRE_MENUEXT_MANAGE</code> <code>0x0500</code> <code>1280</code> <code>v1.0.801</code> 管理扩展菜单, 不会触发调用后事件, 调用前返回是否拦截, 拦截的话其他插件不会收到这个事件, 第三个参数为0 扩展 -管理扩展(&amp;M) 菜单项被单击</p> <pre><code class="language-cpp">// 注册事件, 处理这个事件前是调用 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, 否则其他插件将收不到此事件 } // 这个事件没有调用后</code></pre> <hr /> <p><code>IRE_MENUEXT_CUSTOP</code> <code>0x0501</code> <code>1281</code> <code>v1.0.801</code> 自定义扩展菜单, 不会触发调用后事件, 调用前返回是否拦截, 拦截的话其他插件不会收到这个事件, 第三个参数为0 扩展 -自定义菜单(&amp;C) 菜单项被单击</p> <pre><code class="language-cpp">// 注册事件, 处理这个事件前是调用 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则拦截 } // 这个事件没有调用后</code></pre> <hr />

页面列表

ITEM_HTML