wine/dlls msrle32/msrle32.c msvideo/msvideo_main.c

Alexandre Julliard julliard at wine.codeweavers.com
Mon Nov 28 05:01:46 CST 2005


ChangeSet ID:	21461
CVSROOT:	/opt/cvs-commit
Module name:	wine
Changes by:	julliard at winehq.org	2005/11/28 05:01:46

Modified files:
	dlls/msrle32   : msrle32.c 
	dlls/msvideo   : msvideo_main.c 

Log message:
	Dmitry Timoshkov <dmitry at codeweavers.com>
	Fix several bugs in msrle32 preventing it to load.
	Remove a hack in ICOpen compensating a bug in msrle32.
	Use MSVFW32_hModule directly in ICCompressorChoose, and avoid a
	convoluted GWLP_HINSTANCE hack.

Patch: http://cvs.winehq.org/patch.py?id=21461

Old revision  New revision  Changes     Path
 1.14          1.15          +4 -19      wine/dlls/msrle32/msrle32.c
 1.68          1.69          +3 -16      wine/dlls/msvideo/msvideo_main.c

Index: wine/dlls/msrle32/msrle32.c
diff -u -p wine/dlls/msrle32/msrle32.c:1.14 wine/dlls/msrle32/msrle32.c:1.15
--- wine/dlls/msrle32/msrle32.c:1.14	28 Nov 2005 11: 1:46 -0000
+++ wine/dlls/msrle32/msrle32.c	28 Nov 2005 11: 1:46 -0000
@@ -58,7 +58,6 @@ inline WORD Intensity(RGBQUAD clr)
 /* utility functions */
 static BOOL    isSupportedDIB(LPCBITMAPINFOHEADER lpbi);
 static BOOL    isSupportedMRLE(LPCBITMAPINFOHEADER lpbi);
-static void    LoadWideString(UINT id, LPWSTR str, INT len);
 static BYTE    MSRLE32_GetNearestPaletteIndex(UINT count, const RGBQUAD *clrs, RGBQUAD clr);
 
 /* compression functions */
@@ -98,14 +97,6 @@ static LRESULT DecompressGetPalette(Code
 
 /*****************************************************************************/
 
-static void LoadWideString(UINT id, LPWSTR str, INT len)
-{
-  char szTemp[80];
-
-  LoadStringA(MSRLE32_hModule, id, szTemp, sizeof(szTemp));
-  MultiByteToWideChar(CP_ACP, 0, szTemp, -1, str, len);
-}
-
 static BOOL isSupportedMRLE(LPCBITMAPINFOHEADER lpbi)
 {
   /* pre-conditions */
@@ -1113,9 +1104,6 @@ static CodecInfo* Open(LPICOPEN icinfo)
 	icinfo->fccHandler, (char*)&icinfo->fccHandler,
 	icinfo->dwVersion,icinfo->dwFlags);
 
-  if (icinfo->fccType != ICTYPE_VIDEO)
-    return NULL;
-
   switch (icinfo->fccHandler) {
   case FOURCC_RLE:
   case FOURCC_RLE4:
@@ -1176,14 +1164,14 @@ static LRESULT GetInfo(CodecInfo *pi, IC
     return 0;
 
   icinfo->dwSize       = sizeof(ICINFO);
-  icinfo->fccType      = streamtypeVIDEO;
+  icinfo->fccType      = ICTYPE_VIDEO;
   icinfo->fccHandler   = (pi != NULL ? pi->fccHandler : FOURCC_MRLE);
   icinfo->dwFlags      = VIDCF_QUALITY | VIDCF_TEMPORAL | VIDCF_CRUNCH | VIDCF_FASTTEMPORALC;
   icinfo->dwVersion    = MSRLE32_VERSION;
   icinfo->dwVersionICM = 0x01040000; /* Version 1.4 build 0 */
 
-  LoadWideString(IDS_NAME, icinfo->szName, sizeof(icinfo->szName));
-  LoadWideString(IDS_DESCRIPTION, icinfo->szDescription, sizeof(icinfo->szDescription));
+  LoadStringW(MSRLE32_hModule, IDS_NAME, icinfo->szName, sizeof(icinfo->szName)/sizeof(WCHAR));
+  LoadStringW(MSRLE32_hModule, IDS_DESCRIPTION, icinfo->szDescription, sizeof(icinfo->szDescription)/sizeof(WCHAR));
 
   return sizeof(ICINFO);
 }
@@ -1796,9 +1784,6 @@ LRESULT CALLBACK MSRLE32_DriverProc(DWOR
   case DRV_LOAD:
     return DRVCNF_OK;
   case DRV_OPEN:
-    if (lParam2 == 0)
-      return (LRESULT)0xFFFF0000;
-    else
       return (LRESULT)Open((ICOPEN*)lParam2);
   case DRV_CLOSE:
     if (dwDrvID != 0xFFFF0000 && (LPVOID)dwDrvID != NULL)
@@ -1910,7 +1895,7 @@ BOOL WINAPI DllMain(HINSTANCE hModule, D
 
   case DLL_PROCESS_DETACH:
     break;
-  };
+  }
 
   return TRUE;
 }
Index: wine/dlls/msvideo/msvideo_main.c
diff -u -p wine/dlls/msvideo/msvideo_main.c:1.68 wine/dlls/msvideo/msvideo_main.c:1.69
--- wine/dlls/msvideo/msvideo_main.c:1.68	28 Nov 2005 11: 1:46 -0000
+++ wine/dlls/msvideo/msvideo_main.c	28 Nov 2005 11: 1:46 -0000
@@ -139,6 +139,7 @@ static BOOL enum_drivers(DWORD fccType, 
     {
 	for (s = buf; *s; s += strlen(s) + 1)
 	{
+            TRACE("got %s\n", s);
 	    if (strncasecmp(s, fccTypeStr, 5) || s[9] != '=') continue;
 	    if ((result = handler(s, cnt++, param))) break;
 	}
@@ -349,20 +350,7 @@ HIC VFWAPI ICOpen(DWORD fccType, DWORD f
 
         hdrv = OpenDriver(codecname, drv32W, (LPARAM)&icopen);
         if (!hdrv) 
-        {
-            if (fccType == streamtypeVIDEO) 
-            {
-		codecname[0] = 'v';
-		codecname[1] = 'i';
-		codecname[2] = 'd';
-		codecname[3] = 'c';
-
-		fccType = ICTYPE_VIDEO;
-                hdrv = OpenDriver(codecname, drv32W, (LPARAM)&icopen);
-	    }
-            if (!hdrv)
-                return 0;
-	}
+            return 0;
     } else {
         /* The driver has been registered at runtime with its name */
         hdrv = OpenDriver(driver->name, NULL, (LPARAM)&icopen);
@@ -767,8 +755,7 @@ static INT_PTR CALLBACK icm_choose_compr
         if (choose_comp->title)
             SetWindowTextA(hdlg, choose_comp->title);
 
-        LoadStringW((HINSTANCE)GetWindowLongPtrW(hdlg, GWLP_HINSTANCE),
-                    IDS_FULLFRAMES, buf, 128);
+        LoadStringW(MSVFW32_hModule, IDS_FULLFRAMES, buf, 128);
         SendDlgItemMessageW(hdlg, IDC_COMP_LIST, CB_ADDSTRING, 0, (LPARAM)buf);
 
         enum_compressors(GetDlgItem(hdlg, IDC_COMP_LIST));



More information about the wine-cvs mailing list