4 START_TEST(CreateIconFromResourceEx
)
8 HRSRC hResource
; // handle to FindResource
9 HRSRC hMem
; // handle to LoadResource
10 BYTE
*lpResource
; // pointer to resource data
12 hMod
= GetModuleHandle(NULL
);
13 ok(hMod
!= NULL
, "\n");
14 /* Create a shared cursor */
15 hcur1
= LoadCursor(hMod
, "TESTCURSOR");
16 ok(hcur1
!= NULL
, "\n");
18 /* Create it manually using CreateIconFromResourceEx */
19 hResource
= FindResourceA(hMod
,
22 ok(hResource
!= NULL
, "\n");
24 hMem
= LoadResource(hMod
, hResource
);
25 ok(hMem
!= NULL
, "\n");
27 lpResource
= LockResource(hMem
);
28 ok(lpResource
!= NULL
, "\n");
30 /* MSDN states that LR_SHARED permits to not load twice the same cursor again.
31 * But CreateIconFromResourceEx still returns two different handles */
32 hcur2
= CreateIconFromResourceEx(lpResource
, SizeofResource(hMod
, hResource
), FALSE
, 0x00030000, 0, 0, LR_SHARED
);
33 ok(hcur2
!= NULL
, "\n");
34 ok(hcur2
!= hcur1
, "\n");
35 hcur1
= CreateIconFromResourceEx(lpResource
, SizeofResource(hMod
, hResource
), FALSE
, 0x00030000, 0, 0, LR_SHARED
);
36 ok(hcur1
!= NULL
, "\n");
37 ok(hcur2
!= hcur1
, "\n");
39 /* Try to destroy them multiple times (see DestroyCursor test) */
40 ok(DestroyCursor(hcur1
), "\n");
41 ok(DestroyCursor(hcur1
), "\n");
42 ok(DestroyCursor(hcur2
), "\n");
43 ok(DestroyCursor(hcur2
), "\n");
45 FreeResource(hResource
);