/* void showProgress (in nsIDOMWindow parent, in nsIWebBrowserPrint webBrowserPrint, in nsIPrintSettings printSettings, in nsIObserver openDialogObserver, in boolean isForPrinting, out nsIWebProgressListener webProgressListener, out nsIPrintProgressParams printProgressParams, out boolean notifyOnOpen); */ NS_IMETHODIMP CPrintingPromptService::ShowProgress(nsIDOMWindow* parent, nsIWebBrowserPrint* webBrowserPrint, // ok to be null nsIPrintSettings* printSettings, // ok to be null nsIObserver* openDialogObserver, // ok to be null PRBool isForPrinting, nsIWebProgressListener** webProgressListener, nsIPrintProgressParams** printProgressParams, PRBool* notifyOnOpen) { NS_ENSURE_ARG(webProgressListener); NS_ENSURE_ARG(printProgressParams); NS_ENSURE_ARG(notifyOnOpen); ResourceState setState; nsresult rv; nsPrintProgressParams* prtProgressParams = new nsPrintProgressParams(); rv = prtProgressParams->QueryInterface(NS_GET_IID(nsIPrintProgressParams), (void**)printProgressParams); NS_ENSURE_SUCCESS(rv, rv); mObserver = openDialogObserver; *notifyOnOpen = PR_FALSE; if (printProgressParams) { CWnd *wnd = CWndForDOMWindow(parent); m_PPDlg = new CPrintProgressDialog(wnd, isForPrinting, *printProgressParams, webBrowserPrint, printSettings); m_PPDlg->Create(IDD_PRINT_PROGRESS_DIALOG); m_PPDlg->ShowWindow(SW_SHOW); m_PPDlg->UpdateWindow(); *notifyOnOpen = FirePauseEvent(); } *webProgressListener = NS_STATIC_CAST(nsIWebProgressListener*, this); NS_ADDREF(*webProgressListener); return rv; }