mscms: Distinguish between registered and unregistered profile IDs.

Saulius Krasuckas saulius2 at ar.fi.lt
Thu Feb 16 12:18:58 CST 2006


Log message:
	Saulius Krasuckas <saulius.krasuckas at ieee.org>
	mscms: Distinguish between registered and unregistered profile IDs.


diff --git a/dlls/mscms/tests/profile.c b/dlls/mscms/tests/profile.c
index da34caa..bd73cf3 100644
--- a/dlls/mscms/tests/profile.c
+++ b/dlls/mscms/tests/profile.c
@@ -497,6 +497,21 @@ static void enum_registered_color_profil
     trace("\n");
 }
 
+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_GetStandardColorSpacePr
     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));



More information about the wine-patches mailing list