- 我们在上一节中实现了invoke函数,可以看到里面的一些函数还是非常有用的,这一节我们把invoke的DISPID的其它参数拿出来讲一下吧
DISPID | 触发时机 |
---|
0x0001 | 关闭文件时 |
0x0002 | 另存为时 |
0x0003 | 打印时 |
0x0004 | 导出时 |
0x0005 | 关闭CDR时 |
0x0006 | 打开外部实体文件时 |
0x0007 | 新建CDR文件时 |
0x0008 | 关闭CDR |
0x0009 | 关闭外部实体文件时 |
0x0010 | 窗口被激活时 |
0x0011 | 鼠标点击CDR任意位置时 |
0x0012 | 打开CDR时 |
0x0013 | 关闭CDR时 |
0x0014 | 点击面板铵钮时 |
0x0015 | 每秒触发上千次判断插件的显隐状态 |
- 我们在进行编写的时候可以写成如下方式即可,其它的功能还有待测试
HRESULT __stdcall CongLingKaiShi::Invoke(DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS* pDispParams, VARIANT* pVarResult, EXCEPINFO* pExcepInfo, UINT* puArgErr) {
switch (dispIdMember) {
case 0x0001:
break;
case 0x0002:
break;
case 0x0003:
break;
case 0x0004:
break;
case 0x0005:
break;
case 0x0006:
break;
case 0x0007:
break;
case 0x0008:
break;
case 0x0009:
break;
case 0x0010:
break;
case 0x0011:
break;
case 0x0012:
break;
case 0x0013:
break;
case 0x0014:
break;
case 0x0015:
break;
}
return S_OK;
}