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