I think the following code maybe very useful to some one of you to change the printer to landscape:
Code:
void CMyApp::SetLandscape()
{
	LPDEVNAMES lpDevNames;
	LPTSTR lpszDriverName, lpszDeviceName, lpszPortName;
	HANDLE hPrinter;      
	PRINTDLG   pd;
	
	// Get default printer settings.    PRINTDLG   pd;
	pd.lStructSize = (DWORD) sizeof(PRINTDLG);
	if (GetPrinterDeviceDefaults(&pd))
	{        // Lock memory handle.
		DEVMODE FAR* pDevMode = (DEVMODE FAR*)::GlobalLock(m_hDevMode);                 
		if (pDevMode)            
		{
            // Change printer settings in here.
            pDevMode->dmOrientation = DMORIENT_LANDSCAPE;
			// Unlock memory handle.
			lpDevNames = (LPDEVNAMES)GlobalLock(pd.hDevNames);
			lpszDriverName = (LPTSTR )lpDevNames + lpDevNames->wDriverOffset;
			lpszDeviceName = (LPTSTR )lpDevNames + lpDevNames->wDeviceOffset;
			lpszPortName   = (LPTSTR )lpDevNames + lpDevNames->wOutputOffset;
			
			::OpenPrinter(lpszDeviceName, &hPrinter, NULL);
			::DocumentProperties(NULL,hPrinter,lpszDeviceName,pDevMode,
				pDevMode, DM_IN_BUFFER|DM_OUT_BUFFER);
			
			// Sync the pDevMode.
			// See SDK help for DocumentProperties for more info.
			::ClosePrinter(hPrinter);
			::GlobalUnlock(m_hDevNames);
			::GlobalUnlock(m_hDevMode);       
		}
	}
}
Regards
Jack
------------------------------------------------------------------------------
XD++ MFC Library with 100% source code home : http://www.********.net