//--------------------------------------------------------------------------- // // Microsoft Windows // Copyright (C) Microsoft Corporation, 1992 - 1996 // // File: cjobop.cxx // // Contents: // // History: 1-May-96 t-ptam (Patrick Tam) Created. // //---------------------------------------------------------------------------- #include "NWCOMPAT.hxx" #pragma hdrstop //---------------------------------------------------------------------------- // // Function: CNWCOMPATPrintJob::Pause // // Synopsis: // //---------------------------------------------------------------------------- STDMETHODIMP CNWCOMPATPrintJob::Pause(THIS) { BSTR bstrName = NULL; HANDLE hPrinter = NULL; HRESULT hr = S_OK; DWORD dwJobId = 0; WCHAR szUncPrinterName[MAX_PATH]; hr = NWApiUncFromADsPath( _pszPrinterPath, szUncPrinterName ); BAIL_ON_FAILURE(hr); // // Get JobId from name. // hr = get_CoreName(&bstrName); BAIL_ON_FAILURE(hr); dwJobId = (DWORD)_wtol(bstrName); // // Open a handle to the printer with USE access. // hr = NWApiOpenPrinter( szUncPrinterName, &hPrinter, PRINTER_ACCESS_USE ); BAIL_ON_FAILURE(hr); // // Pause job. // hr = NWApiSetJob( hPrinter, dwJobId, 0, NULL, JOB_CONTROL_PAUSE ); error: if (hPrinter) { NWApiClosePrinter(hPrinter); } ADSFREESTRING(bstrName); NW_RRETURN_EXP_IF_ERR(hr); } //---------------------------------------------------------------------------- // // Function: CNWCOMPATPrintJob::Resume // // Synopsis: // //---------------------------------------------------------------------------- STDMETHODIMP CNWCOMPATPrintJob::Resume(THIS) { BSTR bstrName = NULL; HANDLE hPrinter = NULL; HRESULT hr = S_OK; DWORD dwJobId = 0; WCHAR szUncPrinterName[MAX_PATH]; hr = NWApiUncFromADsPath( _pszPrinterPath, szUncPrinterName ); BAIL_ON_FAILURE(hr); // // Get JobId from name. // hr = get_CoreName(&bstrName); BAIL_ON_FAILURE(hr); dwJobId = (DWORD)_wtol(bstrName); // // Open a handle to the printer with USE access. // hr = NWApiOpenPrinter( szUncPrinterName, &hPrinter, PRINTER_ACCESS_USE ); BAIL_ON_FAILURE(hr); // // Resume job. // hr = NWApiSetJob( hPrinter, dwJobId, 0, NULL, JOB_CONTROL_RESUME ); error: if (hPrinter) { NWApiClosePrinter(hPrinter); } ADSFREESTRING(bstrName); NW_RRETURN_EXP_IF_ERR(hr); } //---------------------------------------------------------------------------- // // Function: CNWCOMPATPrintJob::Remove // // Synopsis: // //---------------------------------------------------------------------------- STDMETHODIMP CNWCOMPATPrintJob::Remove(THIS) { BSTR bstrName = NULL; HANDLE hPrinter = NULL; HRESULT hr = S_OK; DWORD dwJobId = 0; WCHAR szUncPrinterName[MAX_PATH]; hr = NWApiUncFromADsPath( _pszPrinterPath, szUncPrinterName ); BAIL_ON_FAILURE(hr); // // Get JobId from name. // hr = get_CoreName(&bstrName); BAIL_ON_FAILURE(hr); dwJobId = (DWORD)_wtol(bstrName); // // Open a handle to the printer with USE access. // hr = NWApiOpenPrinter( szUncPrinterName, &hPrinter, PRINTER_ACCESS_USE ); BAIL_ON_FAILURE(hr); // // Remove job. // hr = NWApiSetJob( hPrinter, dwJobId, 0, NULL, JOB_CONTROL_CANCEL ); error: if (hPrinter) { NWApiClosePrinter(hPrinter); } ADSFREESTRING(bstrName); NW_RRETURN_EXP_IF_ERR(hr); } //---------------------------------------------------------------------------- // // Function: CNWCOMPATPrintJob::get_Status // // Synopsis: // //---------------------------------------------------------------------------- STDMETHODIMP CNWCOMPATPrintJob::get_Status( THIS_ LONG FAR* retval ) { *retval = _lStatus; RRETURN(S_OK); } // // Properties Get & Set. // STDMETHODIMP CNWCOMPATPrintJob::put_Position(THIS_ LONG lPosition) { PUT_PROPERTY_LONG((IADsPrintJob *)this, Position); } STDMETHODIMP CNWCOMPATPrintJob::get_Position(THIS_ LONG FAR* retval) { GET_PROPERTY_LONG((IADsPrintJob *)this, Position); } STDMETHODIMP CNWCOMPATPrintJob::get_PagesPrinted(THIS_ LONG FAR* retval) { GET_PROPERTY_LONG((IADsPrintJob *)this, PagesPrinted); } STDMETHODIMP CNWCOMPATPrintJob::get_TimeElapsed(THIS_ LONG FAR* retval) { GET_PROPERTY_LONG((IADsPrintJob *)this, TimeElapsed); }