mscms: Distinguish between registered and unregistered profile IDs.

This commit is contained in:
Saulius Krasuckas 2006-02-16 19:32:58 +01:00 committed by Alexandre Julliard
parent 90938d6b6c
commit 76f66cc78f
1 changed files with 28 additions and 4 deletions

View File

@ -497,6 +497,21 @@ static void enum_registered_color_profiles(void)
trace("\n");
}
static colorspace_descr *query_colorspace(DWORD dwID)
{
DWORD count, i;
count = sizeof(known_colorspaces)/sizeof(known_colorspaces[0]);
for (i=0; i<count; i++)
if (known_colorspaces[i].dwID == dwID)
{
if (!known_colorspaces[i].registered) break;
return &known_colorspaces[i];
}
return NULL;
}
static HKEY reg_open_mscms_key(void)
{
char win9x[] = "SOFTWARE\\Microsoft\\Windows";
@ -580,10 +595,19 @@ static void test_GetStandardColorSpaceProfileA(void)
fail_GSCSP(A, NULL, (DWORD)-1, newprofile, &size, sizeP, FALSE, (GLE == ERROR_FILE_NOT_FOUND));
todo_wine
fail_GSCSP(A, NULL, SPACE_RGB, newprofile, NULL, sizeP, FALSE, (GLE == ERROR_INVALID_PARAMETER));
todo_wine
fail_GSCSP(A, NULL, SPACE_RGB, NULL, &size, sizeP, FALSE, (GLE == ERROR_INSUFFICIENT_BUFFER));
todo_wine
fail_GSCSP(A, NULL, SPACE_RGB, newprofile, &size, 0, FALSE, (GLE == ERROR_MORE_DATA || GLE == ERROR_INSUFFICIENT_BUFFER));
if (query_colorspace(SPACE_RGB))
{
todo_wine
fail_GSCSP(A, NULL, SPACE_RGB, NULL, &size, sizeP, FALSE, (GLE == ERROR_INSUFFICIENT_BUFFER));
todo_wine
fail_GSCSP(A, NULL, SPACE_RGB, newprofile, &size, 0, FALSE, (GLE == ERROR_MORE_DATA || GLE == ERROR_INSUFFICIENT_BUFFER));
} else {
todo_wine
fail_GSCSP(A, NULL, SPACE_RGB, NULL, &size, sizeP, FALSE, (GLE == ERROR_FILE_NOT_FOUND));
todo_wine
fail_GSCSP(A, NULL, SPACE_RGB, newprofile, &size, 0, FALSE, (GLE == ERROR_FILE_NOT_FOUND));
}
/* Several invalid parameter checks */
fail_GSCSP(A, machine, 0, newprofile, &size, 0, FALSE, (GLE == ERROR_INVALID_PARAMETER || GLE == ERROR_NOT_SUPPORTED));