9 PROCESS_INFORMATION pi
;
14 int argc
= winetest_get_mainargs( &test_argv
);
16 /* Now check its behaviour regarding Shared icons/cursors */
17 handle
= LoadImageW( GetModuleHandle(NULL
), L
"TESTCURSOR", IMAGE_CURSOR
, 0, 0, LR_SHARED
| LR_DEFAULTSIZE
);
18 ok(handle
!= 0, "\n");
28 sscanf (test_argv
[2], "%lu", (ULONG_PTR
*) &arg
);
30 ok(handle
!= arg
, "Got same handles\n");
33 hCopy
= CopyIcon(arg
);
34 ok(hCopy
!= NULL
, "\n");
35 ok(DestroyIcon(hCopy
), "\n");
37 hCopy
= CopyImage(arg
, IMAGE_CURSOR
, 0, 0, 0);
38 ok(hCopy
!= NULL
, "\n");
39 ok(DestroyIcon(hCopy
), "\n");
41 hCopy
= CopyImage(arg
, IMAGE_CURSOR
, 0, 0, LR_COPYFROMRESOURCE
);
42 ok(hCopy
!= NULL
, "\n");
43 ok(DestroyIcon(hCopy
), "\n");
45 /* Try various usual functions */
46 hdcScreen
= CreateDCW(L
"DISPLAY", NULL
, NULL
, NULL
);
47 ok(hdcScreen
!= NULL
, "\n");
48 hdc
= CreateCompatibleDC(hdcScreen
);
49 ok(hdc
!= NULL
, "\n");
50 hbmp
= CreateCompatibleBitmap(hdcScreen
, 64, 64);
51 ok(hbmp
!= NULL
, "\n");
52 hbmp
= SelectObject(hdc
, hbmp
);
53 ok(hbmp
!= NULL
, "\n");
55 ok(DrawIcon(hdc
, 0, 0, arg
), "\n");
56 hbmp
= SelectObject(hdc
, hbmp
);
61 ok(GetIconInfo(arg
, &ii
), "\n");
62 ok(ii
.hbmMask
!= NULL
, "\n");
63 DeleteObject(ii
.hbmMask
);
64 if(ii
.hbmColor
) DeleteObject(ii
.hbmColor
);
69 /* Start child process */
70 sprintf( path
, "%s LoadImage %lu", test_argv
[0], (ULONG_PTR
)handle
);
71 memset( &si
, 0, sizeof(si
) );
73 CreateProcessA( NULL
, path
, NULL
, NULL
, TRUE
, 0, NULL
, NULL
, &si
, &pi
);
74 WaitForSingleObject (pi
.hProcess
, INFINITE
);