diff --git a/dlls/mapi32/tests/imalloc.c b/dlls/mapi32/tests/imalloc.c index f882a20d7e8..63c66f27747 100644 --- a/dlls/mapi32/tests/imalloc.c +++ b/dlls/mapi32/tests/imalloc.c @@ -87,12 +87,28 @@ static void test_IMalloc(void) START_TEST(imalloc) { + SCODE ret; + hMapi32 = LoadLibraryA("mapi32.dll"); pScInitMapiUtil = (void*)GetProcAddress(hMapi32, "ScInitMapiUtil@4"); if (!pScInitMapiUtil) + { + skip("ScInitMapiUtil is not available\n"); + FreeLibrary(hMapi32); return; - pScInitMapiUtil(0); + } + + SetLastError(0xdeadbeef); + ret = pScInitMapiUtil(0); + if ((ret != S_OK) && (GetLastError() == ERROR_PROC_NOT_FOUND)) + { + skip("ScInitMapiUtil is not implemented\n"); + FreeLibrary(hMapi32); + return; + } test_IMalloc(); + + FreeLibrary(hMapi32); } diff --git a/dlls/mapi32/tests/prop.c b/dlls/mapi32/tests/prop.c index ac397ffd343..d78eb3697f3 100644 --- a/dlls/mapi32/tests/prop.c +++ b/dlls/mapi32/tests/prop.c @@ -1342,10 +1342,22 @@ static void test_IProp(void) START_TEST(prop) { - if(!InitFuncPtrs()) - return; + SCODE ret; - pScInitMapiUtil(0); + if(!InitFuncPtrs()) + { + skip("Needed functions are not available\n"); + return; + } + + SetLastError(0xdeadbeef); + ret = pScInitMapiUtil(0); + if ((ret != S_OK) && (GetLastError() == ERROR_PROC_NOT_FOUND)) + { + skip("ScInitMapiUtil is not implemented\n"); + FreeLibrary(hMapi32); + return; + } test_PropCopyMore(); test_UlPropSize(); diff --git a/dlls/mapi32/tests/util.c b/dlls/mapi32/tests/util.c index b2d156bf238..2ae42f1c814 100644 --- a/dlls/mapi32/tests/util.c +++ b/dlls/mapi32/tests/util.c @@ -169,12 +169,27 @@ static void test_IsBadBoundedStringPtr(void) START_TEST(util) { + SCODE ret; + hMapi32 = LoadLibraryA("mapi32.dll"); pScInitMapiUtil = (void*)GetProcAddress(hMapi32, "ScInitMapiUtil@4"); + if (!pScInitMapiUtil) + { + skip("ScInitMapiUtil is not available\n"); + FreeLibrary(hMapi32); return; - pScInitMapiUtil(0); + } + + SetLastError(0xdeadbeef); + ret = pScInitMapiUtil(0); + if ((ret != S_OK) && (GetLastError() == ERROR_PROC_NOT_FOUND)) + { + skip("ScInitMapiUtil is not implemented\n"); + FreeLibrary(hMapi32); + return; + } test_SwapPword(); test_SwapPlong(); @@ -183,4 +198,6 @@ START_TEST(util) test_UlFromSzHex(); test_CbOfEncoded(); test_IsBadBoundedStringPtr(); + + FreeLibrary(hMapi32); }