dlls/shlwapi/tests/string.c - Windows 95 has no StrRetToBSTR

Jakob Eriksson jakov at vmlinux.org
Tue May 4 05:38:29 CDT 2004



Windows 95 has no StrRetToBSTR, add dynamic lookup to avoid blocking
dialog when running winetest.exe


-------------- next part --------------
Index: string.c
===================================================================
RCS file: /home/wine/wine/dlls/shlwapi/tests/string.c,v
retrieving revision 1.5
diff -u -r1.5 string.c
--- string.c	17 Feb 2004 20:24:50 -0000	1.5
+++ string.c	4 May 2004 10:35:04 -0000
@@ -596,16 +596,23 @@
 
 static void test_StrRetToBSTR(void)
 {
+    HMODULE module;
+    HRESULT (*ptr_StrRetToBSTR) (STRRET*, void*, BSTR*);
     static const WCHAR szTestW[] = { 'T','e','s','t','\0' };
     ITEMIDLIST iidl[10];
     BSTR bstr;
     STRRET strret;
     HRESULT ret;
 
+    module = GetModuleHandleA("shlwapi");
+    if (!module) return;
+    ptr_StrRetToBSTR = GetProcAddress(module, "StrRetToBSTR");
+    if (!ptr_StrRetToBSTR) return;
+
     strret.uType = STRRET_WSTR;
     strret.u.pOleStr = CoDupStrW("Test");
     bstr = 0;
-    ret = StrRetToBSTR(&strret, NULL, &bstr);
+    ret = ptr_StrRetToBSTR(&strret, NULL, &bstr);
     ok(ret == S_OK && bstr && !strcmpW(bstr, szTestW),
        "STRRET_WSTR: dup failed, ret=0x%08lx, bstr %p\n", ret, bstr);
     if (bstr)
@@ -613,7 +620,7 @@
 
     strret.uType = STRRET_CSTR;
     lstrcpyA(strret.u.cStr, "Test");
-    ret = StrRetToBSTR(&strret, NULL, &bstr);
+    ret = ptr_StrRetToBSTR(&strret, NULL, &bstr);
     ok(ret == S_OK && bstr && !strcmpW(bstr, szTestW),
        "STRRET_CSTR: dup failed, ret=0x%08lx, bstr %p\n", ret, bstr);
     if (bstr)
@@ -622,7 +629,7 @@
     strret.uType = STRRET_OFFSET;
     strret.u.uOffset = 1;
     strcpy((char*)&iidl, " Test");
-    ret = StrRetToBSTR(&strret, iidl, &bstr);
+    ret = ptr_StrRetToBSTR(&strret, iidl, &bstr);
     ok(ret == S_OK && bstr && !strcmpW(bstr, szTestW),
        "STRRET_OFFSET: dup failed, ret=0x%08lx, bstr %p\n", ret, bstr);
     if (bstr)


More information about the wine-patches mailing list