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->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则拦截
}</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
扩展 -管理扩展(&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
扩展 -自定义菜单(&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 />