10 Test_GetIconInfo(BOOL fIcon
)
13 ICONINFO iconinfo
, iconinfo2
;
16 iconinfo
.fIcon
= fIcon
;
17 iconinfo
.xHotspot
= 0;
18 iconinfo
.yHotspot
= 0;
19 iconinfo
.hbmMask
= NULL
;
20 iconinfo
.hbmColor
= NULL
;
22 hicon
= CreateIconIndirect(&iconinfo
);
23 ok(hicon
== 0, "should fail\n");
25 iconinfo
.hbmMask
= CreateBitmap(8, 16, 1, 1, NULL
);
26 hicon
= CreateIconIndirect(&iconinfo
);
27 ok(hicon
!= 0, "should not fail\n");
29 ok(GetIconInfo(hicon
, &iconinfo2
), "\n");
30 ok(iconinfo2
.fIcon
== iconinfo
.fIcon
, "\n");
33 ok(iconinfo2
.xHotspot
== 4, "%ld\n", iconinfo2
.xHotspot
);
34 ok(iconinfo2
.yHotspot
== 4, "%ld\n", iconinfo2
.yHotspot
);
38 ok(iconinfo2
.xHotspot
== 0, "%ld\n", iconinfo2
.xHotspot
);
39 ok(iconinfo2
.yHotspot
== 0, "%ld\n", iconinfo2
.yHotspot
);
41 ok(iconinfo2
.hbmMask
!= NULL
, "\n");
42 ok(iconinfo2
.hbmMask
!= iconinfo
.hbmMask
, "\n");
43 ok(iconinfo2
.hbmColor
== NULL
, "\n");
45 ok(GetIconInfo(hicon
, &iconinfo2
), "\n");
46 ok(iconinfo2
.fIcon
== iconinfo
.fIcon
, "\n");
49 ok(iconinfo2
.xHotspot
== 4, "%ld\n", iconinfo2
.xHotspot
);
50 ok(iconinfo2
.yHotspot
== 4, "%ld\n", iconinfo2
.yHotspot
);
54 ok(iconinfo2
.xHotspot
== 0, "%ld\n", iconinfo2
.xHotspot
);
55 ok(iconinfo2
.yHotspot
== 0, "%ld\n", iconinfo2
.yHotspot
);
57 ok(iconinfo2
.hbmMask
!= NULL
, "\n");
58 ok(iconinfo2
.hbmMask
!= iconinfo
.hbmMask
, "\n");
59 ok(iconinfo2
.hbmColor
== NULL
, "\n");
61 iconinfo
.hbmColor
= CreateBitmap(2, 2, 1, 1, NULL
);
62 hicon
= CreateIconIndirect(&iconinfo
);
63 ok(hicon
!= 0, "should not fail\n");
65 ok(GetIconInfo(hicon
, &iconinfo2
), "\n");
66 ok(iconinfo2
.fIcon
== iconinfo
.fIcon
, "\n");
69 ok(iconinfo2
.xHotspot
== 4, "%ld\n", iconinfo2
.xHotspot
);
70 ok(iconinfo2
.yHotspot
== 8, "%ld\n", iconinfo2
.yHotspot
);
74 ok(iconinfo2
.xHotspot
== 0, "%ld\n", iconinfo2
.xHotspot
);
75 ok(iconinfo2
.yHotspot
== 0, "%ld\n", iconinfo2
.yHotspot
);
77 ok(iconinfo2
.hbmMask
!= NULL
, "\n");
78 ok(iconinfo2
.hbmMask
!= iconinfo
.hbmMask
, "\n");
79 ok(iconinfo2
.hbmColor
!= NULL
, "\n");
80 ok(iconinfo2
.hbmMask
!= iconinfo
.hbmColor
, "\n");
82 ok(GetObject(iconinfo2
.hbmMask
, sizeof(bitmap
), &bitmap
), "GetObject failed\n");
83 ok(bitmap
.bmType
== 0, "\n");
84 ok(bitmap
.bmWidth
== 8, "\n");
85 ok(bitmap
.bmHeight
== 16, "\n");
86 ok(bitmap
.bmWidthBytes
== 2, "\n");
87 ok(bitmap
.bmPlanes
== 1, "\n");
88 ok(bitmap
.bmBitsPixel
== 1, "\n");
89 ok(bitmap
.bmBits
== NULL
, "\n");
91 ok(GetObject(iconinfo2
.hbmColor
, sizeof(bitmap
), &bitmap
), "GetObject failed\n");
92 ok(bitmap
.bmType
== 0, "\n");
93 ok(bitmap
.bmWidth
== 8, "\n");
94 ok(bitmap
.bmHeight
== 16, "\n");
95 ok(bitmap
.bmWidthBytes
== 8 * bitmap
.bmBitsPixel
/ 8, "\n");
96 ok(bitmap
.bmPlanes
== 1, "\n");
97 ok(bitmap
.bmBitsPixel
== 32, "\n");
98 ok(bitmap
.bmBits
== NULL
, "\n");
100 DeleteObject(iconinfo
.hbmMask
);
101 iconinfo
.hbmMask
= NULL
;
102 hicon
= CreateIconIndirect(&iconinfo
);
103 ok(hicon
== 0, "should fail\n");
105 DeleteObject(iconinfo
.hbmColor
);
106 iconinfo
.hbmColor
= CreateCompatibleBitmap(GetDC(0), 16, 16);
107 hicon
= CreateIconIndirect(&iconinfo
);
108 ok(hicon
== 0, "should fail\n");
110 iconinfo
.hbmMask
= CreateCompatibleBitmap(GetDC(0), 8, 16);
111 hicon
= CreateIconIndirect(&iconinfo
);
112 ok(hicon
!= 0, "should not fail\n");
114 ok(GetIconInfo(hicon
, &iconinfo2
), "\n");
116 ok(GetObject(iconinfo2
.hbmMask
, sizeof(bitmap
), &bitmap
), "GetObject failed\n");
117 ok(bitmap
.bmType
== 0, "\n");
118 ok(bitmap
.bmWidth
== 8, "%ld\n", bitmap
.bmWidth
);
119 ok(bitmap
.bmHeight
== 16, "%ld\n", bitmap
.bmHeight
);
120 ok(bitmap
.bmWidthBytes
== 2, "%ld\n", bitmap
.bmWidthBytes
);
121 ok(bitmap
.bmPlanes
== 1, "%d\n", bitmap
.bmPlanes
);
122 ok(bitmap
.bmBitsPixel
== 1, "%d\n", bitmap
.bmBitsPixel
);
123 ok(bitmap
.bmBits
== NULL
, "\n");
125 ok(GetObject(iconinfo2
.hbmColor
, sizeof(bitmap
), &bitmap
), "GetObject failed\n");
126 ok(bitmap
.bmType
== 0, "\n");
127 ok(bitmap
.bmWidth
== 8, "%ld\n", bitmap
.bmWidth
);
128 ok(bitmap
.bmHeight
== 16, "%ld\n", bitmap
.bmHeight
);
129 ok(bitmap
.bmWidthBytes
== 32, "%ld\n", bitmap
.bmWidthBytes
);
130 ok(bitmap
.bmPlanes
== 1, "%d\n", bitmap
.bmPlanes
);
131 ok(bitmap
.bmBitsPixel
== 32, "%d\n", bitmap
.bmBitsPixel
);
132 ok(bitmap
.bmBits
== NULL
, "\n");
137 START_TEST(GetIconInfo
)
142 DWORD data
[] = {0, 0, 0, 0, 0, 0};
147 hcursor
= LoadCursor(NULL
, IDC_APPSTARTING
);
148 ok(hcursor
!= 0, "should not fail\n");
149 ok(GetIconInfo(hcursor
, &iconinfo2
), "\n");
150 ok(iconinfo2
.fIcon
== 0, "\n");
151 ok(iconinfo2
.xHotspot
== 0, "%ld\n", iconinfo2
.xHotspot
);
152 ok(iconinfo2
.yHotspot
== 8, "%ld\n", iconinfo2
.yHotspot
);
153 ok(iconinfo2
.hbmMask
!= NULL
, "\n");
154 ok(iconinfo2
.hbmColor
!= NULL
, "\n");
156 ok(GetObject(iconinfo2
.hbmMask
, sizeof(bitmap
), &bitmap
), "GetObject failed\n");
157 ok(bitmap
.bmType
== 0, "\n");
158 ok(bitmap
.bmWidth
== 32, "%ld\n", bitmap
.bmWidth
);
159 ok(bitmap
.bmHeight
== 32, "\n");
160 ok(bitmap
.bmWidthBytes
== 4, "\n");
161 ok(bitmap
.bmPlanes
== 1, "\n");
162 ok(bitmap
.bmBitsPixel
== 1, "\n");
163 ok(bitmap
.bmBits
== NULL
, "\n");
165 ok(GetObject(iconinfo2
.hbmColor
, sizeof(bitmap
), &bitmap
), "GetObject failed\n");
166 ok(bitmap
.bmType
== 0, "\n");
167 ok(bitmap
.bmWidth
== 32, "\n");
168 ok(bitmap
.bmHeight
== 32, "\n");
169 ok(bitmap
.bmWidthBytes
== 32 * bitmap
.bmBitsPixel
/ 8, "\n");
170 ok(bitmap
.bmPlanes
== 1, "\n");
171 ok(bitmap
.bmBitsPixel
== 32, "\n");
172 ok(bitmap
.bmBits
== NULL
, "\n");
174 hcursor
= CreateCursor(NULL
, 1, 2, 4, 4, data
, data
);
175 ok(hcursor
!= 0, "should not fail\n");
176 ok(GetIconInfo(hcursor
, &iconinfo2
), "\n");
177 ok(iconinfo2
.fIcon
== 0, "\n");
178 ok(iconinfo2
.xHotspot
== 1, "%ld\n", iconinfo2
.xHotspot
);
179 ok(iconinfo2
.yHotspot
== 2, "%ld\n", iconinfo2
.yHotspot
);
180 ok(iconinfo2
.hbmMask
!= NULL
, "\n");
181 ok(iconinfo2
.hbmColor
== NULL
, "\n");
183 ok(GetObject(iconinfo2
.hbmMask
, sizeof(bitmap
), &bitmap
), "GetObject failed\n");
184 ok(bitmap
.bmType
== 0, "\n");
185 ok(bitmap
.bmWidth
== 4, "%ld\n", bitmap
.bmWidth
);
186 ok(bitmap
.bmHeight
== 8, "%ld\n", bitmap
.bmHeight
);
187 ok(bitmap
.bmWidthBytes
== 2, "%ld\n", bitmap
.bmWidthBytes
);
188 ok(bitmap
.bmPlanes
== 1, "\n");
189 ok(bitmap
.bmBitsPixel
== 1, "\n");
190 ok(bitmap
.bmBits
== NULL
, "\n");