https://bugs.winehq.org/show_bug.cgi?id=54906 --- Comment #3 from George Hazan <george.hazan(a)gmail.com> --- Well, imho I've found the root of problems. In Miranda's console output there're a lot of lines like
011c:fixme:uxtheme:BeginBufferedPaint painting parameters are ignored
And inside Miranda the ICO file is converted into HBITMAP inside the following code: HBITMAP ConvertIconToBitmap(HIMAGELIST hIml, int iconId) { if (!beginBufferedPaint) { HMODULE hThemeAPI = GetModuleHandleA("uxtheme.dll"); beginBufferedPaint = (pfnBeginBufferedPaint)GetProcAddress(hThemeAPI, "BeginBufferedPaint"); endBufferedPaint = (pfnEndBufferedPaint)GetProcAddress(hThemeAPI, "EndBufferedPaint"); } BITMAPINFO bmi = { 0 }; bmi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER); bmi.bmiHeader.biPlanes = 1; bmi.bmiHeader.biCompression = BI_RGB; bmi.bmiHeader.biBitCount = 32; bmi.bmiHeader.biWidth = g_iIconSX; bmi.bmiHeader.biHeight = g_iIconSY; HDC hdc = CreateCompatibleDC(nullptr); HBITMAP hbmp = CreateDIBSection(hdc, &bmi, DIB_RGB_COLORS, nullptr, nullptr, 0); HBITMAP hbmpOld = (HBITMAP)SelectObject(hdc, hbmp); BLENDFUNCTION bfAlpha = { AC_SRC_OVER, 0, 255, AC_SRC_ALPHA }; BP_PAINTPARAMS paintParams = { 0 }; paintParams.cbSize = sizeof(paintParams); paintParams.dwFlags = BPPF_ERASE; paintParams.pBlendFunction = &bfAlpha; HDC hdcBuffer; RECT rcIcon = { 0, 0, g_iIconSX, g_iIconSY }; HANDLE hPaintBuffer = beginBufferedPaint(hdc, &rcIcon, BPBF_DIB, &paintParams, &hdcBuffer); if (hPaintBuffer) { ImageList_Draw(hIml, iconId, hdc, 0, 0, ILD_TRANSPARENT); endBufferedPaint(hPaintBuffer, TRUE); } SelectObject(hdc, hbmpOld); DeleteDC(hdc); return hbmp; } This function generates a black bitmap under Wine. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.