shell32/tests: Run tests again on NT4.

This commit is contained in:
Paul Vriens 2009-11-11 09:09:29 +01:00 committed by Alexandre Julliard
parent 007586ea29
commit 8d5e5e74a1
1 changed files with 21 additions and 2 deletions

View File

@ -59,6 +59,16 @@
#define DDE_TEST_NUMMASK 0x0000ffff #define DDE_TEST_NUMMASK 0x0000ffff
static BOOL (WINAPI *pSHGetSpecialFolderPathA)(HWND, LPSTR, int, BOOL);
static void init_function_pointers(void)
{
HMODULE hmod;
hmod = GetModuleHandleA("shell32.dll");
pSHGetSpecialFolderPathA = (void*)GetProcAddress(hmod, "SHGetSpecialFolderPathA");
}
static HDDEDATA CALLBACK DdeCallback(UINT type, UINT format, HCONV hConv, HSZ hsz1, HSZ hsz2, static HDDEDATA CALLBACK DdeCallback(UINT type, UINT format, HCONV hConv, HSZ hsz1, HSZ hsz2,
HDDEDATA hDDEData, ULONG_PTR data1, ULONG_PTR data2) HDDEDATA hDDEData, ULONG_PTR data1, ULONG_PTR data2)
{ {
@ -233,6 +243,9 @@ static void CheckFileExistsInProgramGroups(const char *nameToCheck, int shouldEx
DWORD attributes; DWORD attributes;
int len; int len;
if (!pSHGetSpecialFolderPathA)
return;
path = HeapAlloc(GetProcessHeap(), 0, MAX_PATH); path = HeapAlloc(GetProcessHeap(), 0, MAX_PATH);
if (path != NULL) if (path != NULL)
{ {
@ -243,13 +256,13 @@ static void CheckFileExistsInProgramGroups(const char *nameToCheck, int shouldEx
if (testParams & DDE_TEST_COMMON) if (testParams & DDE_TEST_COMMON)
{ {
specialFolder = CSIDL_COMMON_PROGRAMS; specialFolder = CSIDL_COMMON_PROGRAMS;
err = SHGetSpecialFolderPath(NULL, path, specialFolder, FALSE); err = pSHGetSpecialFolderPathA(NULL, path, specialFolder, FALSE);
/* Win 9x fails, use CSIDL_PROGRAMS (err == FALSE) */ /* Win 9x fails, use CSIDL_PROGRAMS (err == FALSE) */
} }
if (err == FALSE) if (err == FALSE)
{ {
specialFolder = CSIDL_PROGRAMS; specialFolder = CSIDL_PROGRAMS;
err = SHGetSpecialFolderPath(NULL, path, specialFolder, FALSE); err = pSHGetSpecialFolderPathA(NULL, path, specialFolder, FALSE);
} }
len = strlen(path) + strlen(nameToCheck)+1; len = strlen(path) + strlen(nameToCheck)+1;
if (groupName != NULL) if (groupName != NULL)
@ -526,6 +539,12 @@ START_TEST(progman_dde)
HCONV hConv; HCONV hConv;
int testnum; int testnum;
init_function_pointers();
/* Only report this once */
if (!pSHGetSpecialFolderPathA)
win_skip("SHGetSpecialFolderPathA is not available\n");
/* Initialize DDE Instance */ /* Initialize DDE Instance */
err = DdeInitialize(&instance, DdeCallback, APPCMD_CLIENTONLY, 0); err = DdeInitialize(&instance, DdeCallback, APPCMD_CLIENTONLY, 0);
ok (err == DMLERR_NO_ERROR, "DdeInitialize Error %s\n", GetStringFromError(err)); ok (err == DMLERR_NO_ERROR, "DdeInitialize Error %s\n", GetStringFromError(err));