- Sync qmgr, msvidc32, msvfw32, msrle32, msctf, msadp32.acm, mlang, localspl with...
authorDmitry Chapyshev <dmitry@reactos.org>
Sat, 11 Apr 2009 08:56:29 +0000 (08:56 +0000)
committerDmitry Chapyshev <dmitry@reactos.org>
Sat, 11 Apr 2009 08:56:29 +0000 (08:56 +0000)
svn path=/trunk/; revision=40455

17 files changed:
reactos/dll/win32/localspl/provider.c
reactos/dll/win32/mlang/mlang.c
reactos/dll/win32/msadp32.acm/msadp32.c
reactos/dll/win32/msctf/msctf.rbuild
reactos/dll/win32/msctf/version.rc [new file with mode: 0644]
reactos/dll/win32/msrle32/msrle32.c
reactos/dll/win32/msvfw32/mciwnd.c
reactos/dll/win32/msvfw32/msvfw32_Ko.rc
reactos/dll/win32/msvfw32/msvfw32_Pt.rc [new file with mode: 0644]
reactos/dll/win32/msvfw32/msvfw32_Zh.rc [new file with mode: 0644]
reactos/dll/win32/msvfw32/msvideo16.c
reactos/dll/win32/msvfw32/msvideo_main.c
reactos/dll/win32/msvfw32/msvideo_private.h
reactos/dll/win32/msvfw32/rsrc.rc
reactos/dll/win32/msvidc32/msvideo1.c
reactos/dll/win32/qmgr/qmgr.c
reactos/dll/win32/qmgr/service.c

index dcb8b08..f308e36 100644 (file)
@@ -251,25 +251,26 @@ static LONG copy_servername_from_name(LPCWSTR name, LPWSTR target)
     ptr = strchrW(server, '\\');
     serverlen = (ptr) ? ptr - server : lstrlenW(server);
 
-    /* servername is empty or to long */
+    /* servername is empty */
     if (serverlen == 0) return 0;
 
     TRACE("found %s\n", debugstr_wn(server, serverlen));
 
     if (serverlen > MAX_COMPUTERNAME_LENGTH) return -serverlen;
 
+    if (target) {
+        memcpy(target, server, serverlen * sizeof(WCHAR));
+        target[serverlen] = '\0';
+    }
+
     len = sizeof(buffer) / sizeof(buffer[0]);
     if (GetComputerNameW(buffer, &len)) {
         if ((serverlen == len) && (strncmpiW(server, buffer, len) == 0)) {
             /* The requested Servername is our computername */
-            if (target) {
-                memcpy(target, server, serverlen * sizeof(WCHAR));
-                target[serverlen] = '\0';
-            }
-            return serverlen;
+            return 0;
         }
     }
-    return 0;
+    return serverlen;
 }
 
 /******************************************************************
index 4fc8e1b..d627cfd 100644 (file)
@@ -1907,15 +1907,15 @@ static HRESULT WINAPI fnIMLangFontLink_GetCharCodePages(
 static HRESULT WINAPI fnIMLangFontLink_GetStrCodePages(
         IMLangFontLink* iface,
         const WCHAR* pszSrc,
-        long cchSrc,
+        LONG cchSrc,
         DWORD dwPriorityCodePages,
         DWORD* pdwCodePages,
-        long* pcchCodePages)
+        LONG* pcchCodePages)
 {
-    long i;
+    LONG i;
     DWORD cps = 0;
 
-    TRACE("(%p)->%s %ld %x %p %p\n", iface, debugstr_wn(pszSrc,cchSrc),cchSrc,dwPriorityCodePages,pdwCodePages,pcchCodePages);
+    TRACE("(%p)->%s %d %x %p %p\n", iface, debugstr_wn(pszSrc, cchSrc), cchSrc, dwPriorityCodePages, pdwCodePages, pcchCodePages);
 
     if (pdwCodePages) *pdwCodePages = 0;
     if (pcchCodePages) *pcchCodePages = 0;
@@ -3203,8 +3203,8 @@ static HRESULT WINAPI fnIMLangFontLink2_GetCharCodePages( IMLangFontLink2* This,
 }
 
 static HRESULT WINAPI fnIMLangFontLink2_GetStrCodePages( IMLangFontLink2* This,
-        const WCHAR *pszSrc, long cchSrc, DWORD dwPriorityCodePages,
-        DWORD *pdwCodePages, long *pcchCodePages)
+        const WCHAR *pszSrc, LONG cchSrc, DWORD dwPriorityCodePages,
+        DWORD *pdwCodePages, LONG *pcchCodePages)
 {
     return fnIMLangFontLink_GetStrCodePages((IMLangFontLink *)This,
             pszSrc, cchSrc, dwPriorityCodePages, pdwCodePages, pcchCodePages);
@@ -3354,14 +3354,14 @@ static ULONG WINAPI fnIMLangLineBreakConsole_Release(
 static HRESULT WINAPI fnIMLangLineBreakConsole_BreakLineML(
     IMLangLineBreakConsole* iface,
     IMLangString* pSrcMLStr,
-    long lSrcPos,
-    long lSrcLen,
-    long cMinColumns,
-    long cMaxColumns,
-    long* plLineLen,
-    long* plSkipLen)
-{
-    FIXME("(%p)->%p %li %li %li %li %p %p\n", iface, pSrcMLStr, lSrcPos, lSrcLen, cMinColumns, cMaxColumns, plLineLen, plSkipLen);
+    LONG lSrcPos,
+    LONG lSrcLen,
+    LONG cMinColumns,
+    LONG cMaxColumns,
+    LONG* plLineLen,
+    LONG* plSkipLen)
+{
+    FIXME("(%p)->%p %i %i %i %i %p %p\n", iface, pSrcMLStr, lSrcPos, lSrcLen, cMinColumns, cMaxColumns, plLineLen, plSkipLen);
     return E_NOTIMPL;
 }
 
@@ -3369,12 +3369,12 @@ static HRESULT WINAPI fnIMLangLineBreakConsole_BreakLineW(
     IMLangLineBreakConsole* iface,
     LCID locale,
     const WCHAR* pszSrc,
-    long cchSrc,
-    long cMaxColumns,
-    long* pcchLine,
-    long* pcchSkip )
+    LONG cchSrc,
+    LONG cMaxColumns,
+    LONG* pcchLine,
+    LONG* pcchSkip )
 {
-    FIXME("(%p)->%i %s %li %li %p %p\n", iface, locale, debugstr_wn(pszSrc,cchSrc), cchSrc, cMaxColumns, pcchLine, pcchSkip);
+    FIXME("(%p)->%i %s %i %i %p %p\n", iface, locale, debugstr_wn(pszSrc,cchSrc), cchSrc, cMaxColumns, pcchLine, pcchSkip);
 
     *pcchLine = cchSrc;
     *pcchSkip = 0;
@@ -3386,12 +3386,12 @@ static HRESULT WINAPI fnIMLangLineBreakConsole_BreakLineA(
     LCID locale,
     UINT uCodePage,
     const CHAR* pszSrc,
-    long cchSrc,
-    long cMaxColumns,
-    long* pcchLine,
-    long* pcchSkip)
+    LONG cchSrc,
+    LONG cMaxColumns,
+    LONG* pcchLine,
+    LONG* pcchSkip)
 {
-    FIXME("(%p)->%i %i %s %li %li %p %p\n", iface, locale, uCodePage, debugstr_an(pszSrc,cchSrc), cchSrc, cMaxColumns, pcchLine, pcchSkip);
+    FIXME("(%p)->%i %i %s %i %i %p %p\n", iface, locale, uCodePage, debugstr_an(pszSrc,cchSrc), cchSrc, cMaxColumns, pcchLine, pcchSkip);
 
     *pcchLine = cchSrc;
     *pcchSkip = 0;
index 1c0c840..f7b8f8d 100644 (file)
@@ -512,8 +512,7 @@ static      LRESULT ADPCM_FormatSuggest(PACMDRVFORMATSUGGEST adfs)
         if (ADPCM_GetFormatIndex(adfs->pwfxDst) == 0xFFFFFFFF) return ACMERR_NOTPOSSIBLE;
         break;
     default:
-        FIXME("\n");
-        break;
+        return ACMERR_NOTPOSSIBLE;
     }
 
     return MMSYSERR_NOERROR;
index c2ae048..aad46f2 100644 (file)
@@ -12,6 +12,7 @@
        <file>msctf.c</file>
        <file>regsvr.c</file>
        <file>threadmgr.c</file>
+       <file>version.rc</file>
        <library>wine</library>
        <library>uuid</library>
        <library>ole32</library>
diff --git a/reactos/dll/win32/msctf/version.rc b/reactos/dll/win32/msctf/version.rc
new file mode 100644 (file)
index 0000000..8bd8ff3
--- /dev/null
@@ -0,0 +1,26 @@
+/*
+ * Copyright 2009 CodeWeavers, Aric Stewart
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#define WINE_FILEDESCRIPTION_STR "Wine Msctf"
+#define WINE_FILENAME_STR "msctf.dll"
+#define WINE_FILEVERSION 5,1,2600,3319
+#define WINE_FILEVERSION_STR " 5.1.2600.3319"
+#define WINE_PRODUCTVERSION 5,1,2600,3319
+#define WINE_PRODUCTVERSION_STR "5.1.2600.3319"
+
+#include "wine/wine_common_ver.rc"
index b0354b9..e157027 100644 (file)
@@ -34,6 +34,8 @@ WINE_DEFAULT_DEBUG_CHANNEL(msrle32);
 
 static HINSTANCE MSRLE32_hModule = 0;
 
+#define compare_fourcc(fcc1, fcc2) (((fcc1)^(fcc2))&~0x20202020)
+
 #define ABS(a)                ((a) < 0 ? -(a) : (a))
 #define SQR(a)                ((a) * (a))
 
@@ -1114,7 +1116,7 @@ static CodecInfo* Open(LPICOPEN icinfo)
     return (LPVOID)0xFFFF0000;
   }
 
-  if (icinfo->fccType != ICTYPE_VIDEO) return NULL;
+  if (compare_fourcc(icinfo->fccType, ICTYPE_VIDEO)) return NULL;
 
   TRACE("(%p = {%u,0x%08X(%4.4s),0x%08X(%4.4s),0x%X,0x%X,...})\n", icinfo,
        icinfo->dwSize, icinfo->fccType, (char*)&icinfo->fccType,
index 6d252d9..ff8a036 100644 (file)
@@ -309,7 +309,7 @@ static LRESULT MCIWND_Create(HWND hWnd, LPCREATESTRUCTW cs)
         /* MCI wnd class is prepared to be embedded as an MDI child window */
         if (cs->dwExStyle & WS_EX_MDICHILD)
         {
-            MDICREATESTRUCTW *mdics = (MDICREATESTRUCTW *)cs->lpCreateParams;
+            MDICREATESTRUCTW *mdics = cs->lpCreateParams;
             lParam = mdics->lParam;
         }
         else
@@ -449,7 +449,7 @@ static LRESULT WINAPI MCIWndProc(HWND hWnd, UINT wMsg, WPARAM wParam, LPARAM lPa
 
     TRACE("%p %04x %08lx %08lx\n", hWnd, wMsg, wParam, lParam);
 
-    mwi = (MCIWndInfo*)GetWindowLongW(hWnd, 0);
+    mwi = (MCIWndInfo*)GetWindowLongPtrW(hWnd, 0);
     if (!mwi && wMsg != WM_CREATE)
         return DefWindowProcW(hWnd, wMsg, wParam, lParam);
 
@@ -568,7 +568,7 @@ static LRESULT WINAPI MCIWndProc(HWND hWnd, UINT wMsg, WPARAM wParam, LPARAM lPa
             hCursor = SetCursor(hCursor);
 
             mci_open.lpstrElementName = (LPWSTR)lParam;
-            wsprintfW(aliasW, formatW, (int)hWnd + 1);
+            wsprintfW(aliasW, formatW, HandleToLong(hWnd) + 1);
             mci_open.lpstrAlias = aliasW;
             mwi->lasterror = mciSendCommandW(mwi->mci, MCI_OPEN,
                                              MCI_OPEN_ELEMENT | MCI_OPEN_ALIAS | MCI_WAIT,
@@ -588,7 +588,7 @@ static LRESULT WINAPI MCIWndProc(HWND hWnd, UINT wMsg, WPARAM wParam, LPARAM lPa
             }
 
             mwi->mci = mci_open.wDeviceID;
-            mwi->alias = (int)hWnd + 1;
+            mwi->alias = HandleToLong(hWnd) + 1;
 
             mwi->lpName = HeapAlloc(GetProcessHeap(), 0, (strlenW((LPWSTR)lParam) + 1) * sizeof(WCHAR));
             strcpyW(mwi->lpName, (LPWSTR)lParam);
@@ -752,7 +752,7 @@ end_of_mci_open:
                 MCIWND_notify_error(mwi);
                 return 0;
             }
-            TRACE("MCIWNDM_GETLENGTH: %d\n", mci_status.dwReturn);
+            TRACE("MCIWNDM_GETLENGTH: %ld\n", mci_status.dwReturn);
             return mci_status.dwReturn;
         }
 
@@ -769,7 +769,7 @@ end_of_mci_open:
                 MCIWND_notify_error(mwi);
                 return 0;
             }
-            TRACE("MCIWNDM_GETSTART: %d\n", mci_status.dwReturn);
+            TRACE("MCIWNDM_GETSTART: %ld\n", mci_status.dwReturn);
             return mci_status.dwReturn;
         }
 
index 20533db..4d6527e 100644 (file)
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  */
 
-LANGUAGE LANG_KOREAN, SUBLANG_NEUTRAL
+LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT
 
 ICM_CHOOSE_COMPRESSOR DIALOG DISCARDABLE  36, 24, 187, 95
 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
 CAPTION "ºñµð¿À ¾ÐÃà"
-FONT 8, "MS Shell Dlg"
+FONT 9, "MS Shell Dlg"
 {
     DEFPUSHBUTTON "È®ÀÎ",IDOK,129,2,49,14
     PUSHBUTTON "Ãë¼Ò",IDCANCEL,129,18,49,14
diff --git a/reactos/dll/win32/msvfw32/msvfw32_Pt.rc b/reactos/dll/win32/msvfw32/msvfw32_Pt.rc
new file mode 100644 (file)
index 0000000..0640870
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2008 Ricardo Filipe
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+LANGUAGE LANG_PORTUGUESE, SUBLANG_NEUTRAL
+
+ICM_CHOOSE_COMPRESSOR DIALOG DISCARDABLE  36, 24, 187, 95
+STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+CAPTION "Compressão de vídeo"
+FONT 8, "MS Shell Dlg"
+{
+    DEFPUSHBUTTON "OK",IDOK,129,2,49,14
+    PUSHBUTTON "Cancelar",IDCANCEL,129,18,49,14
+
+    LTEXT "&Compressor:",-1,9,6,105,8
+    COMBOBOX 880,9,16,111,67,CBS_DROPDOWNLIST|WS_VSCROLL|WS_TABSTOP
+
+    PUSHBUTTON "Con&figurar...",882,129,36,49,14
+    PUSHBUTTON "&Sobre...",883,129,52,49,14
+
+    SCROLLBAR 884,9,44,111,9,WS_TABSTOP
+
+    LTEXT "&Qualidade de compressão:",886,9,34,80,8
+
+    CONTROL "&Imagem chave todos os",887,"Button",BS_AUTOCHECKBOX|WS_TABSTOP,9,60,66,12
+    EDITTEXT 888,78,60,22,12
+    LTEXT "frames",889,103,62,26,10
+
+    CONTROL "&Cadência de dados",894,"Button",BS_AUTOCHECKBOX|WS_TABSTOP,9,76,66,12
+    EDITTEXT 895,78,76,22,12
+    LTEXT "KB/sec",896,102,78,26,10
+}
+
+STRINGTABLE DISCARDABLE
+{
+    IDS_FULLFRAMES "Imagens Completas (Descomprimidas)"
+}
diff --git a/reactos/dll/win32/msvfw32/msvfw32_Zh.rc b/reactos/dll/win32/msvfw32/msvfw32_Zh.rc
new file mode 100644 (file)
index 0000000..334fd69
--- /dev/null
@@ -0,0 +1,92 @@
+/*
+ * msvfw32 (Simplified and Traditional Chinese Resources)
+ *
+ * Copyright 2008 Hongbo Ni <hongbo.at.njstar.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+/* Chinese text is encoded in UTF-8 */
+#pragma code_page(65001)
+
+LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
+
+ICM_CHOOSE_COMPRESSOR DIALOG DISCARDABLE  36, 24, 187, 95
+STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+CAPTION "视频压缩"
+FONT 9, "MS Shell Dlg"
+{
+    DEFPUSHBUTTON "确定",IDOK,129,2,49,14
+    PUSHBUTTON "取消",IDCANCEL,129,18,49,14
+
+    LTEXT "压缩器(&C):",-1,9,6,105,8
+    COMBOBOX 880,9,16,111,67,CBS_DROPDOWNLIST|WS_VSCROLL|WS_TABSTOP
+
+    PUSHBUTTON "配置(&F)...",882,129,36,49,14
+    PUSHBUTTON "关于(&A)...",883,129,52,49,14
+
+    SCROLLBAR 884,9,44,111,9,WS_TABSTOP
+
+    LTEXT "压缩质量(&Q):",886,9,34,80,8
+
+    CONTROL "关键帧/每(&K)",887,"Button",BS_AUTOCHECKBOX|WS_TABSTOP,9,60,66,12
+    EDITTEXT 888,78,60,22,12
+    LTEXT "帧",889,103,62,26,10
+
+    CONTROL "数据速度(&D)",894,"Button",BS_AUTOCHECKBOX|WS_TABSTOP,9,76,66,12
+    EDITTEXT 895,78,76,22,12
+    LTEXT "KB/sec",896,102,78,26,10
+}
+
+STRINGTABLE DISCARDABLE
+{
+    IDS_FULLFRAMES "全帧(未压缩)"
+}
+
+LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL
+
+ICM_CHOOSE_COMPRESSOR DIALOG DISCARDABLE  36, 24, 187, 95
+STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+CAPTION "視頻壓縮"
+FONT 9, "MS Shell Dlg"
+{
+    DEFPUSHBUTTON "確定",IDOK,129,2,49,14
+    PUSHBUTTON "取消",IDCANCEL,129,18,49,14
+
+    LTEXT "壓縮器(&C):",-1,9,6,105,8
+    COMBOBOX 880,9,16,111,67,CBS_DROPDOWNLIST|WS_VSCROLL|WS_TABSTOP
+
+    PUSHBUTTON "配置(&F)...",882,129,36,49,14
+    PUSHBUTTON "關於(&A)...",883,129,52,49,14
+
+    SCROLLBAR 884,9,44,111,9,WS_TABSTOP
+
+    LTEXT "壓縮質量(&Q):",886,9,34,80,8
+
+    CONTROL "關鍵幀/每(&K)",887,"Button",BS_AUTOCHECKBOX|WS_TABSTOP,9,60,66,12
+    EDITTEXT 888,78,60,22,12
+    LTEXT "幀",889,103,62,26,10
+
+    CONTROL "數據速度(&D)",894,"Button",BS_AUTOCHECKBOX|WS_TABSTOP,9,76,66,12
+    EDITTEXT 895,78,76,22,12
+    LTEXT "KB/sec",896,102,78,26,10
+}
+
+STRINGTABLE DISCARDABLE
+{
+    IDS_FULLFRAMES "全幀(未壓縮)"
+}
+
+#pragma code_page(default)
index 221542c..c873da5 100644 (file)
@@ -602,7 +602,7 @@ static void MSVIDEO_UnmapMsg16To32(UINT msg, LPVOID data16, LPDWORD lParam1, LPD
     case ICM_GETINFO:
         {
             ICINFO *ici = (ICINFO*)(*lParam1);
-            ICINFO16 *ici16 = (ICINFO16*)data16;
+            ICINFO16 *ici16 = data16;
 
             UNCOPY(ici, fccType);
             UNCOPY(ici, fccHandler);
index baea47b..7483218 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Copyright 1998 Marcus Meissner
  * Copyright 2000 Bradley Baetz
- * Copyright 2003 Michael Günnewig
+ * Copyright 2003 Michael Günnewig
  * Copyright 2005 Dmitry Timoshkov
  *
  * This library is free software; you can redistribute it and/or
@@ -102,7 +102,7 @@ static int compare_fourcc(DWORD fcc1, DWORD fcc2)
   return strncasecmp(fcc_str1, fcc_str2, 4);
 }
 
-typedef BOOL (*enum_handler_t)(const char*, int, void*);
+typedef BOOL (*enum_handler_t)(const char*, unsigned int, void*);
 
 static BOOL enum_drivers(DWORD fccType, enum_handler_t handler, void* param)
 {
@@ -173,9 +173,9 @@ DWORD WINAPI VideoForWindowsVersion(void)
     return 0x040003B6; /* 4.950 */
 }
 
-static BOOL ICInfo_enum_handler(const char *drv, int nr, void *param)
+static BOOL ICInfo_enum_handler(const char *drv, unsigned int nr, void *param)
 {
-    ICINFO *lpicinfo = (ICINFO *)param;
+    ICINFO *lpicinfo = param;
     DWORD fccHandler = mmioStringToFOURCCA(drv + 5, 0);
 
     /* exact match of fccHandler or nth driver found */
@@ -519,9 +519,9 @@ static HIC try_driver(driver_info_t *info)
     return 0;
 }
 
-static BOOL ICLocate_enum_handler(const char *drv, int nr, void *param)
+static BOOL ICLocate_enum_handler(const char *drv, unsigned int nr, void *param)
 {
-    driver_info_t *info = (driver_info_t *)param;
+    driver_info_t *info = param;
     info->fccHandler = mmioStringToFOURCCA(drv + 5, 0);
     info->hic = try_driver(info);
     return info->hic != 0;
@@ -1026,9 +1026,9 @@ void VFWAPI ICCompressorFree(PCOMPVARS pc)
 LRESULT MSVIDEO_SendMessage(WINE_HIC* whic, UINT msg, DWORD_PTR lParam1, DWORD_PTR lParam2)
 {
     LRESULT     ret;
-    
-#define XX(x) case x: TRACE("(%p,"#x",0x%08lx,0x%08lx)\n",whic,lParam1,lParam2); break;
-    
+
+#define XX(x) case x: TRACE("(%p,"#x",0x%08lx,0x%08lx)\n",whic,lParam1,lParam2); break
+
     switch (msg) {
         /* DRV_* */
         XX(DRV_LOAD);
@@ -1299,7 +1299,7 @@ HANDLE VFWAPI ICImageDecompress(
                pHdr = HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,cbHdr+sizeof(RGBQUAD)*256);
                if ( pHdr == NULL )
                        goto err;
-               if ( ICDecompressGetFormat( hic, lpbiIn, (BITMAPINFO*)pHdr ) != ICERR_OK )
+               if ( ICDecompressGetFormat( hic, lpbiIn, pHdr ) != ICERR_OK )
                        goto err;
                lpbiOut = (BITMAPINFO*)pHdr;
                if ( lpbiOut->bmiHeader.biBitCount <= 8 &&
@@ -1337,7 +1337,7 @@ HANDLE VFWAPI ICImageDecompress(
                WARN( "out of memory\n" );
                goto err;
        }
-       pMem = (BYTE*)GlobalLock( hMem );
+       pMem = GlobalLock( hMem );
        if ( pMem == NULL )
                goto err;
        memcpy( pMem, lpbiOut, cbHdr );
@@ -1368,7 +1368,7 @@ err:
  */
 LPVOID VFWAPI ICSeqCompressFrame(PCOMPVARS pc, UINT uiFlags, LPVOID lpBits, BOOL *pfKey, LONG *plSize)
 {
-    ICCOMPRESS* icComp = (ICCOMPRESS *)pc->lpState;
+    ICCOMPRESS* icComp = pc->lpState;
     DWORD ret;
     TRACE("(%p, 0x%08x, %p, %p, %p)\n", pc, uiFlags, lpBits, pfKey, plSize);
 
@@ -1490,7 +1490,7 @@ BOOL VFWAPI ICSeqCompressFrameStart(PCOMPVARS pc, LPBITMAPINFO lpbiIn)
     TRACE(" -- %x\n", ret);
     if (ret == ICERR_OK)
     {
-       ICCOMPRESS* icComp = (ICCOMPRESS *)pc->lpState;
+       ICCOMPRESS* icComp = pc->lpState;
        /* Initialise some variables */
        pc->lFrame = 0; pc->lKeyCount = 0;
 
index 5d81455..6bd8e93 100644 (file)
@@ -19,9 +19,6 @@
 #ifndef __WINE_MSVIDEO_PRIVATE_H
 #define __WINE_MSVIDEO_PRIVATE_H
 
-/* Installable Compressor Manager */
-#define ICVERSION 0x0104
-
 #define ICM_CHOOSE_COMPRESSOR 1
 #define IDC_COMP_LIST 880
 #define IDS_FULLFRAMES 901
index 4246fdf..512f341 100644 (file)
@@ -30,7 +30,9 @@
 #include "msvfw32_Nl.rc"
 #include "msvfw32_No.rc"
 #include "msvfw32_Pl.rc"
+#include "msvfw32_Pt.rc"
 #include "msvfw32_Ru.rc"
 #include "msvfw32_Si.rc"
 #include "msvfw32_Sv.rc"
 #include "msvfw32_Tr.rc"
+#include "msvfw32_Zh.rc"
index 9de2a2d..ab51e4c 100644 (file)
@@ -7,7 +7,7 @@
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
  *
  * This library is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -50,6 +50,7 @@ static HINSTANCE MSVIDC32_hModule;
 #define CRAM_MAGIC mmioFOURCC('C', 'R', 'A', 'M')
 #define MSVC_MAGIC mmioFOURCC('M', 'S', 'V', 'C')
 #define WHAM_MAGIC mmioFOURCC('W', 'H', 'A', 'M')
+#define compare_fourcc(fcc1, fcc2) (((fcc1)^(fcc2))&~0x20202020)
 
 #define PALETTE_COUNT 256
 #define LE_16(x)  ((((const uint8_t *)(x))[1] << 8) | ((const uint8_t *)(x))[0])
@@ -502,7 +503,7 @@ LRESULT WINAPI CRAM_DriverProc( DWORD_PTR dwDriverId, HDRVR hdrvr, UINT msg,
 
         TRACE("Opened\n");
 
-        if (icinfo && icinfo->fccType != ICTYPE_VIDEO) return 0;
+        if (icinfo && compare_fourcc(icinfo->fccType, ICTYPE_VIDEO)) return 0;
 
         info = HeapAlloc( GetProcessHeap(), 0, sizeof (Msvideo1Context) );
         if( info )
index 5fdd121..1ff6050 100644 (file)
@@ -157,7 +157,14 @@ DWORD WINAPI fileTransfer(void *param)
 
         /* Check if it's the stop_event */
         if (WaitForMultipleObjects(2, events, FALSE, INFINITE) == WAIT_OBJECT_0)
+        {
+            LIST_FOR_EACH_ENTRY_SAFE(job, jobCur, &qmgr->jobs, BackgroundCopyJobImpl, entryFromQmgr)
+            {
+                list_remove(&job->entryFromQmgr);
+                IBackgroundCopyJob_Release((IBackgroundCopyJob *) job);
+            }
             return 0;
+        }
 
         /* Note that other threads may add files to the job list, but only
            this thread ever deletes them so we don't need to worry about jobs
index 1e0a545..b7dc7c3 100644 (file)
@@ -153,4 +153,6 @@ ServiceMain(DWORD dwArgc, LPWSTR *lpszArgv)
     UpdateStatus(SERVICE_STOPPED, NO_ERROR, 0);
     CloseHandle(stop_event);
     TRACE("service stoped\n");
+
+    CoUninitialize();
 }