[DllImport("comdlg32.dll", CharSet=CharSet.Auto)]
static extern bool PrintDlg([In,Out] PRINTDLG lppd);
<DllImport("comdlg32.dll", CharSet:=CharSet.Auto)> _
Private Shared Function PrintDlg(<[In], Out> ByVal lppd As PRINTDLG) As Boolean
End Function
System.Windows.Forms.PrintDialog
None.
Please add some!
// Call the PrintDlg api from c#
public static void InvokePrintDlg (PrinterSettings printerSettings,
IntPtr hwndDialogOwner)
{
// PRINTDLG that will be passed to PrintDlg API function.
PRINTDLG printdlg = new PRINTDLG();
printdlg.lStructSize = Marshal.SizeOf(printdlg);
printdlg.hwndOwner = hwndDialogOwner;
// Pass the handles to the DEVMODE and DEVNAMES structures from the
// printer settings object to the PRINTDLG so that the current
// printsettings are displayed in the print setup dialog.
printdlg.hDevMode = printerSettings.GetHdevmode();
printdlg.hDevNames = printerSettings.GetHdevnames();
// Uncomment the line below to indicate that only the print setup dialog should be shown.
//printdlg.Flags = PD_PRINTSETUP;
// Invoke the dialog.
bool l = PrintDlg(printdlg);
// Pass the resulting DEVMODE and DEVNAMES structs back to the
// caller via the PrinterSettings object that was passed in.
printerSettings.SetHdevmode(printdlg.hDevMode);
printerSettings.SetHdevnames(printdlg.hDevNames);
}