[prev in list] [next in list] [prev in thread] [next in thread] 

List:       ros-diffs
Subject:    [ros-diffs] [cwittich] 39238: sync shlwapi with wine 1.1.14
From:       cwittich () svn ! reactos ! org
Date:       2009-01-31 14:48:47
Message-ID: 20090131160905.EB3E3989AA () mail ! reactos ! org
[Download RAW message or body]

Author: cwittich
Date: Sat Jan 31 08:48:46 2009
New Revision: 39238

URL: http://svn.reactos.org/svn/reactos?rev=39238&view=rev
Log:
sync shlwapi with wine 1.1.14

Added:
    trunk/reactos/dll/win32/shlwapi/shlwapi_Sk.rc   (with props)
Modified:
    trunk/reactos/dll/win32/shlwapi/assoc.c
    trunk/reactos/dll/win32/shlwapi/msgbox.c
    trunk/reactos/dll/win32/shlwapi/ordinal.c
    trunk/reactos/dll/win32/shlwapi/reg.c
    trunk/reactos/dll/win32/shlwapi/shlwapi.rbuild
    trunk/reactos/dll/win32/shlwapi/shlwapi.rc
    trunk/reactos/dll/win32/shlwapi/string.c

Modified: trunk/reactos/dll/win32/shlwapi/assoc.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shlwapi/assoc.c?rev=39238&r1=39237&r2=39238&view=diff
 ==============================================================================
--- trunk/reactos/dll/win32/shlwapi/assoc.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shlwapi/assoc.c [iso-8859-1] Sat Jan 31 08:48:46 2009
@@ -455,7 +455,7 @@
   if (IsEqualIID(riid, &IID_IUnknown) ||
       IsEqualIID(riid, &IID_IQueryAssociations))
   {
-    *ppvObj = (IQueryAssociations*)This;
+    *ppvObj = This;
 
     IQueryAssociations_AddRef((IQueryAssociations*)*ppvObj);
     TRACE("Returning IQueryAssociations (%p)\n", *ppvObj);
@@ -594,9 +594,8 @@
   return S_OK;
 }
 
-static HRESULT ASSOC_GetExecutable(IQueryAssociationsImpl *This,
-                                   LPCWSTR pszExtra, LPWSTR path,
-                                   DWORD pathlen, DWORD *len)
+static HRESULT ASSOC_GetCommand(IQueryAssociationsImpl *This,
+                                LPCWSTR pszExtra, WCHAR **ppszCommand)
 {
   HKEY hkeyCommand;
   HKEY hkeyFile;
@@ -604,15 +603,10 @@
   HKEY hkeyVerb;
   HRESULT hr;
   LONG ret;
-  WCHAR * pszCommand;
-  WCHAR * pszEnd;
   WCHAR * pszExtraFromReg = NULL;
   WCHAR * pszFileType;
-  WCHAR * pszStart;
   static const WCHAR commandW[] = { 'c','o','m','m','a','n','d',0 };
   static const WCHAR shellW[] = { 's','h','e','l','l',0 };
-
-  assert(len);
 
   hr = ASSOC_GetValue(This->hkeySource, &pszFileType);
   if (FAILED(hr))
@@ -672,8 +666,23 @@
   RegCloseKey(hkeyVerb);
   if (ret != ERROR_SUCCESS)
     return HRESULT_FROM_WIN32(ret);
-  hr = ASSOC_GetValue(hkeyCommand, &pszCommand);
+  hr = ASSOC_GetValue(hkeyCommand, ppszCommand);
   RegCloseKey(hkeyCommand);
+  return hr;
+}
+
+static HRESULT ASSOC_GetExecutable(IQueryAssociationsImpl *This,
+                                   LPCWSTR pszExtra, LPWSTR path,
+                                   DWORD pathlen, DWORD *len)
+{
+  WCHAR *pszCommand;
+  WCHAR *pszStart;
+  WCHAR *pszEnd;
+  HRESULT hr;
+
+  assert(len);
+
+  hr = ASSOC_GetCommand(This, pszExtra, &pszCommand);
   if (FAILED(hr))
     return hr;
 
@@ -763,6 +772,18 @@
 
   switch (str)
   {
+    case ASSOCSTR_COMMAND:
+    {
+      WCHAR *command;
+      hr = ASSOC_GetCommand(This, pszExtra, &command);
+      if (SUCCEEDED(hr))
+      {
+        hr = ASSOC_ReturnData(pszOut, pcchOut, command, strlenW(command) + 1);
+        HeapFree(GetProcessHeap(), 0, command);
+      }
+      return hr;
+    }
+
     case ASSOCSTR_EXECUTABLE:
     {
       hr = ASSOC_GetExecutable(This, pszExtra, path, MAX_PATH, &len);
@@ -770,6 +791,38 @@
         return hr;
       len++;
       return ASSOC_ReturnData(pszOut, pcchOut, path, len);
+    }
+
+    case ASSOCSTR_FRIENDLYDOCNAME:
+    {
+      WCHAR *pszFileType;
+      DWORD ret;
+      DWORD size;
+
+      hr = ASSOC_GetValue(This->hkeySource, &pszFileType);
+      if (FAILED(hr))
+        return hr;
+      size = 0;
+      ret = RegGetValueW(HKEY_CLASSES_ROOT, pszFileType, NULL, RRF_RT_REG_SZ, NULL, \
NULL, &size); +      if (ret == ERROR_SUCCESS)
+      {
+        WCHAR *docName = HeapAlloc(GetProcessHeap(), 0, size);
+        if (docName)
+        {
+          ret = RegGetValueW(HKEY_CLASSES_ROOT, pszFileType, NULL, RRF_RT_REG_SZ, \
NULL, docName, &size); +          if (ret == ERROR_SUCCESS)
+            hr = ASSOC_ReturnData(pszOut, pcchOut, docName, strlenW(docName) + 1);
+          else
+            hr = HRESULT_FROM_WIN32(ret);
+          HeapFree(GetProcessHeap(), 0, docName);
+        }
+        else
+          hr = E_OUTOFMEMORY;
+      }
+      else
+        hr = HRESULT_FROM_WIN32(ret);
+      HeapFree(GetProcessHeap(), 0, pszFileType);
+      return hr;
     }
 
     case ASSOCSTR_FRIENDLYAPPNAME:
@@ -825,6 +878,73 @@
       return ASSOC_ReturnData(pszOut, pcchOut, path, strlenW(path) + 1);
     }
 
+    case ASSOCSTR_CONTENTTYPE:
+    {
+      static const WCHAR Content_TypeW[] = {'C','o','n','t','e','n','t',' \
','T','y','p','e',0}; +      WCHAR *contentType;
+      DWORD ret;
+      DWORD size;
+
+      size = 0;
+      ret = RegGetValueW(This->hkeySource, NULL, Content_TypeW, RRF_RT_REG_SZ, NULL, \
NULL, &size); +      if (ret != ERROR_SUCCESS)
+        return HRESULT_FROM_WIN32(ret);
+      contentType = HeapAlloc(GetProcessHeap(), 0, size);
+      if (contentType != NULL)
+      {
+        ret = RegGetValueW(This->hkeySource, NULL, Content_TypeW, RRF_RT_REG_SZ, \
NULL, contentType, &size); +        if (ret == ERROR_SUCCESS)
+          hr = ASSOC_ReturnData(pszOut, pcchOut, contentType, strlenW(contentType) + \
1); +        else
+          hr = HRESULT_FROM_WIN32(ret);
+        HeapFree(GetProcessHeap(), 0, contentType);
+      }
+      else
+        hr = E_OUTOFMEMORY;
+      return hr;
+    }
+
+    case ASSOCSTR_DEFAULTICON:
+    {
+      static const WCHAR DefaultIconW[] = \
{'D','e','f','a','u','l','t','I','c','o','n',0}; +      WCHAR *pszFileType;
+      DWORD ret;
+      DWORD size;
+      HKEY hkeyFile;
+
+      hr = ASSOC_GetValue(This->hkeySource, &pszFileType);
+      if (FAILED(hr))
+        return hr;
+      ret = RegOpenKeyExW(HKEY_CLASSES_ROOT, pszFileType, 0, KEY_READ, &hkeyFile);
+      if (ret == ERROR_SUCCESS)
+      {
+        size = 0;
+        ret = RegGetValueW(hkeyFile, DefaultIconW, NULL, RRF_RT_REG_SZ, NULL, NULL, \
&size); +        if (ret == ERROR_SUCCESS)
+        {
+          WCHAR *icon = HeapAlloc(GetProcessHeap(), 0, size);
+          if (icon)
+          {
+            ret = RegGetValueW(hkeyFile, DefaultIconW, NULL, RRF_RT_REG_SZ, NULL, \
icon, &size); +            if (ret == ERROR_SUCCESS)
+              hr = ASSOC_ReturnData(pszOut, pcchOut, icon, strlenW(icon) + 1);
+            else
+              hr = HRESULT_FROM_WIN32(ret);
+            HeapFree(GetProcessHeap(), 0, icon);
+          }
+          else
+            hr = E_OUTOFMEMORY;
+        }
+        else
+          hr = HRESULT_FROM_WIN32(ret);
+        RegCloseKey(hkeyFile);
+      }
+      else
+        hr = HRESULT_FROM_WIN32(ret);
+      HeapFree(GetProcessHeap(), 0, pszFileType);
+      return hr;
+    }
+
     default:
       FIXME("assocstr %d unimplemented!\n", str);
       return E_NOTIMPL;

Modified: trunk/reactos/dll/win32/shlwapi/msgbox.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shlwapi/msgbox.c?rev=39238&r1=39237&r2=39238&view=diff
 ==============================================================================
--- trunk/reactos/dll/win32/shlwapi/msgbox.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shlwapi/msgbox.c [iso-8859-1] Sat Jan 31 08:48:46 2009
@@ -173,7 +173,7 @@
   d.dlgProc = dlgProc;
   d.lParam = lParam;
   d.lpszId = lpszId;
-  return DialogBoxParamW(hInst, (LPCWSTR)lpszName, hWnd, SHDlgProcEx, (LPARAM)&d);
+  return DialogBoxParamW(hInst, lpszName, hWnd, SHDlgProcEx, (LPARAM)&d);
 }
 
 /* Data held by each shlwapi message box */

Modified: trunk/reactos/dll/win32/shlwapi/ordinal.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shlwapi/ordinal.c?rev=39238&r1=39237&r2=39238&view=diff
 ==============================================================================
--- trunk/reactos/dll/win32/shlwapi/ordinal.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shlwapi/ordinal.c [iso-8859-1] Sat Jan 31 08:48:46 2009
@@ -1250,12 +1250,10 @@
   if (lpInt1 == lpInt2)
     return TRUE;
 
-  if (FAILED(IUnknown_QueryInterface(lpInt1, &IID_IUnknown,
-                                       (LPVOID *)&lpUnknown1)))
+  if (FAILED(IUnknown_QueryInterface(lpInt1, &IID_IUnknown, &lpUnknown1)))
     return FALSE;
 
-  if (FAILED(IUnknown_QueryInterface(lpInt2, &IID_IUnknown,
-                                       (LPVOID *)&lpUnknown2)))
+  if (FAILED(IUnknown_QueryInterface(lpInt2, &IID_IUnknown, &lpUnknown2)))
     return FALSE;
 
   if (lpUnknown1 == lpUnknown2)
@@ -2236,7 +2234,7 @@
 		if (IsEqualIID(riid, xmove->refid)) {
 		    a_vtbl = (IUnknown*)(xmove->indx + (LPBYTE)w);
 		    TRACE("matched, returning (%p)\n", a_vtbl);
-		    *ppv = (LPVOID)a_vtbl;
+                    *ppv = a_vtbl;
 		    IUnknown_AddRef(a_vtbl);
 		    return S_OK;
 		}
@@ -2246,7 +2244,7 @@
 	    if (IsEqualIID(riid, &IID_IUnknown)) {
 		a_vtbl = (IUnknown*)(x->indx + (LPBYTE)w);
 		TRACE("returning first for IUnknown (%p)\n", a_vtbl);
-		*ppv = (LPVOID)a_vtbl;
+                *ppv = a_vtbl;
 		IUnknown_AddRef(a_vtbl);
 		return S_OK;
 	    }
@@ -2539,7 +2537,7 @@
 	if (retval != ERROR_SUCCESS)
 	  return 0;
 
-	SHGetValueW(hKey, lpSubName, lpValue, NULL, (LPBYTE)&retval, &datsize);
+        SHGetValueW(hKey, lpSubName, lpValue, NULL, &retval, &datsize);
 	RegCloseKey(hKey);
 	return retval;
 }
@@ -2618,7 +2616,7 @@
 
 	*ppv = NULL;
 	if(pUnk && pInner) {
-	    hret = IUnknown_QueryInterface(pInner, riid, (LPVOID*)ppv);
+            hret = IUnknown_QueryInterface(pInner, riid, ppv);
 	    if (SUCCEEDED(hret)) IUnknown_Release(pUnk);
 	}
 	TRACE("-- 0x%08x\n", hret);
@@ -4167,7 +4165,7 @@
   {
     IUnknown* lpUnk;
 
-    if (SUCCEEDED(IBindCtx_GetObjectParam(pbc, (LPOLESTR)szSkipBinding, &lpUnk)))
+    if (SUCCEEDED(IBindCtx_GetObjectParam(pbc, szSkipBinding, &lpUnk)))
     {
       CLSID clsid;
 

Modified: trunk/reactos/dll/win32/shlwapi/reg.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shlwapi/reg.c?rev=39238&r1=39237&r2=39238&view=diff
 ==============================================================================
--- trunk/reactos/dll/win32/shlwapi/reg.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shlwapi/reg.c [iso-8859-1] Sat Jan 31 08:48:46 2009
@@ -190,7 +190,7 @@
 LONG WINAPI SHRegCloseUSKey(
         HUSKEY hUSKey) /* [I] Key to close */
 {
-    LPSHUSKEY hKey = (LPSHUSKEY)hUSKey;
+    LPSHUSKEY hKey = hUSKey;
     LONG ret = ERROR_SUCCESS;
 
     if (hKey->HKCUkey)
@@ -393,8 +393,8 @@
 	if (ret != ERROR_SUCCESS) {
 	    if (pvDefaultData && (dwDefaultDataSize != 0)) {
 		maxmove = (dwDefaultDataSize >= *pcbData) ? *pcbData : dwDefaultDataSize;
-		src = (CHAR*)pvDefaultData;
-		dst = (CHAR*)pvData;
+                src = pvDefaultData;
+                dst = pvData;
 		for(i=0; i<maxmove; i++) *dst++ = *src++;
 		*pcbData = maxmove;
 		TRACE("setting default data\n");
@@ -444,8 +444,8 @@
 	if (ret != ERROR_SUCCESS) {
 	    if (pvDefaultData && (dwDefaultDataSize != 0)) {
 		maxmove = (dwDefaultDataSize >= *pcbData) ? *pcbData : dwDefaultDataSize;
-		src = (CHAR*)pvDefaultData;
-		dst = (CHAR*)pvData;
+                src = pvDefaultData;
+                dst = pvData;
 		for(i=0; i<maxmove; i++) *dst++ = *src++;
 		*pcbData = maxmove;
 		TRACE("setting default data\n");
@@ -934,7 +934,7 @@
                                 LPVOID pvData, DWORD cbData, DWORD dwFlags)
 {
     DWORD dummy;
-    LPSHUSKEY hKey = (LPSHUSKEY)hUSKey;
+    LPSHUSKEY hKey = hUSKey;
     LONG ret = ERROR_SUCCESS;
 
     TRACE("(%p,%s,%d,%p,%d,%d)\n", hUSKey, debugstr_w(pszValue),
@@ -2242,7 +2242,7 @@
   DWORD dwKeyCount = 0, dwValueCount = 0, dwMaxKeyLen = 0;
   DWORD  dwMaxValueLen = 0, dwMaxDataLen = 0, i;
   BYTE buff[1024];
-  LPVOID lpBuff = (LPVOID)buff;
+  LPVOID lpBuff = buff;
   WCHAR szName[MAX_PATH], *lpszName = szName;
   DWORD dwRet = S_OK;
 

Modified: trunk/reactos/dll/win32/shlwapi/shlwapi.rbuild
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shlwapi/shlwapi.rbuild?rev=39238&r1=39237&r2=39238&view=diff
 ==============================================================================
--- trunk/reactos/dll/win32/shlwapi/shlwapi.rbuild [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shlwapi/shlwapi.rbuild [iso-8859-1] Sat Jan 31 08:48:46 \
2009 @@ -5,6 +5,7 @@
 	<importlibrary definition="shlwapi.spec" />
 	<include base="shlwapi">.</include>
 	<include base="ReactOS">include/reactos/wine</include>
+	<define name="_WIN32_WINNT">0x600</define>
 	<define name="__WINESRC__" />
 	<file>assoc.c</file>
 	<file>clist.c</file>

Modified: trunk/reactos/dll/win32/shlwapi/shlwapi.rc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shlwapi/shlwapi.rc?rev=39238&r1=39237&r2=39238&view=diff
 ==============================================================================
--- trunk/reactos/dll/win32/shlwapi/shlwapi.rc [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shlwapi/shlwapi.rc [iso-8859-1] Sat Jan 31 08:48:46 2009
@@ -43,7 +43,7 @@
 #include "shlwapi_Ro.rc"
 #include "shlwapi_Ru.rc"
 #include "shlwapi_Si.rc"
+#include "shlwapi_Sk.rc"
 #include "shlwapi_Sv.rc"
 #include "shlwapi_Tr.rc"
-#include "shlwapi_Uk.rc"
-#include "shlwapi_Zh.rc"
+#include "shlwapi_Uk.rc"#include "shlwapi_Zh.rc"

Added: trunk/reactos/dll/win32/shlwapi/shlwapi_Sk.rc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shlwapi/shlwapi_Sk.rc?rev=39238&view=auto
 ==============================================================================
--- trunk/reactos/dll/win32/shlwapi/shlwapi_Sk.rc (added)
+++ trunk/reactos/dll/win32/shlwapi/shlwapi_Sk.rc [iso-8859-1] Sat Jan 31 08:48:46 \
2009 @@ -1,0 +1,43 @@
+/* Slovak translation for shlwapi
+ *
+ * Copyright 2004 Jon Griffiths
+ * Copyright 2008 Mário Kaèmár (Mario Kacmar)
+ *
+ * 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_SLOVAK, SUBLANG_DEFAULT
+
+IDD_ERR_DIALOG DIALOG MOVEABLE DISCARDABLE 0, 0, 220, 60
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Chyba!"
+FONT 8, "MS Shell Dlg"
+{
+ LTEXT "", IDS_ERR_USER_MSG2, 15, 5, 28, 20
+ LTEXT "", IDS_ERR_USER_MSG, 15, 5, 210, 8
+ CHECKBOX "Nabudúce toto dialógové okno nezo&brazova ", IDC_ERR_DONT_SHOW, 5, \
20, 210, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP + PUSHBUTTON L"&OK" IDOK, 105, \
40, 50, 14, WS_GROUP | WS_TABSTOP + PUSHBUTTON L"&Zru i " IDCANCEL, 160, 40, 50, \
14, WS_GROUP | WS_TABSTOP + PUSHBUTTON L"Án&o" IDYES, 105, 40, 50, 14, WS_GROUP | \
WS_TABSTOP + PUSHBUTTON L"&Nie" IDNO, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP
+}
+
+STRINGTABLE DISCARDABLE
+{
+    IDS_BYTES_FORMAT    "%ld bajtov"
+    IDS_TIME_INTERVAL_HOURS    " hod."
+    IDS_TIME_INTERVAL_MINUTES  " min."
+    IDS_TIME_INTERVAL_SECONDS  " s"
+}

Propchange: trunk/reactos/dll/win32/shlwapi/shlwapi_Sk.rc
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: trunk/reactos/dll/win32/shlwapi/string.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shlwapi/string.c?rev=39238&r1=39237&r2=39238&view=diff
 ==============================================================================
--- trunk/reactos/dll/win32/shlwapi/string.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shlwapi/string.c [iso-8859-1] Sat Jan 31 08:48:46 2009
@@ -1342,7 +1342,7 @@
 	    break;
 
 	  case STRRET_CSTR:
-	    lstrcpynA((LPSTR)dest, src->u.cStr, len);
+            lstrcpynA(dest, src->u.cStr, len);
 	    break;
 
 	  case STRRET_OFFSET:
@@ -1381,7 +1381,7 @@
 	switch (src->uType)
 	{
 	  case STRRET_WSTR:
-	    lstrcpynW((LPWSTR)dest, src->u.pOleStr, len);
+            lstrcpynW(dest, src->u.pOleStr, len);
 	    CoTaskMemFree(src->u.pOleStr);
 	    break;
 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic