Доброе время суток

Перечитал уже весь форум по этому вопросу, но ответа так и не нашел
Необходимо по умолчанию установить альбомную ориентацию страницы для Print Preview и для собственно печати.
Суть ответов сводится к следующему:
1)
BOOL CMyView::OnPreparePrinting(CPrintInfo* print_info)
{
PRINTDLG pd = { 0 };
pd.lStructSize = sizeof(pd);
pd.Flags = 0;//PSD_RETURNDEFAULT | PSD_NOWARNING;
if(PrintDlg(&pd)) {
DEVMODE* dm = reinterpret_cast<DEVMODE*>(GlobalLock(pd.hDevMode));
if(dm)
{
dm->dmFields = DM_ORIENTATION;
dm->dmOrientation = DMORIENT_LANDSCAPE;
GlobalUnlock(pd.hDevMode);
}
print_info->m_pPD->m_pd.hDevMode = pd.hDevMode;
print_info->m_pPD->m_pd.hDevNames = pd.hDevNames;
if (!print_info->m_pPD->CreatePrinterDC())
return FALSE;
}
else
return FALSE;
return TRUE;
}
немного не То, поскольку перед Preview вызывает диалог выбора принтера, после чего Preview отобрадает все корректно, но если в Preview нажать печать, то опять нужно выбирать принтер

Вот если бы певый диалог не появлялся....
2)
CMyView::OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo)
{
LPDEVMODE lpDev = pInfo->m_pPD->GetDevMode();
lpDev->dmOrientation = DMORIENT_LANDSCAPE;
}
Тут тоже не без проблем: при первом вызове ориентация-то остается книжная, но если Preview закрыть и тут же вызвать еще раз, то ориентация уже альбомная

Так почему же сразу не работает???
3)
Предлагают вставлять различный код в CMyApp Или CMyDoc. Но это не подходит, поскольку у приложения несколько видов и каждый печатает по-своему
Если есть какие идеи — буду очень рад выслушать

Заранее благодарю