|
Prev: How to broadcast messages to all application in co-installer entry point in Vista?
Next: Number of IRPS
From: hwilcox on 6 May 2008 01:11 I am trying to develope a printer driver. When I cannot handle a function I punt back to gdi. It also punts back when succesful so that the mirrorsurface is updated after each call to the driver. I've got punting working for every function except DrvTextOut. EngTextOut returns true, but nothing gets drawn to the mirror surface. According to MSDN "the driver cannot punt to EngTextOut if it has hooked DrvTextOut for a device managed surface.". I have a device managed surface, but I also have an engine managed surface that is used when calling the Eng functions. I wonder if anyone knows: 1. Can I use EngTextOut if I have a device managed surface, even if I am not calling EngTextOut with it. 2. Is there any way to get GDI to draw the text to my mirror surface. Thanks, hwilcox BOOL success = doTextOut(pstro, pfo, pco, prclExtra, prclOpaque, pboFore, pboOpaque, pptlBrushOrg, mix, substMix); if(settings->usingMirrorSurface) { SURFOBJ* mirrorSurf = EngLockSurface(hmirrorSurf); BOOL engRet = EngTextOut(mirrorSurf, pstro, pfo, pco, prclExtra, prclOpaque, pboFore, pboOpaque, pptlBrushOrg, mix); EngUnlockSurface(mirrorSurf); if(engRet && !success) { success = sendRect(&pstro->rclBkGround, pco); } } return success |