PrintDlg (comdlg32)
Last changed:


C# Signature:

[DllImport("comdlg32.dll", CharSet=CharSet.Auto)]
static extern bool PrintDlg([In,Out] PRINTDLG lppd);

VB.NET Signature:

<DllImport("comdlg32.dll", CharSet:=CharSet.Auto)> _
Private Shared Function PrintDlg(<[In], Out> ByVal lppd As PRINTDLG) As Boolean
End Function

User-Defined Types:


Alternative Managed API:




Tips & Tricks:

Please add some!

Sample Code:

// 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.


PrintDlg on MSDN