CustomDrawn ActiveX control on CPropertyPage fails to draw itself
 
I have ATL activeX control (customdrawn syslistview32 control) on the
MFC PropertyPage dialog. This ActiveX control works in normal ATL/MFC
dialogs without problem, but on PropertyPage it doesn't draw itself.
I debugged this and noticed that my ActiveX control gets only the
CustomDraw notify with CDDS_PREPAINT draw stage.
What might be the problem here?
Here is the controls OnCustomDraw handler:
LRESULT CListViewEx::OnCustomDraw( int idCtrl, LPNMHDR pnmh, BOOL&
bHandled )
{
  LPNMLVCUSTOMDRAW  poLVCustomDraw  = (LPNMLVCUSTOMDRAW)pnmh;
  NMCUSTOMDRAW      oCustomDraw     = poLVCustomDraw->nmcd;
  CListViewExRow*     poRow;
  CRect             oRect;
  if( idCtrl != IDC_SYSLISTVIEW_CONTROL )
  {
    return 0;
  }
  if( oCustomDraw.dwDrawStage == CDDS_PREPAINT )
  {
    return CDRF_NOTIFYITEMDRAW;
  }
  else if( oCustomDraw.dwDrawStage == CDDS_ITEMPREPAINT )
  {
    return CDRF_NOTIFYSUBITEMDRAW | CDRF_NOTIFYPOSTPAINT;
  }
  else if( oCustomDraw.dwDrawStage == (CDDS_ITEMPREPAINT|
CDDS_SUBITEM) )
  {
    poRow = GetRow( (long)oCustomDraw.dwItemSpec );
    if( poRow )
    {
      poRow->DrawItem( oCustomDraw.hdc, poLVCustomDraw->iSubItem,
(long)oCustomDraw.dwItemSpec );
    }
    return CDRF_SKIPDEFAULT;
  }
  else if( oCustomDraw.dwDrawStage == CDDS_ITEMPOSTPAINT )
  {
    if( oCustomDraw.uItemState & CDIS_FOCUS )
    {
      moListView.GetItemRect( (long)oCustomDraw.dwItemSpec, &oRect,
LVIR_BOUNDS );
      DrawFocusRect( oCustomDraw.hdc, &oRect );
    }
    return CDRF_SKIPDEFAULT;
  }
  return CDRF_DODEFAULT;
}