Fixed HCR_GetExecuteCommandW() behavior with a class name (based on a
patch by Martin Fuchs).
Removed a couple of no longer used functions.
diff --git a/dlls/shell32/classes.c b/dlls/shell32/classes.c
index 6fba8a0..21f7572 100644
--- a/dlls/shell32/classes.c
+++ b/dlls/shell32/classes.c
@@ -114,67 +114,7 @@
}
-BOOL HCR_GetExecuteCommandW(LPCWSTR szClass, LPCWSTR szVerb, LPWSTR szDest, DWORD len)
-{
- static const WCHAR swShell[] = {'\\','s','h','e','l','l','\\',0};
- static const WCHAR swCommand[] = {'\\','c','o','m','m','a','n','d',0};
- WCHAR sTemp[MAX_PATH];
-
- TRACE("%s %s %p\n",debugstr_w(szClass), debugstr_w(szVerb), szDest);
-
- lstrcpyW(sTemp, szClass);
- lstrcatW(sTemp, swShell);
- lstrcatW(sTemp, szVerb);
- lstrcatW(sTemp, swCommand);
-
- if (ERROR_SUCCESS == SHGetValueW(HKEY_CLASSES_ROOT, sTemp, NULL, NULL, szDest, &len)) {
- TRACE("-- %s\n", debugstr_w(szDest) );
- return TRUE;
- }
- return FALSE;
-}
-
-BOOL HCR_GetExecuteCommandA(LPCSTR szClass, LPCSTR szVerb, LPSTR szDest, DWORD len)
-{
- char sTemp[MAX_PATH];
-
- TRACE("%s %s\n",szClass, szVerb );
-
- snprintf(sTemp, MAX_PATH, "%s\\shell\\%s\\command",szClass, szVerb);
-
- if (ERROR_SUCCESS == SHGetValueA(HKEY_CLASSES_ROOT, sTemp, NULL, NULL, szDest, &len)) {
- TRACE("-- %s\n", debugstr_a(szDest) );
- return TRUE;
- }
- return FALSE;
-}
-
-BOOL HCR_GetExecuteCommandExA( HKEY hkeyClass, LPCSTR szClass, LPCSTR szVerb, LPSTR szDest, DWORD len )
-{
- BOOL ret = FALSE;
-
- TRACE("%p %s %s\n", hkeyClass, szClass, szVerb );
-
- if (szClass)
- RegOpenKeyExA(hkeyClass,szClass,0,0x02000000,&hkeyClass);
-
- if (hkeyClass)
- {
- char sTemp[MAX_PATH];
-
- snprintf(sTemp, MAX_PATH, "shell\\%s\\command", szVerb);
-
- ret = (ERROR_SUCCESS == SHGetValueA(hkeyClass, sTemp, NULL, NULL, szDest, &len));
-
- if (szClass)
- RegCloseKey(hkeyClass);
- }
-
- TRACE("-- %s\n", szDest );
- return ret;
-}
-
-BOOL HCR_GetExecuteCommandExW( HKEY hkeyClass, LPCWSTR szClass, LPCWSTR szVerb, LPWSTR szDest, DWORD len )
+BOOL HCR_GetExecuteCommandW( HKEY hkeyClass, LPCWSTR szClass, LPCWSTR szVerb, LPWSTR szDest, DWORD len )
{
static const WCHAR swShell[] = {'\\','s','h','e','l','l','\\',0};
static const WCHAR swCommand[] = {'\\','c','o','m','m','a','n','d',0};
@@ -183,7 +123,7 @@
TRACE("%p %s %s %p\n", hkeyClass, debugstr_w(szClass), debugstr_w(szVerb), szDest);
if (szClass)
- RegOpenKeyExW(hkeyClass,szClass,0,0x02000000,&hkeyClass);
+ RegOpenKeyExW(HKEY_CLASSES_ROOT, szClass, 0, 0x02000000, &hkeyClass);
if (hkeyClass)
{