Dear all, I test this code :

void test (HDC hdc, HRGN hregion)
{
    RECT srcbox;
    RECT dstbox;

    GetClipBox(hdc, &dstbox);
    GetRgnBox(hregion, &srcbox);

    TRACE("Before ExtSelectClipRgn:%s,%s\n",
            wine_dbgstr_rect(&srcbox), wine_dbgstr_rect(&dstbox) ); 

    ExtSelectClipRgn(hdc, hregion, RGN_AND ); 
    
    GetClipBox(graphics->hdc,&dstbox); 
    
    TRACE("After ExtSelectClipRgn:%s,%s\n", wine_dbgstr_rect(&dstbox) ); 
}

It output in wine is : 
Before ExtSelectClipRgn:(693,5)-(763,28),(693,5)-(763,28) 
After ExtSelectClipRgn:(693,5)-(693,5) 

But I think it should be output:
Before ExtSelectClipRgn:(693,5)-(763,28),(693,5)-(763,28) 
After ExtSelectClipRgn:(693,5)-(763,28)

Where is my understanding mistake, or is it a bug in ExtSelectClipRgn?

Thank you!