Fixed RGBQUAD/COLORREF mixup in CreateMappedBitmap().
This commit is contained in:
parent
3cee09c0fc
commit
62c90d606e
|
@ -687,11 +687,12 @@ CreateMappedBitmap (HINSTANCE hInstance, INT idBitmap, UINT wFlags,
|
||||||
HRSRC hRsrc;
|
HRSRC hRsrc;
|
||||||
LPBITMAPINFOHEADER lpBitmap, lpBitmapInfo;
|
LPBITMAPINFOHEADER lpBitmap, lpBitmapInfo;
|
||||||
UINT nSize, nColorTableSize;
|
UINT nSize, nColorTableSize;
|
||||||
DWORD *pColorTable;
|
RGBQUAD *pColorTable;
|
||||||
INT iColor, i, iMaps, nWidth, nHeight;
|
INT iColor, i, iMaps, nWidth, nHeight;
|
||||||
HDC hdcScreen;
|
HDC hdcScreen;
|
||||||
HBITMAP hbm;
|
HBITMAP hbm;
|
||||||
LPCOLORMAP sysColorMap;
|
LPCOLORMAP sysColorMap;
|
||||||
|
COLORREF cRef;
|
||||||
COLORMAP internalColorMap[4] =
|
COLORMAP internalColorMap[4] =
|
||||||
{{0x000000, 0}, {0x808080, 0}, {0xC0C0C0, 0}, {0xFFFFFF, 0}};
|
{{0x000000, 0}, {0x808080, 0}, {0xC0C0C0, 0}, {0xFFFFFF, 0}};
|
||||||
|
|
||||||
|
@ -726,11 +727,14 @@ CreateMappedBitmap (HINSTANCE hInstance, INT idBitmap, UINT wFlags,
|
||||||
return 0;
|
return 0;
|
||||||
RtlMoveMemory (lpBitmapInfo, lpBitmap, nSize);
|
RtlMoveMemory (lpBitmapInfo, lpBitmap, nSize);
|
||||||
|
|
||||||
pColorTable = (DWORD*)(((LPBYTE)lpBitmapInfo)+(UINT)lpBitmapInfo->biSize);
|
pColorTable = (RGBQUAD*)(((LPBYTE)lpBitmapInfo)+(UINT)lpBitmapInfo->biSize);
|
||||||
|
|
||||||
for (iColor = 0; iColor < nColorTableSize; iColor++) {
|
for (iColor = 0; iColor < nColorTableSize; iColor++) {
|
||||||
for (i = 0; i < iMaps; i++) {
|
for (i = 0; i < iMaps; i++) {
|
||||||
if (pColorTable[iColor] == sysColorMap[i].from) {
|
cRef = RGB(pColorTable[iColor].rgbRed,
|
||||||
|
pColorTable[iColor].rgbGreen,
|
||||||
|
pColorTable[iColor].rgbBlue);
|
||||||
|
if ( cRef == sysColorMap[i].from) {
|
||||||
#if 0
|
#if 0
|
||||||
if (wFlags & CBS_MASKED) {
|
if (wFlags & CBS_MASKED) {
|
||||||
if (sysColorMap[i].to != COLOR_BTNTEXT)
|
if (sysColorMap[i].to != COLOR_BTNTEXT)
|
||||||
|
@ -738,12 +742,13 @@ CreateMappedBitmap (HINSTANCE hInstance, INT idBitmap, UINT wFlags,
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
pColorTable[iColor] = sysColorMap[i].to;
|
pColorTable[iColor].rgbBlue = GetBValue(sysColorMap[i].to);
|
||||||
|
pColorTable[iColor].rgbGreen = GetGValue(sysColorMap[i].to);
|
||||||
|
pColorTable[iColor].rgbRed = GetRValue(sysColorMap[i].to);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
nWidth = (INT)lpBitmapInfo->biWidth;
|
nWidth = (INT)lpBitmapInfo->biWidth;
|
||||||
nHeight = (INT)lpBitmapInfo->biHeight;
|
nHeight = (INT)lpBitmapInfo->biHeight;
|
||||||
hdcScreen = GetDC ((HWND)0);
|
hdcScreen = GetDC ((HWND)0);
|
||||||
|
|
Loading…
Reference in New Issue