Hello.
Cannot you set it by the following programs?
Is there a problem?
CWinApp* pWinApp=AfxGetApp();
// Get default printer settings.
PRINTDLG pd;
pd.lStructSize = (DWORD) sizeof(PRINTDLG);
if ( ! pWinApp->GetPrinterDeviceDefaults(&pd) ){
return -1;
}
// Lock memory handle.
DEVMODE FAR* pDevMode =
(DEVMODE FAR*)::GlobalLock( pd.hDevMode );
LPDEVNAMES lpDevNames;
LPTSTR lpszDriverName, lpszDeviceName, lpszPortName;
HANDLE hPrinter;
if (pDevMode){
// 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);
if ( Check_Paper ( hPrinter , m_iSize ) == 0 ){
pDevMode->dmPaperSize = m_iSize;
}
if ( Check_PaperOrientation ( hPrinter , m_iOrient ) == 0 ){
pDevMode->dmOrientation = m_iOrient;
}
::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( pd.hDevNames );
GlobalUnlock( pd.hDevMode );
}