HDC hDC = GetDC(m_hWndDesktop);
if(hDC)
{
RECT rc;
rc.left = m_nCurrentX;
rc.top = m_nCurrentY;
rc.right = m_nCurrentX+15;
rc.bottom = m_nCurrentY+15;
int nTestHeight = m_nScreenHeight - 15;
if(m_nCurrentY// snow drift here
RedrawWindow(m_hWndDesktop, &rc, NULL, RDW_INVALIDATE
| RDW_ERASE | RDW_UPDATENOW );
m_nCurrentX += m_nIncrement;
if(m_nCurrentY>m_nScreenHeight)
{
m_nCurrentY = 0;
m_nCurrentX = abs(rand()*m_nScreenWidth/RAND_MAX);
if(abs(rand()*100/RAND_MAX)>50)
m_bIsBigFlake = TRUE;
else
m_bIsBigFlake = FALSE;
}
HPEN pOldPen = (HPEN)SelectObject(hDC, m_hFlakePen);
if(!m_bIsVista)
{
if(!m_bOverIcons && m_nCurrentY// Restore DC settings to their original values
RestoreDC(hDC, storedDC);
ReleaseDC(m_hWndDesktop, hDC);
}