//--------------------------------------------------------------------------- // // Microsoft Windows // Copyright (C) Microsoft Corporation, 1992 - 1996 // // File: cpop.cxx // // Contents: // // History: 30-Apr-96 t-ptam (Patrick Tam) Created. // //---------------------------------------------------------------------------- #include "NWCOMPAT.hxx" #pragma hdrstop //---------------------------------------------------------------------------- // // Function: CNWCOMPATPrintQueue::PrintJobs // // Synopsis: // //---------------------------------------------------------------------------- STDMETHODIMP CNWCOMPATPrintQueue::PrintJobs( THIS_ IADsCollection FAR* FAR* ppCollection ) { HRESULT hr = S_OK; // // Get Job collection object. // hr = CNWCOMPATJobCollection::CreateJobCollection( _Parent, _Name, IID_IADsCollection, (void **)ppCollection ); RRETURN_EXP_IF_ERR(hr); } //---------------------------------------------------------------------------- // // Function: CNWCOMPATPrintQueue::Pause // // Synopsis: // //---------------------------------------------------------------------------- STDMETHODIMP CNWCOMPATPrintQueue::Pause(THIS) { HANDLE hPrinter = NULL; HRESULT hr = S_OK; BSTR bstrADsPath = NULL; WCHAR szUncPrinterName[MAX_PATH]; // // Make Unc printer name. // hr = get_CoreADsPath(&bstrADsPath); BAIL_ON_FAILURE(hr); hr = NWApiUncFromADsPath( bstrADsPath, szUncPrinterName ); BAIL_ON_FAILURE(hr); // // Open a handle to the printer with Administer access. // hr = NWApiOpenPrinter( szUncPrinterName, &hPrinter, PRINTER_ACCESS_ADMINISTER ); BAIL_ON_FAILURE(hr); // // Pause printer. // hr = NWApiSetPrinter( hPrinter, 0, NULL, PRINTER_CONTROL_PAUSE ); error: if (hPrinter) { NWApiClosePrinter(hPrinter); } ADSFREESTRING(bstrADsPath); RRETURN_EXP_IF_ERR(hr); } //---------------------------------------------------------------------------- // // Function: CNWCOMPATPrintQueue::Resume // // Synopsis: // //---------------------------------------------------------------------------- STDMETHODIMP CNWCOMPATPrintQueue::Resume(THIS) { HANDLE hPrinter = NULL; HRESULT hr = S_OK; BSTR bstrADsPath = NULL; WCHAR szUncPrinterName[MAX_PATH]; // // Make Unc printer name. // hr = get_CoreADsPath(&bstrADsPath); BAIL_ON_FAILURE(hr); hr = NWApiUncFromADsPath( bstrADsPath, szUncPrinterName ); BAIL_ON_FAILURE(hr); // // Open a handle to the printer with Administer access. // hr = NWApiOpenPrinter( szUncPrinterName, &hPrinter, PRINTER_ACCESS_ADMINISTER ); BAIL_ON_FAILURE(hr); // // Resume printer. // hr = NWApiSetPrinter( hPrinter, 0, NULL, PRINTER_CONTROL_RESUME ); error: if (hPrinter) { NWApiClosePrinter(hPrinter); } if (bstrADsPath) { ADsFreeString(bstrADsPath); } RRETURN_EXP_IF_ERR(hr); } //---------------------------------------------------------------------------- // // Function: CNWCOMPATPrintQueue::Purge // // Synopsis: // //---------------------------------------------------------------------------- STDMETHODIMP CNWCOMPATPrintQueue::Purge(THIS) { HANDLE hPrinter = NULL; HRESULT hr = S_OK; BSTR bstrADsPath = NULL; WCHAR szUncPrinterName[MAX_PATH]; // // Make Unc printer name. // hr = get_CoreADsPath(&bstrADsPath); BAIL_ON_FAILURE(hr); hr = NWApiUncFromADsPath( bstrADsPath, szUncPrinterName ); BAIL_ON_FAILURE(hr); // // Open a handle to the printer with Administer access. // hr = NWApiOpenPrinter( szUncPrinterName, &hPrinter, PRINTER_ACCESS_ADMINISTER ); BAIL_ON_FAILURE(hr); // // Purge printer. // hr = NWApiSetPrinter( hPrinter, 0, NULL, PRINTER_CONTROL_PURGE ); error: if (hPrinter) { NWApiClosePrinter(hPrinter); } if (bstrADsPath) { ADsFreeString(bstrADsPath); } RRETURN_EXP_IF_ERR(hr); } //---------------------------------------------------------------------------- // // Function: CNWCOMPATPrintQueue::get_Status // // Synopsis: // //---------------------------------------------------------------------------- STDMETHODIMP CNWCOMPATPrintQueue::get_Status( THIS_ long FAR* retval ) { GET_PROPERTY_LONG((IADsPrintQueue *)this, Status); }