+ if( NULL != hicTargetDev )
+ {
+ DPFromHimetric(hicTargetDev, (LPPOINT)&picSize, 1);
+ }
+ else if( NULL != (hicTargetDev = CreateDevDC(ptd)) )
+ {
+ DPFromHimetric(hicTargetDev, (LPPOINT)&picSize, 1);
+ DeleteDC(hicTargetDev);
+ }
+
+ if( picSize.cx > width-4 )
+ picSize.cx = width-4;
+ if( picSize.cy > height-4 )
+ picSize.cy = height-4;
+
+ LONG dstX = lprcBounds->left+(width-picSize.cx)/2;
+ LONG dstY = lprcBounds->top+(height-picSize.cy)/2;
+
+ if( NULL != lprcWBounds )
+ {
+ RECT wBounds = { lprcWBounds->left, lprcWBounds->top, lprcWBounds->right, lprcWBounds->bottom };
+ pict->Render(hdcDraw, dstX, dstY, picSize.cx, picSize.cy,
+ 0L, picHeight, picWidth, -picHeight, &wBounds);
+ }
+ else
+ pict->Render(hdcDraw, dstX, dstY, picSize.cx, picSize.cy,
+ 0L, picHeight, picWidth, -picHeight, NULL);
+
+ pict->Release();
+ }