[Wine] Re: Winscop [French Project]

qwertymn wineforum-user at winehq.org
Fri Nov 20 01:52:11 CST 2009


Don't set ole32.dll to native. It won't help you with this app.
Apply the patch below (patch -Np1 -i name_of_patch) and recompile



> 
> diff --git a/dlls/winex11.drv/dib.c b/dlls/winex11.drv/dib.c
> index 587c7c7..89e8f1e 100644
> --- a/dlls/winex11.drv/dib.c
> +++ b/dlls/winex11.drv/dib.c
> @@ -4039,33 +4039,6 @@ INT CDECL X11DRV_SetDIBits( X11DRV_PDEVICE *physDev, HBITMAP hbitmap, UINT start
>    X11DRV_DIB_Lock( physBitmap, DIB_Status_GdiMod );
>    result = X11DRV_DIB_SetImageBits( &descr );
>  
> -  /* optimisation for the case where the input bits are in exactly the same
> -   * format as the internal representation and copying to the app bits is
> -   * cheap - saves a round trip to the X server */
> -  if (descr.compression == BI_RGB &&
> -      coloruse == DIB_RGB_COLORS &&
> -      descr.infoBpp == ds.dsBm.bmBitsPixel &&
> -      physBitmap->base && physBitmap->size < 65536)
> -  {
> -      unsigned int srcwidthb = ds.dsBm.bmWidthBytes;
> -      int dstwidthb = X11DRV_DIB_GetDIBWidthBytes( width, descr.infoBpp );
> -      LPBYTE dbits = physBitmap->base, sbits = (LPBYTE)bits + (startscan * srcwidthb);
> -      int widthb;
> -      UINT y;
> -
> -      TRACE("syncing compatible set bits to app bits\n");
> -      if ((tmpheight < 0) ^ (ds.dsBmih.biHeight < 0))
> -      {
> -          dbits += dstwidthb * (lines-1);
> -          dstwidthb = -dstwidthb;
> -      }
> -      X11DRV_DIB_DoProtectDIBSection( physBitmap, PAGE_READWRITE );
> -      widthb = min(srcwidthb, abs(dstwidthb));
> -      for (y = 0; y < lines; y++, dbits += dstwidthb, sbits += srcwidthb)
> -          memcpy(dbits, sbits, widthb);
> -      X11DRV_DIB_DoProtectDIBSection( physBitmap, PAGE_READONLY );
> -      physBitmap->status = DIB_Status_InSync;
> -  }
>    X11DRV_DIB_Unlock( physBitmap, TRUE );
>  
>    HeapFree(GetProcessHeap(), 0, descr.colorMap);
> 








More information about the wine-users mailing list