Как-то так:
// Получить принтер по умолчанию
PRINTDLG pd;
AfxGetApp()->GetPrinterDeviceDefaults(&pd);
HANDLE mode = CopyHandle(pd.hDevMode);
// Выбрать установки по умолчанию
LPDEVMODE pMode = (LPDEVMODE) GlobalLock(mode);
if (pMode->dmFields & DM_ORIENTATION)
pMode->dmOrientation = DMORIENT_LANDSCAPE;
if (pMode->dmFields & DM_PAPERSIZE)
pMode->dmPaperSize = DMPAPER_A3;
GlobalUnlock(mode);
CopyHandle: чтобы работать со своим хэндлом. Его потом надо будет освободить (когда он уже не будет больше нужен) с помощью GlobalFree.
HANDLE CopyHandle(HANDLE handle)
{
HANDLE copy = NULL
if (handle) {
DWORD length = GlobalSize(h);
if (copy = GlobalAlloc(GHND, length))
{
BYTE* from = (BYTE *)GlobalLock(copy);
BYTE* to = (BYTE *)GlobalLock(h);
CopyMemory(from, to, length);
GlobalUnlock(copy);
GlobalUnlock(h);
}
}
return copy;
}