CS_PARENTDC with WS_CLIPSIBLINGS

Ladislav Sladecek lsla at post.cz
Wed Aug 8 11:02:41 CDT 2001


On St, 08 srp 2001, Alexandre Julliard wrote:
> Ladislav Sladecek <lsla at post.cz> writes:
> > 2) The real reason for the crash is that the application calls Escape16 with
> > hdc equal to 0 and function equal to GETPRINTINGOFFSET. I do not understand
> 
> It's not supposed to crash even if the hdc is invalid. Do you have a
> backtrace of the crash?

I ovelooked that the EscapeXXXX functions changed too. If you look at the source
of Escape16 you will find this:

    case GETPHYSPAGESIZE:
    case GETPRINTINGOFFSET:
    case GETSCALINGFACTOR:
    {
        POINT16 *ptr = MapSL(in_data);
        POINT pt32;

        ret = Escape( hdc, escape, 0, NULL, &pt32 );
        ptr->x = pt32.x;
        ptr->y = pt32.y;
        return ret;
    }

The function is called like this:

0806c1c8:Call GDI.38: ESCAPE(0x0000,0x000d,0x0000,0x00000000,0657:e8f4) ret=0ff7:4428 ds=1207
                                             
The in_data pointer is null but the code assigns to it, thats why it
crashes. I think that the result should be assigned to the output parameter.


Ladislav Sladecek




More information about the wine-devel mailing list