diff --git a/dlls/shell32/shellpath.c b/dlls/shell32/shellpath.c index a7fbcb76eaa..fd60bcaf614 100644 --- a/dlls/shell32/shellpath.c +++ b/dlls/shell32/shellpath.c @@ -14,6 +14,7 @@ #include "shlobj.h" #include "shell32_main.h" +#include "windef.h" DEFAULT_DEBUG_CHANNEL(shell) @@ -1000,3 +1001,112 @@ BOOL WINAPI SHGetSpecialFolderPathAW ( return SHGetSpecialFolderPathW (hwndOwner, szPath, csidl, bCreate); return SHGetSpecialFolderPathA (hwndOwner, szPath, csidl, bCreate); } + +/* PathRemoveBackslash + * + * If the path ends in a backslash it is replaced by a NULL + * and the address of the NULL is returned + * Otherwise + * the address of the last character is returned. + * + */ + +LPSTR WINAPI PathRemoveBackslashA( + LPSTR lpPath + ) +{ + LPSTR temp = lpPath; + LPSTR prev = lpPath; + + while (*temp) + { + prev = temp++; + } + if ( *prev == (CHAR)'\\') + { + *prev = (CHAR)'\0'; + } + + return prev; +} + +LPWSTR WINAPI PathRemoveBackslashW( + LPWSTR lpPath + ) +{ + FIXME("(%p),stub!\n", lpPath); + return lpPath; +} + +/* + shlwapi functions that have found their way in because most of + shlwapi is unimplemented and doesn't have a home. + + FIXME: move to a more appropriate file( when one exists ) +*/ + + /* SHGetValue: Gets a value from the registry */ + +DWORD WINAPI SHGetValueA( + HKEY hkey, + LPCSTR pSubKey, + LPCSTR pValue, + LPDWORD pwType, + LPVOID pvData, + LPDWORD pbData + ) +{ + FIXME("(%p),stub!\n", pSubKey); + + return ERROR_SUCCESS; /* return success */ +} + +DWORD WINAPI SHGetValueW( + HKEY hkey, + LPCWSTR pSubKey, + LPCWSTR pValue, + LPDWORD pwType, + LPVOID pvData, + LPDWORD pbData + ) +{ + FIXME("(%p),stub!\n", pSubKey); + + return ERROR_SUCCESS; /* return success */ +} + +/* gets a user-specific registry value. */ + +LONG WINAPI SHRegGetUSValueA( + LPCSTR pSubKey, + LPCSTR pValue, + LPDWORD pwType, + LPVOID pvData, + LPDWORD pbData, + BOOL fIgnoreHKCU, + LPVOID pDefaultData, + DWORD wDefaultDataSize + ) +{ + FIXME("(%p),stub!\n", pSubKey); + + return ERROR_SUCCESS; /* return success */ +} + +LONG WINAPI SHRegGetUSValueW( + LPCWSTR pSubKey, + LPCWSTR pValue, + LPDWORD pwType, + LPVOID pvData, + LPDWORD pbData, + BOOL flagIgnoreHKCU, + LPVOID pDefaultData, + DWORD wDefaultDataSize + ) +{ + FIXME("(%p),stub!\n", pSubKey); + + return ERROR_SUCCESS; /* return success */ +} + + diff --git a/dlls/shell32/shlwapi.spec b/dlls/shell32/shlwapi.spec index f149fdb2d7b..f049d258c0d 100644 --- a/dlls/shell32/shlwapi.spec +++ b/dlls/shell32/shlwapi.spec @@ -243,8 +243,8 @@ type win32 240 stub PathRelativePathToW 241 stub PathRemoveArgsA 242 stub PathRemoveArgsW -243 stub PathRemoveBackslashA -244 stub PathRemoveBackslashW +243 stdcall PathRemoveBackslashA (ptr) PathRemoveBackslashA +244 stdcall PathRemoveBackslashW (ptr) PathRemoveBackslashW 245 stub PathRemoveBlanksA 246 stub PathRemoveBlanksW 247 stub PathRemoveExtensionA @@ -281,8 +281,8 @@ type win32 278 stub SHEnumValueA 279 stub SHEnumValueW 280 stub SHGetInverseCMAP -281 stub SHGetValueA -282 stub SHGetValueW +281 stdcall SHGetValueA ( long ptr ptr ptr ptr ptr ) SHGetValueA +282 stdcall SHGetValueW ( long ptr ptr ptr ptr ptr ) SHGetValueW 283 stub SHIsLowMemoryMachine 284 stub SHOpenRegStreamA 285 stub SHOpenRegStreamW @@ -303,8 +303,8 @@ type win32 300 stub SHRegEnumUSValueW 301 stub SHRegGetBoolUSValueA 302 stub SHRegGetBoolUSValueW -303 stub SHRegGetUSValueA -304 stub SHRegGetUSValueW +303 stdcall SHRegGetUSValueA ( ptr ptr ptr ptr ptr long ptr long ) SHRegGetUSValueA +304 stdcall SHRegGetUSValueW ( ptr ptr ptr ptr ptr long ptr long ) SHRegGetUSValueW 305 stub SHRegOpenUSKeyA 306 stub SHRegOpenUSKeyW 307 stub SHRegQueryInfoUSKeyA