7 Test_GetIconInfo(BOOL fIcon
)
10 ICONINFO iconinfo
, iconinfo2
;
13 iconinfo
.fIcon
= fIcon
;
14 iconinfo
.xHotspot
= 0;
15 iconinfo
.yHotspot
= 0;
16 iconinfo
.hbmMask
= NULL
;
17 iconinfo
.hbmColor
= NULL
;
19 hicon
= CreateIconIndirect(&iconinfo
);
20 ok(hicon
== 0, "should fail\n");
22 iconinfo
.hbmMask
= CreateBitmap(8, 16, 1, 1, NULL
);
23 hicon
= CreateIconIndirect(&iconinfo
);
24 ok(hicon
!= 0, "should not fail\n");
26 ok(GetIconInfo(hicon
, &iconinfo2
), "\n");
27 ok(iconinfo2
.fIcon
== iconinfo
.fIcon
, "\n");
30 ok(iconinfo2
.xHotspot
== 4, "%ld\n", iconinfo2
.xHotspot
);
31 ok(iconinfo2
.yHotspot
== 4, "%ld\n", iconinfo2
.yHotspot
);
35 ok(iconinfo2
.xHotspot
== 0, "%ld\n", iconinfo2
.xHotspot
);
36 ok(iconinfo2
.yHotspot
== 0, "%ld\n", iconinfo2
.yHotspot
);
38 ok(iconinfo2
.hbmMask
!= NULL
, "\n");
39 ok(iconinfo2
.hbmMask
!= iconinfo
.hbmMask
, "\n");
40 ok(iconinfo2
.hbmColor
== NULL
, "\n");
42 ok(GetIconInfo(hicon
, &iconinfo2
), "\n");
43 ok(iconinfo2
.fIcon
== iconinfo
.fIcon
, "\n");
46 ok(iconinfo2
.xHotspot
== 4, "%ld\n", iconinfo2
.xHotspot
);
47 ok(iconinfo2
.yHotspot
== 4, "%ld\n", iconinfo2
.yHotspot
);
51 ok(iconinfo2
.xHotspot
== 0, "%ld\n", iconinfo2
.xHotspot
);
52 ok(iconinfo2
.yHotspot
== 0, "%ld\n", iconinfo2
.yHotspot
);
54 ok(iconinfo2
.hbmMask
!= NULL
, "\n");
55 ok(iconinfo2
.hbmMask
!= iconinfo
.hbmMask
, "\n");
56 ok(iconinfo2
.hbmColor
== NULL
, "\n");
58 iconinfo
.hbmColor
= CreateBitmap(2, 2, 1, 1, NULL
);
59 hicon
= CreateIconIndirect(&iconinfo
);
60 ok(hicon
!= 0, "should not fail\n");
62 ok(GetIconInfo(hicon
, &iconinfo2
), "\n");
63 ok(iconinfo2
.fIcon
== iconinfo
.fIcon
, "\n");
66 ok(iconinfo2
.xHotspot
== 4, "%ld\n", iconinfo2
.xHotspot
);
67 ok(iconinfo2
.yHotspot
== 8, "%ld\n", iconinfo2
.yHotspot
);
71 ok(iconinfo2
.xHotspot
== 0, "%ld\n", iconinfo2
.xHotspot
);
72 ok(iconinfo2
.yHotspot
== 0, "%ld\n", iconinfo2
.yHotspot
);
74 ok(iconinfo2
.hbmMask
!= NULL
, "\n");
75 ok(iconinfo2
.hbmMask
!= iconinfo
.hbmMask
, "\n");
76 ok(iconinfo2
.hbmColor
!= NULL
, "\n");
77 ok(iconinfo2
.hbmMask
!= iconinfo
.hbmColor
, "\n");
79 ok(GetObject(iconinfo2
.hbmMask
, sizeof(bitmap
), &bitmap
), "GetObject failed\n");
80 ok(bitmap
.bmType
== 0, "\n");
81 ok(bitmap
.bmWidth
== 8, "\n");
82 ok(bitmap
.bmHeight
== 16, "\n");
83 ok(bitmap
.bmWidthBytes
== 2, "\n");
84 ok(bitmap
.bmPlanes
== 1, "\n");
85 ok(bitmap
.bmBitsPixel
== 1, "\n");
86 ok(bitmap
.bmBits
== NULL
, "\n");
88 ok(GetObject(iconinfo2
.hbmColor
, sizeof(bitmap
), &bitmap
), "GetObject failed\n");
89 ok(bitmap
.bmType
== 0, "\n");
90 ok(bitmap
.bmWidth
== 8, "\n");
91 ok(bitmap
.bmHeight
== 16, "\n");
92 ok(bitmap
.bmWidthBytes
== 8 * bitmap
.bmBitsPixel
/ 8, "\n");
93 ok(bitmap
.bmPlanes
== 1, "\n");
94 ok(bitmap
.bmBitsPixel
== 32, "\n");
95 ok(bitmap
.bmBits
== NULL
, "\n");
97 DeleteObject(iconinfo
.hbmMask
);
98 iconinfo
.hbmMask
= NULL
;
99 hicon
= CreateIconIndirect(&iconinfo
);
100 ok(hicon
== 0, "should fail\n");
102 DeleteObject(iconinfo
.hbmColor
);
103 iconinfo
.hbmColor
= CreateCompatibleBitmap(GetDC(0), 16, 16);
104 hicon
= CreateIconIndirect(&iconinfo
);
105 ok(hicon
== 0, "should fail\n");
107 iconinfo
.hbmMask
= CreateCompatibleBitmap(GetDC(0), 8, 16);
108 hicon
= CreateIconIndirect(&iconinfo
);
109 ok(hicon
!= 0, "should not fail\n");
111 ok(GetIconInfo(hicon
, &iconinfo2
), "\n");
113 ok(GetObject(iconinfo2
.hbmMask
, sizeof(bitmap
), &bitmap
), "GetObject failed\n");
114 ok(bitmap
.bmType
== 0, "\n");
115 ok(bitmap
.bmWidth
== 8, "%ld\n", bitmap
.bmWidth
);
116 ok(bitmap
.bmHeight
== 16, "%ld\n", bitmap
.bmHeight
);
117 ok(bitmap
.bmWidthBytes
== 2, "%ld\n", bitmap
.bmWidthBytes
);
118 ok(bitmap
.bmPlanes
== 1, "%d\n", bitmap
.bmPlanes
);
119 ok(bitmap
.bmBitsPixel
== 1, "%d\n", bitmap
.bmBitsPixel
);
120 ok(bitmap
.bmBits
== NULL
, "\n");
122 ok(GetObject(iconinfo2
.hbmColor
, sizeof(bitmap
), &bitmap
), "GetObject failed\n");
123 ok(bitmap
.bmType
== 0, "\n");
124 ok(bitmap
.bmWidth
== 8, "%ld\n", bitmap
.bmWidth
);
125 ok(bitmap
.bmHeight
== 16, "%ld\n", bitmap
.bmHeight
);
126 ok(bitmap
.bmWidthBytes
== 32, "%ld\n", bitmap
.bmWidthBytes
);
127 ok(bitmap
.bmPlanes
== 1, "%d\n", bitmap
.bmPlanes
);
128 ok(bitmap
.bmBitsPixel
== 32, "%d\n", bitmap
.bmBitsPixel
);
129 ok(bitmap
.bmBits
== NULL
, "\n");
135 START_TEST(CreateIconIndirect
)
141 DWORD data
[] = {0, 0, 0, 0, 0, 0};
146 hcursor
= LoadCursor(NULL
, IDC_APPSTARTING
);
147 ok(hcursor
!= 0, "should not fail\n");
148 ok(GetIconInfo(hcursor
, &iconinfo2
), "\n");
149 ok(iconinfo2
.fIcon
== 0, "\n");
150 ok(iconinfo2
.xHotspot
== 0, "%ld\n", iconinfo2
.xHotspot
);
151 ok(iconinfo2
.yHotspot
== 8, "%ld\n", iconinfo2
.yHotspot
);
152 ok(iconinfo2
.hbmMask
!= NULL
, "\n");
153 ok(iconinfo2
.hbmColor
!= NULL
, "\n");
155 ok(GetObject(iconinfo2
.hbmMask
, sizeof(bitmap
), &bitmap
), "GetObject failed\n");
156 ok(bitmap
.bmType
== 0, "\n");
157 ok(bitmap
.bmWidth
== 32, "%ld\n", bitmap
.bmWidth
);
158 ok(bitmap
.bmHeight
== 32, "\n");
159 ok(bitmap
.bmWidthBytes
== 4, "\n");
160 ok(bitmap
.bmPlanes
== 1, "\n");
161 ok(bitmap
.bmBitsPixel
== 1, "\n");
162 ok(bitmap
.bmBits
== NULL
, "\n");
164 ok(GetObject(iconinfo2
.hbmColor
, sizeof(bitmap
), &bitmap
), "GetObject failed\n");
165 ok(bitmap
.bmType
== 0, "\n");
166 ok(bitmap
.bmWidth
== 32, "\n");
167 ok(bitmap
.bmHeight
== 32, "\n");
168 ok(bitmap
.bmWidthBytes
== 32 * bitmap
.bmBitsPixel
/ 8, "\n");
169 ok(bitmap
.bmPlanes
== 1, "\n");
170 ok(bitmap
.bmBitsPixel
== 32, "\n");
171 ok(bitmap
.bmBits
== NULL
, "\n");
173 hcursor
= CreateCursor(NULL
, 1, 2, 4, 4, data
, data
);
174 ok(hcursor
!= 0, "should not fail\n");
175 ok(GetIconInfo(hcursor
, &iconinfo2
), "\n");
176 ok(iconinfo2
.fIcon
== 0, "\n");
177 ok(iconinfo2
.xHotspot
== 1, "%ld\n", iconinfo2
.xHotspot
);
178 ok(iconinfo2
.yHotspot
== 2, "%ld\n", iconinfo2
.yHotspot
);
179 ok(iconinfo2
.hbmMask
!= NULL
, "\n");
180 ok(iconinfo2
.hbmColor
== NULL
, "\n");
182 ok(GetObject(iconinfo2
.hbmMask
, sizeof(bitmap
), &bitmap
), "GetObject failed\n");
183 ok(bitmap
.bmType
== 0, "\n");
184 ok(bitmap
.bmWidth
== 4, "%ld\n", bitmap
.bmWidth
);
185 ok(bitmap
.bmHeight
== 8, "%ld\n", bitmap
.bmHeight
);
186 ok(bitmap
.bmWidthBytes
== 2, "%ld\n", bitmap
.bmWidthBytes
);
187 ok(bitmap
.bmPlanes
== 1, "\n");
188 ok(bitmap
.bmBitsPixel
== 1, "\n");
189 ok(bitmap
.bmBits
== NULL
, "\n");
192 hicon
= CreateIcon(0, 4, 4, 1, 1, (PBYTE
)data
, (PBYTE
)data
);
193 ok(hicon
!= 0, "should not fail\n");
195 ok(GetIconInfo(hicon
, &iconinfo2
), "\n");
196 ok(iconinfo2
.fIcon
== 0, "\n");
197 ok(iconinfo2
.xHotspot
== 2, "%ld\n", iconinfo2
.xHotspot
);
198 ok(iconinfo2
.yHotspot
== 2, "%ld\n", iconinfo2
.yHotspot
);
199 ok(iconinfo2
.hbmMask
!= NULL
, "\n");
200 ok(iconinfo2
.hbmColor
== NULL
, "\n");