阅读:2543回复:4
W2kPrintSample中如何在uni部分创建surface.
hi, All
有谁能帮忙分析一下: 在W2kprintSample中的Rendering plug-in(UNI.DLL),默认的情况下用的是A4大小来建立GDI-Managed surface, 所以它的大小总是A4, A4大小是在GPD文件设定。 我现在想在rendering plug-in中修改surface大小,也是就是改变纸张大小,但不是在GPD文件中。各位能给点思路么? 另,我看了IOEMUNI::DriverDMS(...)说明,按理说我在此建立surface。我用了下面的代码: HRESULT __stdcall IOEMUni::DriverDMS( PVOID pDevObj, PVOID pBuffer, DWORD cbSize, PDWORD pcbNeeded) { TERSE(UNITEXT("IOEMUni::DriverDMS() entry.\r\n")); PDEVOBJ pdevobj = (PDEVOBJ)pDevObj; POEMPDEV pOemPDEV = (POEMPDEV)pdevobj->pdevOEM; SIZEL sizl; sizl.cx = 720; sizl.cy = 1200; HSURF hsurf = (HSURF)EngCreateBitmap(sizl, sizl.cy, BMF_1BPP, BMF_TOPDOWN, NULL); if(hsurf == NULL) { VERBOSE(UNITEXT("IOEMUni::DriverDMS() return E_FAIL.\r\n")); return E_FAIL; } EngAssociateSurface(hsurf, (HDEV)pdevobj->hEngine, HOOK_BITBLT|HOOK_TEXTOUT); return S_OK; } 调试结果是: 接口函数进去了,使没有达到想要的结果,也没有改变纸张的大小。 不知道哪里有错? |
|
|
沙发#
发布于:2009-04-27 15:56
你好,想问问你打印彩色的时候,颜色会有问题,红色变成蓝色,蓝色变成红色啦,不知道怎么回事?
|
|
板凳#
发布于:2009-05-04 13:23
|
|
地板#
发布于:2009-05-04 13:24
回 1楼(lmz3000) 的帖子
楼上有msn没?交流一下。 |
|
禁止发言
![]() |
地下室#
发布于:2009-05-05 19:39
用户被禁言,该主题自动屏蔽! |