BHO中如何实现限制IE的打印,或不让IE打印

caicairoom 2009-10-30 05:11:19
拦截打印信息也行。。。。。
...全文
111 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
caicairoom 2009-11-04
  • 打赏
  • 举报
回复
好像不行哦
MoXiaoRab 2009-10-30
  • 打赏
  • 举报
回复
如2#所说,DISPID_PRINTTEMPLATEINSTANTIATION进行响应可行
雪影 2009-10-30
  • 打赏
  • 举报
回复
上述代码没有测试过,不知道能否实现
雪影 2009-10-30
  • 打赏
  • 举报
回复

STDMETHODIMP CXXX::Invoke(DISPID dispidMember,REFIID riid, LCID lcid,
WORD wFlags, DISPPARAMS * pDispParams,
VARIANT * pvarResult,EXCEPINFO * pexcepinfo,
UINT * puArgErr)
{
USES_CONVERSION;

if (!pDispParams)
return E_INVALIDARG;

switch (dispidMember)
{
//
// The parameters for this DISPID are as follows:
// [0]: Cancel flag - VT_BYREF|VT_BOOL
// [1]: HTTP headers - VT_BYREF|VT_VARIANT
// [2]: Address of HTTP POST data - VT_BYREF|VT_VARIANT
// [3]: Target frame name - VT_BYREF|VT_VARIANT
// [4]: Option flags - VT_BYREF|VT_VARIANT
// [5]: URL to navigate to - VT_BYREF|VT_VARIANT
// [6]: An object that evaluates to the top-level or frame
// WebBrowser object corresponding to the event.
//
case DISPID_BEFORENAVIGATE2:
break;
case DISPID_NAVIGATECOMPLETE2:
break;
case DISPID_DOCUMENTCOMPLETE:
break;
case DISPID_DOWNLOADBEGIN:
break;
case DISPID_DOWNLOADCOMPLETE:
break;
case DISPID_NEWWINDOW2:
break;
case DISPID_QUIT:
RegisterEventHandler(FALSE);
break;

//这里表示打印初始化事件发生
case DISPID_PRINTTEMPLATEINSTANTIATION:
//在这里阻止打印吧
break;

default:
break;
}

return S_OK;
}
iamwjp 2009-10-30
  • 打赏
  • 举报
回复
不让选择打印,禁止菜单
禁止快捷键就 hook-keyboard
设置打印对话框也不让打印,hook StartDoc

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧