windows-nt/Source/XPSP1/NT/ds/adsi/winnt/cenumjob.hxx
2020-09-26 16:20:57 +08:00

120 lines
2.5 KiB
C++

/*++
Copyright (c) 1995 Microsoft Corporation
Module Name:
cenumjob.hxx
Abstract:
Contains definitions for CWinNTPrintJobsCollection
and for CWinNTJobsEnumVar
Author:
Ram Viswanathan (ramv) 11-28-95
Revision History:
--*/
class CWinNTJobsEnumVar;
class CWinNTPrintJobsCollection: INHERIT_TRACKING,
ISupportErrorInfo,
public IADsCollection
{
public:
/* IUnknown methods */
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) ;
DECLARE_STD_REFCOUNTING;
DECLARE_IDispatch_METHODS;
DECLARE_ISupportErrorInfo_METHODS;
DECLARE_IADsCollection_METHODS;
//
// constructor and destructor
//
CWinNTPrintJobsCollection();
~CWinNTPrintJobsCollection();
static HRESULT Create(LPWSTR pszPrinterADsPath,
CWinNTCredentials& Credentials,
CWinNTPrintJobsCollection ** ppJobsCollection
);
protected:
CAggregatorDispMgr * _pDispMgr;
CWinNTJobsEnumVar *_pCJobsEnumVar;
HANDLE _hPrinter;
LPWSTR _pszPrinterName;
LPWSTR _pszADsPrinterPath;
CWinNTCredentials _Credentials;
};
class CWinNTJobsEnumVar : INHERIT_TRACKING,
public IEnumVARIANT
{
public:
/* IUnknown methods */
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) ;
DECLARE_STD_REFCOUNTING;
DECLARE_IEnumVARIANT_METHODS;
static HRESULT Create(HANDLE hprinter,
LPTSTR pszADsPrinterPath,
CWinNTCredentials& Credentials,
CWinNTJobsEnumVar FAR* FAR*);
CWinNTJobsEnumVar();
~CWinNTJobsEnumVar();
//
// Helper functions
//
friend HRESULT FillSafeArray(HANDLE hPrinter,
LPTSTR pszPrinterPath,
CWinNTCredentials& Credentials,
CWinNTJobsEnumVar * pJobsEnumVar);
protected:
LPWSTR _pszADsPrinterPath;
SAFEARRAY FAR* _pSafeArray;
LONG _lCurrentPosition;
ULONG _cElements;
LONG _lLBound;
ULONG _cMax;
CWinNTCredentials _Credentials;
};
//
// Helper functions
//
BOOL
MyEnumJobs(HANDLE hPrinter,
DWORD dwFirstJob,
DWORD dwNoJobs,
DWORD dwLevel,
LPBYTE *lplpbJobs,
DWORD *pcbBuf,
LPDWORD lpdwReturned
);