My question is really simple. Does this code cause memoryleaks? If so, where/how/why?
HDC hDC, memDC = 0;
HBITMAP hBMP = 0;
HBITMAP hOldBMP = 0;
PAINTSTRUCT PS;
HBRUSH hb212121, hb141414, hb070707, hb000, hbF7F7F7, hb989898, hb707070, hb494949, hb984921 = 0;
HPEN hp353535 = 0;
case WM_PAINT:
hDC = BeginPaint(hWnd, &PS);
memDC = CreateCompatibleDC(hDC);
hBMP = CreateCompatibleBitmap(hDC, 450, 450);
SelectObject(memDC, hBMP);
hb212121 = CreateSolidBrush(RGB(33, 33, 33));
FillRect(memDC, &rMainClntNoBorder, hb212121);
hb494949 = CreateSolidBrush(RGB(73, 73, 73));
hb984921 = CreateSolidBrush(RGB(152, 73, 33));
hb000 = CreateSolidBrush(RGB(0, 0, 0));
switch(tiles)
{
setTileRect();
case 1:
FillRect(memDC, &rTile, hb494949);
break;
case 2:
FillRect(memDC, &rTile, hb984921);
break;
case 7:
FillRect(memDC, &rTile, hb000);
break;
}
SelectObject(memDC, hOldBMP);
DeleteObject(hBMP);
DeleteObject(hb984921);
DeleteObject(hb494949);
DeleteObject(hb212121);
DeleteObject(hb000);
hp353535 = CreatePen(PS_SOLID, 1, RGB(53, 53, 53));
SelectObject(memDC, hp353535);
GetClientRect(hWnd, &rClnt);
MoveToEx(memDC, rClnt.left, rClnt.bottom - 1, 0);
LineTo(memDC, rClnt.left, rClnt.top);
LineTo(memDC, rClnt.right, rClnt.top);
DeleteObject(hp353535);
BitBlt(hDC, 0, 0, rMainClntNoBorder.right, rMainClntNoBorder.bottom, memDC, 0, 0, SRCCOPY);
DeleteDC(memDC);
EndPaint(hWnd, &PS);
break;