Change parameter in SHGetSpecialFolderPathA/W to int as documented in MSDN. Add some more definitions and move SHGetDesktopFolder() from wine/obj_shellfolder.h to here.
diff --git a/dlls/shell32/shellpath.c b/dlls/shell32/shellpath.c index fa3b276..3f5c483 100644 --- a/dlls/shell32/shellpath.c +++ b/dlls/shell32/shellpath.c
@@ -1014,7 +1014,7 @@ BOOL WINAPI SHGetSpecialFolderPathA ( HWND hwndOwner, LPSTR szPath, - DWORD csidl, + int csidl, BOOL bCreate) { CHAR szValueName[MAX_PATH], szDefaultPath[MAX_PATH], szBuildPath[MAX_PATH]; @@ -1024,7 +1024,7 @@ DWORD folder = csidl & CSIDL_FOLDER_MASK; CHAR *p; - TRACE("%p,%p,csidl=%lu,0x%04x\n", hwndOwner,szPath,csidl,bCreate); + TRACE("%p,%p,csidl=%d,0x%04x\n", hwndOwner,szPath,csidl,bCreate); if ((folder >= sizeof(CSIDL_Data) / sizeof(CSIDL_Data[0])) || (CSIDL_Data[folder].hRootKey == 0)) @@ -1163,7 +1163,7 @@ BOOL WINAPI SHGetSpecialFolderPathW ( HWND hwndOwner, LPWSTR szPath, - DWORD csidl, + int csidl, BOOL bCreate) { char szTemp[MAX_PATH]; @@ -1174,7 +1174,7 @@ szPath[MAX_PATH-1] = 0; } - TRACE("%p,%p,csidl=%lu,0x%04x\n", hwndOwner,szPath,csidl,bCreate); + TRACE("%p,%p,csidl=%d,0x%04x\n", hwndOwner,szPath,csidl,bCreate); return TRUE; } @@ -1185,7 +1185,7 @@ BOOL WINAPI SHGetSpecialFolderPathAW ( HWND hwndOwner, LPVOID szPath, - DWORD csidl, + int csidl, BOOL bCreate) {
diff --git a/include/shlobj.h b/include/shlobj.h index ddf5c2b..622359b 100644 --- a/include/shlobj.h +++ b/include/shlobj.h
@@ -320,6 +320,7 @@ #define BIF_RETURNFSANCESTORS 0x0008 #define BIF_EDITBOX 0x0010 #define BIF_VALIDATE 0x0020 +#define BIF_NEWDIALOGSTYLE 0x0040 #define BIF_BROWSEFORCOMPUTER 0x1000 #define BIF_BROWSEFORPRINTER 0x2000 @@ -371,6 +372,9 @@ #define SHDID_NET_SHARE 15 #define SHDID_NET_RESTOFNET 16 #define SHDID_NET_OTHER 17 +#define SHDID_COMPUTER_IMAGING 18 +#define SHDID_COMPUTER_AUDIO 19 +#define SHDID_COMPUTER_SHAREDDOCS 20 typedef struct _SHDESCRIPTIONID { DWORD dwDescriptionId; @@ -381,12 +385,10 @@ HRESULT WINAPI SHGetDataFromIDListW(LPSHELLFOLDER psf, LPCITEMIDLIST pidl, int nFormat, LPVOID pv, int cb); #define SHGetDataFromIDList WINELIB_NAME_AW(SHGetDataFromIDList) -BOOL WINAPI SHGetSpecialFolderPathA (HWND hwndOwner,LPSTR szPath,DWORD csidl,BOOL bCreate); -BOOL WINAPI SHGetSpecialFolderPathW (HWND hwndOwner,LPWSTR szPath,DWORD csidl,BOOL bCreate); +BOOL WINAPI SHGetSpecialFolderPathA (HWND hwndOwner, LPSTR szPath, int nFolder, BOOL bCreate); +BOOL WINAPI SHGetSpecialFolderPathW (HWND hwndOwner, LPWSTR szPath, int nFolder, BOOL bCreate); #define SHGetSpecialFolderPath WINELIB_NAME_AW(SHGetSpecialFolderPath) -HRESULT WINAPI SHGetSpecialFolderLocation(HWND hwndOwner, INT nFolder, LPITEMIDLIST * ppidl); - /**************************************************************************** * shlview structures */ @@ -555,7 +557,8 @@ /**************************************************************************** * SHGetSpecialFolderLocation API */ -HRESULT WINAPI SHGetSpecialFolderLocation(HWND, INT, LPITEMIDLIST *); +HRESULT WINAPI SHGetSpecialFolderLocation(HWND hwndOwner, int nFolder, LPITEMIDLIST * ppidl); +HRESULT WINAPI SHGetFolderLocation(HWND hwndOwner, int nFolder, HANDLE hToken, DWORD dwReserved, LPITEMIDLIST *ppidl); #define CSIDL_DESKTOP 0x0000 #define CSIDL_INTERNET 0x0001 @@ -624,6 +627,11 @@ #define CSIDL_FLAG_MASK 0xff00 /**************************************************************************** + * SHGetDesktopFolder API + */ +DWORD WINAPI SHGetDesktopFolder(IShellFolder * *); + +/**************************************************************************** * SHBindToParent API */ HRESULT WINAPI SHBindToParent(LPCITEMIDLIST pidl, REFIID riid, LPVOID *ppv, LPCITEMIDLIST *ppidlLast);
diff --git a/include/wine/obj_shellfolder.h b/include/wine/obj_shellfolder.h index 9ef8c74..15fe09a 100644 --- a/include/wine/obj_shellfolder.h +++ b/include/wine/obj_shellfolder.h
@@ -33,15 +33,6 @@ DEFINE_GUID(IID_IPersistFolder3, 0xcef04fdf, 0xfe72, 0x11d2, 0x87, 0xa5, 0x0, 0xc0, 0x4f, 0x68, 0x37, 0xcf); typedef struct IPersistFolder3 IPersistFolder3, *LPPERSISTFOLDER3; - -/************************************************************************ - * Desktopfolder - */ - -extern IShellFolder * pdesktopfolder; - -DWORD WINAPI SHGetDesktopFolder(IShellFolder * *); - /* GetDetailsEx */ #define PID_FINDDATA 0 #define PID_NETRESOURCE 1