mirror of
https://github.com/reactos/reactos.git
synced 2024-10-16 06:04:13 +00:00
[USER32]
- Partly merge 48026 svn path=/trunk/; revision=48031
This commit is contained in:
parent
17f5ddd1e0
commit
e393257fc3
|
@ -1393,6 +1393,7 @@ HICON WINAPI CreateIconIndirect(PICONINFO iconinfo)
|
||||||
{
|
{
|
||||||
BITMAP ColorBitmap;
|
BITMAP ColorBitmap;
|
||||||
BITMAP MaskBitmap;
|
BITMAP MaskBitmap;
|
||||||
|
ICONINFO safeIconInfo;
|
||||||
|
|
||||||
if(!iconinfo)
|
if(!iconinfo)
|
||||||
{
|
{
|
||||||
|
@ -1400,13 +1401,15 @@ HICON WINAPI CreateIconIndirect(PICONINFO iconinfo)
|
||||||
return (HICON)0;
|
return (HICON)0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!GetObjectW(iconinfo->hbmMask, sizeof(BITMAP), &MaskBitmap))
|
safeIconInfo = *iconinfo;
|
||||||
|
|
||||||
|
if(!GetObjectW(safeIconInfo.hbmMask, sizeof(BITMAP), &MaskBitmap))
|
||||||
{
|
{
|
||||||
return (HICON)0;
|
return (HICON)0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Try to get color bitmap */
|
/* Try to get color bitmap */
|
||||||
if (GetObjectW(iconinfo->hbmColor, sizeof(BITMAP), &ColorBitmap))
|
if (GetObjectW(safeIconInfo.hbmColor, sizeof(BITMAP), &ColorBitmap))
|
||||||
{
|
{
|
||||||
/* Compare size of color and mask bitmap*/
|
/* Compare size of color and mask bitmap*/
|
||||||
if (ColorBitmap.bmWidth != MaskBitmap.bmWidth ||
|
if (ColorBitmap.bmWidth != MaskBitmap.bmWidth ||
|
||||||
|
@ -1416,8 +1419,22 @@ HICON WINAPI CreateIconIndirect(PICONINFO iconinfo)
|
||||||
SetLastError(ERROR_INVALID_PARAMETER);
|
SetLastError(ERROR_INVALID_PARAMETER);
|
||||||
return (HICON)0;
|
return (HICON)0;
|
||||||
}
|
}
|
||||||
|
/* Test if they are inverted */
|
||||||
|
if(ColorBitmap.bmBitsPixel == 1)
|
||||||
|
{
|
||||||
|
if(MaskBitmap.bmBitsPixel != 1)
|
||||||
|
{
|
||||||
|
safeIconInfo.hbmMask = iconinfo->hbmColor;
|
||||||
|
safeIconInfo.hbmColor = iconinfo->hbmMask;
|
||||||
}
|
}
|
||||||
return (HICON)NtUserCreateCursorIconHandle(iconinfo, TRUE);
|
else
|
||||||
|
{
|
||||||
|
/* Wine tests say so */
|
||||||
|
safeIconInfo.hbmColor = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return (HICON)NtUserCreateCursorIconHandle(&safeIconInfo, TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
|
|
Loading…
Reference in a new issue