Mike McCormack : shell32: Fix test compilation with MSVC6.

Alexandre Julliard julliard at wine.codeweavers.com
Wed Aug 9 10:37:19 CDT 2006


Module: wine
Branch: refs/heads/master
Commit: 1cc186ba8167c6f7d2c95adf7e50673c35efae60
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=1cc186ba8167c6f7d2c95adf7e50673c35efae60

Author: Mike McCormack <mike at codeweavers.com>
Date:   Wed Aug  9 19:31:26 2006 +0900

shell32: Fix test compilation with MSVC6.

---

 dlls/shell32/tests/shelllink.c |   44 +++++++++++++++++++++++++++++-----------
 1 files changed, 32 insertions(+), 12 deletions(-)

diff --git a/dlls/shell32/tests/shelllink.c b/dlls/shell32/tests/shelllink.c
index c774dab..a6cba36 100644
--- a/dlls/shell32/tests/shelllink.c
+++ b/dlls/shell32/tests/shelllink.c
@@ -24,10 +24,7 @@
 
 #define COBJMACROS
 
-#include <stdarg.h>
-#include <stdio.h>
-#include "windef.h"
-#include "winbase.h"
+#include <windows.h>
 #include "shlguid.h"
 #include "shobjidl.h"
 #include "shlobj.h"
@@ -35,6 +32,25 @@ #include "wine/test.h"
 
 #include "shell32_test.h"
 
+#ifndef _MSC_VER
+#define DBH(x)  (x).dbh
+#else
+#define DBH(x)  (x)
+#endif
+
+typedef void (WINAPI *fnILFree)(LPITEMIDLIST);
+typedef BOOL (WINAPI *fnILIsEqual)(LPCITEMIDLIST, LPCITEMIDLIST);
+typedef HRESULT (WINAPI *fnSHILCreateFromPath)(LPCWSTR, LPITEMIDLIST *,DWORD*);
+
+static fnILFree pILFree;
+static fnILIsEqual pILIsEqual;
+static fnSHILCreateFromPath pSHILCreateFromPath;
+
+static const GUID _IID_IShellLinkDataList = {
+    0x45e2b4ae, 0xb1c3, 0x11d0,
+    { 0xb9, 0x2f, 0x00, 0xa0, 0xc9, 0x03, 0x12, 0xe1 }
+};
+
 static const WCHAR lnkfile[]= { 'C',':','\\','t','e','s','t','.','l','n','k',0 };
 static const WCHAR notafile[]= { 'C',':','\\','n','o','n','e','x','i','s','t','e','n','t','\\','f','i','l','e',0 };
 
@@ -72,7 +88,7 @@ static LPITEMIDLIST path_to_pidl(const c
         pathW=HeapAlloc(GetProcessHeap(), 0, len*sizeof(WCHAR));
         MultiByteToWideChar(CP_ACP, 0, path, -1, pathW, len);
 
-        r=SHILCreateFromPath(pathW, &pidl, NULL);
+        r=pSHILCreateFromPath(pathW, &pidl, NULL);
         todo_wine {
         ok(SUCCEEDED(r), "SHILCreateFromPath failed (0x%08lx)\n", r);
         }
@@ -188,11 +204,11 @@ static void test_get_set(void)
         tmp_pidl=NULL;
         r = IShellLinkA_GetIDList(sl, &tmp_pidl);
         ok(SUCCEEDED(r), "GetIDList failed (0x%08lx)\n", r);
-        ok(tmp_pidl && ILIsEqual(pidl, tmp_pidl),
+        ok(tmp_pidl && pILIsEqual(pidl, tmp_pidl),
            "GetIDList returned an incorrect pidl\n");
 
         /* tmp_pidl is owned by IShellLink so we don't free it */
-        ILFree(pidl);
+        pILFree(pidl);
 
         strcpy(buffer,"garbage");
         r = IShellLinkA_GetPath(sl, buffer, sizeof(buffer), NULL, SLGP_RAWPATH);
@@ -410,7 +426,7 @@ static void check_lnk_(int line, const W
         LPITEMIDLIST pidl=NULL;
         r = IShellLinkA_GetIDList(sl, &pidl);
         lok(SUCCEEDED(r), "GetIDList failed (0x%08lx)\n", r);
-        lok(ILIsEqual(pidl, desc->pidl),
+        lok(pILIsEqual(pidl, desc->pidl),
            "GetIDList returned an incorrect pidl\n");
     }
     if (desc->showcmd)
@@ -468,7 +484,6 @@ static void test_load_save(void)
     desc.icon="";
     check_lnk(lnkfile, &desc);
 
-
     /* Point a .lnk file to nonexistent files */
     desc.description="";
     desc.workdir="c:\\Nonexitent\\work\\directory";
@@ -489,7 +504,6 @@ static void test_load_save(void)
     if (p)
         *p='\0';
 
-
     /* Overwrite the existing lnk file and point it to existing files */
     desc.description="test 2";
     desc.workdir=mydir;
@@ -541,7 +555,7 @@ static void test_datalink(void)
     if (!sl)
         return;
 
-    r = IShellLinkW_QueryInterface( sl, &IID_IShellLinkDataList, (LPVOID*) &dl );
+    r = IShellLinkW_QueryInterface( sl, &_IID_IShellLinkDataList, (LPVOID*) &dl );
     ok(r == S_OK, "no datalink interface\n");
 
     if (!dl)
@@ -575,7 +589,7 @@ static void test_datalink(void)
     r = dl->lpVtbl->CopyDataBlock( dl, EXP_DARWIN_ID_SIG, (LPVOID*) &dar );
     ok( r == S_OK, "CopyDataBlock failed\n");
 
-    ok( dar && dar->dbh.dwSignature == EXP_DARWIN_ID_SIG, "signature wrong\n");
+    ok( dar && DBH(*dar).dwSignature == EXP_DARWIN_ID_SIG, "signature wrong\n");
     ok( dar && 0==lstrcmpW(dar->szwDarwinID, comp ), "signature wrong\n");
 
     LocalFree( dar );
@@ -587,6 +601,12 @@ static void test_datalink(void)
 START_TEST(shelllink)
 {
     HRESULT r;
+    HMODULE hmod;
+
+    hmod = GetModuleHandle("shell32");
+    pILFree = (fnILFree) GetProcAddress(hmod, (LPSTR)155);
+    pILIsEqual = (fnILIsEqual) GetProcAddress(hmod, (LPSTR)21);
+    pSHILCreateFromPath = (fnSHILCreateFromPath) GetProcAddress(hmod, (LPSTR)28);
 
     r = CoInitialize(NULL);
     ok(SUCCEEDED(r), "CoInitialize failed (0x%08lx)\n", r);




More information about the wine-cvs mailing list