johenny@126.com
驱动牛犊
驱动牛犊
  • 注册日期2013-09-11
  • 最后登录2013-09-11
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望21点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1879回复:1

关于Hook打印数据失败的问题

楼主#
更多 发布于:2013-09-11 11:09
 
我参考WDDK下oemDLL自己写了一个虚拟打印驱动,实现把打印的数据存为bmp图片。用默认的gpd安装打印都没有问题。
问题是:我把GPD文件的PrinterType从PAGE改成 SERIAL后,还增加了一些resolution的选项<修改gpd就是为了要支持360*360DPI输出>。结果修改完以后,打印的时候在OEMEndDoc函数中获取打印数据为空。有谁知道这种问题吗? 或者给我点思路?


BOOL APIENTRY OEMEndDoc(SURFOBJ* pso, FLONG fl)
{
    PDEVOBJ pDevObj = (PDEVOBJ)pso->dhpdev;
    POEMPDEV pOemPDEV = (POEMPDEV)pDevObj->pdevOEM;
    if (!pOemPDEV->pBufStart)   //pOemPDEV获取的buffsize,pbufsatart 都是空的。 我个人觉的是没有获取到打印的数据
    {
        ...
    }
    return (pOemPDEV->m_pfnDrvEndDoc)(pso, fl);
}
 同样的代码,如果用GPD PrinterType 用PAGE的话,pOemPDEV的打印数据都有获取到。
johenny@126.com
驱动牛犊
驱动牛犊
  • 注册日期2013-09-11
  • 最后登录2013-09-11
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望21点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2013-09-11 11:37
顶一下,大伙多给我提点想法啊!
游客

返回顶部