void Draw3dRect(HDC hdc, int x, int y, int xx, int yy, BOOL down, int width)
{
       COLORREF clrMain = RGB(255,192,192),
            clrLight = RGB(0,0,0),
            clrDark = RGB(128,128,128);

       HPEN hPen1,hPen2,hOldPen;
       HBRUSH hBrush,hOldBrush;

 
       if(down)
       {
            hPen2 = CreatePen(PS_SOLID,1,clrLight);
            hPen1 = CreatePen(PS_SOLID,1,clrDark);
       }

 
      else
     {
            hPen1 = CreatePen(PS_SOLID,1,clrLight);
            hPen2 = CreatePen(PS_SOLID,1,clrDark);
     }
 
     hBrush = CreateSolidBrush(clrMain);
    hOldPen = (HPEN)SelectObject(hdc,hPen1);
    hOldBrush = (HBRUSH)SelectObject(hdc,hBrush);

 
     Rectangle(hdc,x,y,xx+1,yy+1);

     for(int i=0;i<width;i++)
    {
           SelectObject(hdc,hPen1);

  
         MoveToEx(hdc,xx-1,y,0);
         LineTo(hdc,xx,yy);
         LineTo(hdc,xx,y);

         x++;y++;xx--;yy--;
     }
 
     SelectObject(hdc,hOldPen);
     SelectObject(hdc,hOldBrush);

     DeleteObject(hPen1);
     DeleteObject(hPen2);
     DeleteObject(hBrush);
}


사각형을 그리는 그래픽 소스입니다.



질문하고 싶은 부분은 굵게 처리한 소스 부분인데요

hOldPen에 어떤 값이 대입되게 되는 건가요??

전체적인 흐름이 이해가 잘 안갑니다.