shell32/tests: Add a test for SHGetSetFolderCustomSettings.
Signed-off-by: Louis Lenders <xerox.xerox2000x@gmail.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
a910526907
commit
1f42005b17
|
@ -65,6 +65,7 @@ static HRESULT (WINAPI *pSHGetItemFromObject)(IUnknown*,REFIID,void**);
|
||||||
static BOOL (WINAPI *pIsWow64Process)(HANDLE, PBOOL);
|
static BOOL (WINAPI *pIsWow64Process)(HANDLE, PBOOL);
|
||||||
static HRESULT (WINAPI *pSHCreateDefaultContextMenu)(const DEFCONTEXTMENU*,REFIID,void**);
|
static HRESULT (WINAPI *pSHCreateDefaultContextMenu)(const DEFCONTEXTMENU*,REFIID,void**);
|
||||||
static BOOL (WINAPI *pSHGetPathFromIDListEx)(PCIDLIST_ABSOLUTE,WCHAR*,DWORD,GPFIDL_FLAGS);
|
static BOOL (WINAPI *pSHGetPathFromIDListEx)(PCIDLIST_ABSOLUTE,WCHAR*,DWORD,GPFIDL_FLAGS);
|
||||||
|
static HRESULT (WINAPI *pSHGetSetFolderCustomSettings)(LPSHFOLDERCUSTOMSETTINGS,PCWSTR,DWORD);
|
||||||
|
|
||||||
static WCHAR *make_wstr(const char *str)
|
static WCHAR *make_wstr(const char *str)
|
||||||
{
|
{
|
||||||
|
@ -118,6 +119,7 @@ static void init_function_pointers(void)
|
||||||
MAKEFUNC(SHGetItemFromObject);
|
MAKEFUNC(SHGetItemFromObject);
|
||||||
MAKEFUNC(SHCreateDefaultContextMenu);
|
MAKEFUNC(SHCreateDefaultContextMenu);
|
||||||
MAKEFUNC(SHGetPathFromIDListEx);
|
MAKEFUNC(SHGetPathFromIDListEx);
|
||||||
|
MAKEFUNC(SHGetSetFolderCustomSettings);
|
||||||
#undef MAKEFUNC
|
#undef MAKEFUNC
|
||||||
|
|
||||||
/* test named exports */
|
/* test named exports */
|
||||||
|
@ -5246,6 +5248,58 @@ todo_wine
|
||||||
IShellFolder_Release(desktop);
|
IShellFolder_Release(desktop);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void test_SHGetSetFolderCustomSettings(void)
|
||||||
|
{
|
||||||
|
HRESULT hr;
|
||||||
|
SHFOLDERCUSTOMSETTINGS fcs;
|
||||||
|
WCHAR pathW[MAX_PATH];
|
||||||
|
WCHAR bufferW[MAX_PATH];
|
||||||
|
WCHAR iconpathW[MAX_PATH];
|
||||||
|
static const WCHAR somedirW[] = {'s','o','m','e','_','d','i','r',0};
|
||||||
|
static const WCHAR iconW[] = {'\\','s','o','m','e','_','i','c','o','n','.','i','c','o',0};
|
||||||
|
static const WCHAR desktop_iniW[] = {'\\','D','e','s','k','t','o','p','.','i','n','i',0};
|
||||||
|
|
||||||
|
if (!pSHGetSetFolderCustomSettings)
|
||||||
|
{
|
||||||
|
win_skip("SHGetSetFolderCustomSetting not exported by name (only by ordinal) for version XP/win2003\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
GetTempPathW(MAX_PATH, pathW);
|
||||||
|
lstrcatW(pathW, somedirW);
|
||||||
|
CreateDirectoryW(pathW, NULL);
|
||||||
|
|
||||||
|
lstrcpyW(iconpathW, pathW);
|
||||||
|
lstrcatW(iconpathW, iconW);
|
||||||
|
|
||||||
|
memset(&fcs, 0, sizeof(fcs));
|
||||||
|
fcs.dwSize = sizeof(fcs);
|
||||||
|
fcs.dwMask = FCSM_ICONFILE;
|
||||||
|
fcs.pszIconFile = iconpathW;
|
||||||
|
|
||||||
|
hr = pSHGetSetFolderCustomSettings(&fcs, pathW, FCS_FORCEWRITE); /*creates and writes to a Desktop.ini*/
|
||||||
|
todo_wine ok(hr == S_OK, "Expected S_OK, got %#x\n", hr);
|
||||||
|
|
||||||
|
memset(&fcs, 0, sizeof(fcs));
|
||||||
|
fcs.dwSize = sizeof(fcs);
|
||||||
|
fcs.dwMask = FCSM_ICONFILE;
|
||||||
|
fcs.cchIconFile = MAX_PATH;
|
||||||
|
fcs.pszIconFile = bufferW;
|
||||||
|
bufferW[0] = 0;
|
||||||
|
|
||||||
|
hr = pSHGetSetFolderCustomSettings(&fcs, pathW, FCS_READ);
|
||||||
|
todo_wine ok(hr == S_OK, "Expected S_OK, got %#x\n", hr);
|
||||||
|
todo_wine ok(!lstrcmpiW(iconpathW, fcs.pszIconFile), "Expected %s, got %s\n", wine_dbgstr_w(iconpathW), wine_dbgstr_w(fcs.pszIconFile));
|
||||||
|
|
||||||
|
hr = pSHGetSetFolderCustomSettings(&fcs, NULL, FCS_READ);
|
||||||
|
todo_wine ok(hr == E_FAIL, "Expected E_FAIL, got %#x\n", hr);
|
||||||
|
|
||||||
|
lstrcpyW(bufferW, pathW);
|
||||||
|
lstrcatW(bufferW, desktop_iniW);
|
||||||
|
DeleteFileW(bufferW);
|
||||||
|
RemoveDirectoryW(pathW);
|
||||||
|
}
|
||||||
|
|
||||||
START_TEST(shlfolder)
|
START_TEST(shlfolder)
|
||||||
{
|
{
|
||||||
init_function_pointers();
|
init_function_pointers();
|
||||||
|
@ -5288,6 +5342,7 @@ START_TEST(shlfolder)
|
||||||
test_GetDefaultColumn();
|
test_GetDefaultColumn();
|
||||||
test_GetDefaultSearchGUID();
|
test_GetDefaultSearchGUID();
|
||||||
test_SHLimitInputEdit();
|
test_SHLimitInputEdit();
|
||||||
|
test_SHGetSetFolderCustomSettings();
|
||||||
|
|
||||||
OleUninitialize();
|
OleUninitialize();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1490,6 +1490,7 @@ int WINAPI SHCreateDirectoryExW(HWND, LPCWSTR, LPSECURITY_ATTRIBUTES);
|
||||||
#define FCSM_LOGO 0x00000020
|
#define FCSM_LOGO 0x00000020
|
||||||
#define FCSM_FLAGS 0x00000040
|
#define FCSM_FLAGS 0x00000040
|
||||||
|
|
||||||
|
#include <pshpack8.h>
|
||||||
typedef struct {
|
typedef struct {
|
||||||
DWORD dwSize;
|
DWORD dwSize;
|
||||||
DWORD dwMask;
|
DWORD dwMask;
|
||||||
|
@ -1507,6 +1508,7 @@ typedef struct {
|
||||||
LPWSTR pszLogo;
|
LPWSTR pszLogo;
|
||||||
DWORD cchLogo;
|
DWORD cchLogo;
|
||||||
} SHFOLDERCUSTOMSETTINGS, *LPSHFOLDERCUSTOMSETTINGS;
|
} SHFOLDERCUSTOMSETTINGS, *LPSHFOLDERCUSTOMSETTINGS;
|
||||||
|
#include <poppack.h>
|
||||||
|
|
||||||
HRESULT WINAPI SHGetSetFolderCustomSettings(LPSHFOLDERCUSTOMSETTINGS pfcs, PCWSTR pszPath, DWORD dwReadWrite);
|
HRESULT WINAPI SHGetSetFolderCustomSettings(LPSHFOLDERCUSTOMSETTINGS pfcs, PCWSTR pszPath, DWORD dwReadWrite);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue