Paul Vriens : shell32/tests: Use A-functions to test on Win9x.

Alexandre Julliard julliard at winehq.org
Thu Jan 22 08:41:15 CST 2009


Module: wine
Branch: master
Commit: a0164a1e641b3d423e5748321a11ac71da1c6bba
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=a0164a1e641b3d423e5748321a11ac71da1c6bba

Author: Paul Vriens <Paul.Vriens.Wine at gmail.com>
Date:   Wed Jan 21 16:44:10 2009 +0100

shell32/tests: Use A-functions to test on Win9x.

---

 dlls/shell32/tests/shlfolder.c |   32 +++++++++++++++++++-------------
 1 files changed, 19 insertions(+), 13 deletions(-)

diff --git a/dlls/shell32/tests/shlfolder.c b/dlls/shell32/tests/shlfolder.c
index a396cf0..bad4bba 100644
--- a/dlls/shell32/tests/shlfolder.c
+++ b/dlls/shell32/tests/shlfolder.c
@@ -46,6 +46,7 @@ static HRESULT (WINAPI *pSHBindToParent)(LPCITEMIDLIST, REFIID, LPVOID*, LPCITEM
 static HRESULT (WINAPI *pSHGetFolderPathA)(HWND, int, HANDLE, DWORD, LPSTR);
 static HRESULT (WINAPI *pSHGetFolderPathAndSubDirA)(HWND, int, HANDLE, DWORD, LPCSTR, LPSTR);
 static BOOL (WINAPI *pSHGetPathFromIDListW)(LPCITEMIDLIST,LPWSTR);
+static BOOL (WINAPI *pSHGetSpecialFolderPathA)(HWND, LPSTR, int, BOOL);
 static BOOL (WINAPI *pSHGetSpecialFolderPathW)(HWND, LPWSTR, int, BOOL);
 static HRESULT (WINAPI *pStrRetToBufW)(STRRET*,LPCITEMIDLIST,LPWSTR,UINT);
 static LPITEMIDLIST (WINAPI *pILFindLastID)(LPCITEMIDLIST);
@@ -62,6 +63,7 @@ static void init_function_pointers(void)
     pSHGetFolderPathA = (void*)GetProcAddress(hmod, "SHGetFolderPathA");
     pSHGetFolderPathAndSubDirA = (void*)GetProcAddress(hmod, "SHGetFolderPathAndSubDirA");
     pSHGetPathFromIDListW = (void*)GetProcAddress(hmod, "SHGetPathFromIDListW");
+    pSHGetSpecialFolderPathA = (void*)GetProcAddress(hmod, "SHGetSpecialFolderPathA");
     pSHGetSpecialFolderPathW = (void*)GetProcAddress(hmod, "SHGetSpecialFolderPathW");
     pILFindLastID = (void *)GetProcAddress(hmod, (LPCSTR)16);
     pILFree = (void*)GetProcAddress(hmod, (LPSTR)155);
@@ -356,7 +358,7 @@ static void test_GetDisplayName(void)
     BOOL result;
     HRESULT hr;
     HANDLE hTestFile;
-    WCHAR wszTestFile[MAX_PATH], wszTestFile2[MAX_PATH], wszTestDir[MAX_PATH];
+    WCHAR wszTestFile[MAX_PATH], wszTestFile2[MAX_PATH];
     char szTestFile[MAX_PATH], szTestDir[MAX_PATH];
     DWORD attr;
     STRRET strret;
@@ -365,6 +367,7 @@ static void test_GetDisplayName(void)
     SHITEMID emptyitem = { 0, { 0 } };
     LPITEMIDLIST pidlTestFile, pidlEmpty = (LPITEMIDLIST)&emptyitem;
     LPCITEMIDLIST pidlLast;
+    static const CHAR szFileName[] = "winetest.foo";
     static const WCHAR wszFileName[] = { 'w','i','n','e','t','e','s','t','.','f','o','o',0 };
     static const WCHAR wszDirName[] = { 'w','i','n','e','t','e','s','t',0 };
 
@@ -376,17 +379,18 @@ static void test_GetDisplayName(void)
      * no functional difference in this respect.
      */
 
-    if(!pSHGetSpecialFolderPathW) return;
+    if(!pSHGetSpecialFolderPathA) {
+        win_skip("SHGetSpecialFolderPathA is not available\n");
+        return;
+    }
 
     /* First creating a directory in MyDocuments and a file in this directory. */
-    result = pSHGetSpecialFolderPathW(NULL, wszTestDir, CSIDL_PERSONAL, FALSE);
-    ok(result, "SHGetSpecialFolderPathW failed! Last error: %u\n", GetLastError());
+    result = pSHGetSpecialFolderPathA(NULL, szTestDir, CSIDL_PERSONAL, FALSE);
+    ok(result, "SHGetSpecialFolderPathA failed! Last error: %u\n", GetLastError());
     if (!result) return;
 
-    myPathAddBackslashW(wszTestDir);
-    lstrcatW(wszTestDir, wszDirName);
     /* Use ANSI file functions so this works on Windows 9x */
-    WideCharToMultiByte(CP_ACP, 0, wszTestDir, -1, szTestDir, MAX_PATH, 0, 0);
+    lstrcatA(szTestDir, "\\winetest");
     CreateDirectoryA(szTestDir, NULL);
     attr=GetFileAttributesA(szTestDir);
     if (attr == INVALID_FILE_ATTRIBUTES || !(attr & FILE_ATTRIBUTE_DIRECTORY))
@@ -395,11 +399,9 @@ static void test_GetDisplayName(void)
         return;
     }
 
-    lstrcpyW(wszTestFile, wszTestDir);
-    myPathAddBackslashW(wszTestFile);
-    lstrcatW(wszTestFile, wszFileName);
-    WideCharToMultiByte(CP_ACP, 0, wszTestFile, -1, szTestFile, MAX_PATH, 0, 0);
-
+    lstrcpyA(szTestFile, szTestDir);
+    lstrcatA(szTestFile, "\\");
+    lstrcatA(szTestFile, szFileName);
     hTestFile = CreateFileA(szTestFile, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, NULL);
     ok((hTestFile != INVALID_HANDLE_VALUE), "CreateFileA failed! Last error: %u\n", GetLastError());
     if (hTestFile == INVALID_HANDLE_VALUE) return;
@@ -410,6 +412,8 @@ static void test_GetDisplayName(void)
     ok(SUCCEEDED(hr), "SHGetDesktopFolder failed! hr = %08x\n", hr);
     if (FAILED(hr)) return;
 
+    MultiByteToWideChar(CP_ACP, 0, szTestFile, -1, wszTestFile, MAX_PATH);
+
     hr = IShellFolder_ParseDisplayName(psfDesktop, NULL, NULL, wszTestFile, NULL, &pidlTestFile, NULL);
     ok(SUCCEEDED(hr), "Desktop->ParseDisplayName failed! hr = %08x\n", hr);
     if (FAILED(hr)) {
@@ -435,7 +439,9 @@ static void test_GetDisplayName(void)
 
     if(!pSHBindToParent)
     {
-        skip("SHBindToParent is missing\n");
+        win_skip("SHBindToParent is missing\n");
+        DeleteFileA(szTestFile);
+        RemoveDirectoryA(szTestDir);
         return;
     }
   




More information about the wine-cvs mailing list