>>>Ed,
>>>This sounds like serious stuff. I think I will punt and go back to reading all the objects on the screen, putting them in a report and then printing the report. I have some problems with placement and grids but I think I will be able to solve those before I learn to read C++ code. Again Thanks.
>>
>>OK; to me, it's not a tremendous task to replace the SelectObject() and BitBlt() calls with calls to SetDIBitsTODevice(), but it is a hassle figuring out exactly what device capabilities are available, and possibly having to write your own conversions for RGBQUAD structures to greyscale, and the BITMAPINFO structure does require some redirection.
>>
>>Have you thought about copying the BitMap to a General field and just using MSPaint as an automation client to handle the conversion?
>
>Or how about using ShellExecute with the print verb?
Same thing, but now you need to write a valid BitMap header; you could use Obj2BMP for that, though...it sounds like there are a number of ways to skin this problem. Both solutions depend on having an OLE Server for the BMP extension with a PRINT verb.