2 * Tests for ICM functions
4 * Copyright (C) 2005, 2008 Hans Leidekker
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
28 #include "wine/test.h"
30 static const WCHAR displayW
[] = {'D','I','S','P','L','A','Y',0};
32 static void test_GetICMProfileA( HDC dc
)
36 char filename
[MAX_PATH
];
38 SetLastError( 0xdeadbeef );
39 ret
= GetICMProfileA( NULL
, NULL
, NULL
);
40 if ( !ret
&& ( GetLastError() == ERROR_CALL_NOT_IMPLEMENTED
) )
42 skip( "GetICMProfileA is not implemented\n" );
45 ok( !ret
, "GetICMProfileA succeeded\n" );
47 ret
= GetICMProfileA( dc
, NULL
, NULL
);
48 ok( !ret
, "GetICMProfileA succeeded\n" );
51 ret
= GetICMProfileA( dc
, &size
, NULL
);
52 ok( !ret
, "GetICMProfileA succeeded\n" );
54 ret
= GetICMProfileA( dc
, NULL
, filename
);
55 ok( !ret
, "GetICMProfileA succeeded\n" );
58 ret
= GetICMProfileA( NULL
, &size
, filename
);
59 ok( !ret
, "GetICMProfileA succeeded\n" );
62 SetLastError(0xdeadbeef);
63 ret
= GetICMProfileA( dc
, &size
, filename
);
64 error
= GetLastError();
65 ok( !ret
, "GetICMProfileA succeeded\n" );
66 ok( size
, "expected size > 0\n" );
67 ok( error
== ERROR_INSUFFICIENT_BUFFER
, "got %d, expected ERROR_INSUFFICIENT_BUFFER\n", error
);
70 ret
= GetICMProfileA( dc
, &size
, filename
);
71 ok( ret
, "GetICMProfileA failed %d\n", GetLastError() );
73 trace( "%s\n", filename
);
76 static void test_GetICMProfileW( HDC dc
)
80 WCHAR filename
[MAX_PATH
];
82 SetLastError( 0xdeadbeef );
83 ret
= GetICMProfileW( NULL
, NULL
, NULL
);
84 if ( !ret
&& ( GetLastError() == ERROR_CALL_NOT_IMPLEMENTED
) )
86 skip( "GetICMProfileW is not implemented\n" );
89 ok( !ret
, "GetICMProfileW succeeded\n" );
91 ret
= GetICMProfileW( dc
, NULL
, NULL
);
92 ok( !ret
, "GetICMProfileW succeeded\n" );
98 ret
= GetICMProfileW( dc
, &size
, NULL
);
99 ok( ret
, "GetICMProfileW failed %d\n", GetLastError() );
102 ret
= GetICMProfileW( dc
, NULL
, filename
);
103 ok( !ret
, "GetICMProfileW succeeded\n" );
106 ret
= GetICMProfileW( NULL
, &size
, filename
);
107 ok( !ret
, "GetICMProfileW succeeded\n" );
110 SetLastError(0xdeadbeef);
111 ret
= GetICMProfileW( dc
, &size
, filename
);
112 error
= GetLastError();
113 ok( !ret
, "GetICMProfileW succeeded\n" );
114 ok( size
, "expected size > 0\n" );
115 ok( error
== ERROR_INSUFFICIENT_BUFFER
, "got %d, expected ERROR_INSUFFICIENT_BUFFER\n", error
);
118 ret
= GetICMProfileW( dc
, &size
, filename
);
119 ok( ret
, "GetICMProfileW failed %d\n", GetLastError() );
122 static void test_SetICMMode( HDC dc
)
126 SetLastError( 0xdeadbeef );
127 ret
= SetICMMode( NULL
, 0 );
128 ok( !ret
, "SetICMMode succeeded (%d)\n", GetLastError() );
130 ret
= SetICMMode( dc
, -1 );
131 ok( !ret
, "SetICMMode succeeded (%d)\n", GetLastError() );
133 save
= SetICMMode( dc
, ICM_QUERY
);
134 ok( save
== ICM_ON
|| save
== ICM_OFF
, "SetICMMode failed (%d)\n", GetLastError() );
136 if (save
== ICM_ON
) knob
= ICM_OFF
; else knob
= ICM_ON
;
138 ret
= SetICMMode( dc
, knob
);
139 todo_wine
ok( ret
, "SetICMMode failed (%d)\n", GetLastError() );
141 ret
= SetICMMode( dc
, ICM_QUERY
);
142 todo_wine
ok( ret
== knob
, "SetICMMode failed (%d)\n", GetLastError() );
144 ret
= SetICMMode( dc
, save
);
145 ok( ret
, "SetICMMode failed (%d)\n", GetLastError() );
147 SetLastError( 0xdeadbeef );
148 dc
= CreateDCW( displayW
, NULL
, NULL
, NULL
);
149 if ( !dc
&& ( GetLastError() == ERROR_CALL_NOT_IMPLEMENTED
) )
151 skip( "CreateDCW is not implemented\n" );
154 ok( dc
!= NULL
, "CreateDCW failed (%d)\n", GetLastError() );
156 ret
= SetICMMode( dc
, ICM_QUERY
);
157 ok( ret
== ICM_OFF
, "SetICMMode failed (%d)\n", GetLastError() );
164 HDC dc
= GetDC( NULL
);
166 test_GetICMProfileA( dc
);
167 test_GetICMProfileW( dc
);
168 test_SetICMMode( dc
);
170 ReleaseDC( NULL
, dc
);