I tried the following -- when it's about to be finished the BitBlt, in the Win32 code, it is about to release the DC and I get an assertion - the hBitmap is not equal to the m_hBitmap as it should be.
I then draw to the bitmap with OpenGL - this works fine because I get the output no problemo if I use StretchDIBits - but since I'm drawing my bitmap at exactly the same size that I'm later outputting on my printer DC, I don't want any modification of my image (and it is being modified).....
One is a printer DC - the other is a memory DC. The memDC is associated with my OpenGL rendering context. I'm not sure if they have different mode settings - but it looks to me like you're right. In any case, I've decided to go about this in a different way - I am printing through latex instead of with the device context directly.