Are you creating it after the inherited OnInitialUpdate is called? Returns the GetDlgItem(IDC_PLACEHOLDER) a valid pointer? Also I missed a part of the code, after the sheet is created, you need to set it's size and position:
CRect rectPropSheet;
pwndPropSheetHolder->GetWindowRect(rectPropSheet);
m_sheet->SetWindowPos(NULL, 0, 0,
rectPropSheet.Width(), rectPropSheet.Height(),
SWP_NOZORDER | SWP_NOACTIVATE);
Pavel Sonork 100.15206