2 Test_NtUserGetIconInfo(PTESTINFO pti
)
7 UNICODE_STRING hInstStr
;
8 UNICODE_STRING ResourceStr
;
11 ZeroMemory(&iinfo
, sizeof(ICONINFO
));
14 hIcon
= (HICON
) NtUserCallOneParam(0, _ONEPARAM_ROUTINE_CREATEEMPTYCUROBJECT
);
17 /* Last param is unknown */
18 TEST(NtUserGetIconInfo(hIcon
, &iinfo
, NULL
, NULL
, NULL
, FALSE
) == FALSE
);
19 TEST(NtUserGetIconInfo(hIcon
, &iinfo
, NULL
, NULL
, NULL
, TRUE
) == FALSE
);
21 TEST(NtUserDestroyCursor(hIcon
, 0) == TRUE
);
23 mask
= CreateBitmap(16,16,1,1,NULL
);
24 color
= CreateBitmap(16,16,1,16,NULL
);
27 iinfo
.hbmColor
= color
;
32 hIcon
= CreateIconIndirect(&iinfo
);
35 // TODO : test last parameter...
36 TEST(NtUserGetIconInfo(hIcon
, &iinfo
, NULL
, NULL
, NULL
, FALSE
) == TRUE
);
38 TEST(iinfo
.hbmMask
!= NULL
);
39 TEST(iinfo
.hbmColor
!= NULL
);
40 TEST(iinfo
.fIcon
== TRUE
);
41 TEST(iinfo
.yHotspot
== 8);
42 TEST(iinfo
.xHotspot
== 8);
44 TEST(iinfo
.hbmMask
!= mask
);
45 TEST(iinfo
.hbmColor
!= color
);
47 /* Does it make a difference? */
48 TEST(NtUserGetIconInfo(hIcon
, &iinfo
, NULL
, NULL
, NULL
, TRUE
) == TRUE
);
50 TEST(iinfo
.hbmMask
!= NULL
);
51 TEST(iinfo
.hbmColor
!= NULL
);
52 TEST(iinfo
.fIcon
== TRUE
);
53 TEST(iinfo
.yHotspot
== 8);
54 TEST(iinfo
.xHotspot
== 8);
56 TEST(iinfo
.hbmMask
!= mask
);
57 TEST(iinfo
.hbmColor
!= color
);
64 /* Test full param, with local icon */
65 hIcon
= LoadImageA(GetModuleHandle(NULL
),
66 MAKEINTRESOURCE(IDI_ICON
),
74 RtlInitUnicodeString(&hInstStr
, NULL
);
75 RtlInitUnicodeString(&ResourceStr
, NULL
);
77 TEST(NtUserGetIconInfo(hIcon
,
84 TESTX(hInstStr
.Buffer
== NULL
, "hInstStr.buffer : %p\n", hInstStr
.Buffer
);
85 TEST((LPCTSTR
)ResourceStr
.Buffer
== MAKEINTRESOURCE(IDI_ICON
));
88 /* Last param doesn't seem to matter*/
89 TEST(NtUserGetIconInfo(hIcon
,
96 TESTX(hInstStr
.Buffer
== NULL
, "hInstStr.buffer : %p\n", hInstStr
.Buffer
);
97 TEST((LPCTSTR
)ResourceStr
.Buffer
== MAKEINTRESOURCE(IDI_ICON
));
102 return APISTATUS_NORMAL
;