if (inMode == RGN_DIFF || inMode == RGN_DIFF)
if (inMode == RGN_DIFF || inMode == RGN_AND)
MOZCE_SHUNT_API int mozce_ExtSelectClipRgn(HDC inDC, HRGN inRGN, int inMode){    MOZCE_PRECHECK#ifdef DEBUG    mozce_printf("mozce_ExtSelectClipRgn called\n");#endif        // inModes are defined as:    // RGN_AND = 1    // RGN_OR = 2    // RGN_XOR = 3    // RGN_DIFF = 4    // RGN_COPY = 5        HRGN cRGN = NULL;    int result = GetClipRgn(inDC, cRGN);        // if there is no current clipping region, set it to the    // tightest bounding rectangle that can be drawn around    // the current visible area on the device    if (result != 1)    {        RECT cRect;        GetClipBox(inDC,&cRect);        cRGN = CreateRectRgn(cRect.left,cRect.top,cRect.right,cRect.bottom);        result = SelectClipRgn(inDC,cRGN);		    }        if (result == NULLREGION)     {        if (inMode == RGN_DIFF || inMode == RGN_DIFF)            result = SelectClipRgn(inDC,NULL);        else            result = SelectClipRgn(inDC,inRGN);                DeleteObject(cRGN);        return result;    }         if (result == SIMPLEREGION || result == COMPLEXREGION)    {        if (inMode == RGN_DIFF)            CombineRgn(cRGN, cRGN, inRGN, inMode);        else            CombineRgn(cRGN, inRGN, cRGN, inMode);        result = SelectClipRgn(inDC,cRGN);        DeleteObject(cRGN);        return result;    }        HRGN rgn = CreateRectRgn(0, 0, 32000, 32000);    result = SelectClipRgn(inDC, rgn);    DeleteObject(rgn);    return result;}