Hi,
Is there a way to display (call) the "Printing Preferences" dialog, for the "novaPDF for SDK" printer, from my code using the SDK?
-zarko
const
PRINTER_NAME = 'novaPDF for SDK v7';
var
hPrinter : Cardinal;
hwndActiveWindow : HWND;
nBytesNeeded, nReturnValue : integer;
pDevMode : PDeviceMode;
begin
if OpenPrinter(PRINTER_NAME, hPrinter, nil) then
try
// get the number of bytes required for the full DEVMODE structure by
// calling DocumentProperties and specifying zero in the fMode parameter
hwndActiveWindow := GetActiveWindow();
nBytesNeeded := DocumentProperties(hwndActiveWindow, hPrinter, PRINTER_NAME, nil, nil, 0);
pDevMode := AllocMem(nBytesNeeded);
try
// get in pDevMode the changes made by user to printer settings
nReturnValue := DocumentProperties(hwndActiveWindow, hPrinter, PRINTER_NAME, pDevMode, nil, DM_IN_PROMPT OR DM_OUT_BUFFER);
if nReturnValue < 0 then
begin
MessageDlg('Printer unavailable', mtError, [mbOK], -1);
end
else if nReturnValue = IDOK then
begin
// if the user clicked on OK button, save the new printer settings
nReturnValue := DocumentProperties(hwndActiveWindow, hPrinter, PRINTER_NAME, pDevMode, pDevMode, DM_IN_BUFFER OR DM_OUT_BUFFER);
end;
finally
FreeMem(pDevMode, nBytesNeeded);
end;
finally
ClosePrinter(hPrinter);
end
else
MessageDlg('Could not open printer', mtError, [mbOK], -1);
end;
Users browsing this forum: No registered users and 1 guest