What image is the user seeing? Is it one you create? Do you control the paint msg handling?
StretchBlt() will allow you to invert (Mirror) the image.
Can look at the DSTINVERT flag (never used it so not sure what exactly it inverts)
Or something like.....
//On app start create compatible DC and BMP (destDC) the same size as the screen/window
//capture screen into sourceDC when required
//call one or both inverts
StretchBlt(destDC, 0, 0, bmpWidth, bmpHeight, &sourceDC, bmpWidth-1, 0, -bmpWidth, bmpHeight, SRCCOPY );
StretchBlt(destDC, 0, 0, bmpWidth, bmpHeight, &sourceDC, 0, bmpHeight-1,bmpWidth, -bmpHeight, SRCCOPY );
//use destDC in paint msgs (BitBlt() using the PAINTSTRUCT's DC and Rect)
//clean up GDI on close