Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

145 lines
3.2 KiB

/*++
Copyright (c) 1995 Microsoft Corporation
Module Name:
cprinter.hxx
Abstract:
Contains definitions for
CWinNTFSPrintQueueGeneralInfo,
CWinNTFSPrintQueueOperation and
CWinNTPrintQueue
Author:
Ram Viswanathan (ramv) 11-18-95
Revision History:
--*/
class CWinNTFSPrintQueueGeneralInfo;
class CWinNTFSPrintQueueOperation;
class CPropertyCache;
class CWinNTPrintQueue:INHERIT_TRACKING,
public ISupportErrorInfo,
public IADsPrintQueue,
public IADsPrintQueueOperations,
public IADsPropertyList,
public CCoreADsObject,
public INonDelegatingUnknown,
public IADsExtension
{
public:
/* IUnknown methods */
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj);
STDMETHODIMP_(ULONG) AddRef(void);
STDMETHODIMP_(ULONG) Release(void);
// INonDelegatingUnknown methods
STDMETHOD(NonDelegatingQueryInterface)(THIS_
const IID&,
void **
);
DECLARE_NON_DELEGATING_REFCOUNTING
DECLARE_IDispatch_METHODS;
DECLARE_ISupportErrorInfo_METHODS;
DECLARE_IADs_METHODS;
DECLARE_IADsPrintQueue_METHODS;
DECLARE_IADsPrintQueueOperations_METHODS;
DECLARE_IADsPropertyList_METHODS;
DECLARE_IADsExtension_METHODS
//
// constructor and destructor
//
CWinNTPrintQueue();
~CWinNTPrintQueue();
static
HRESULT
CreatePrintQueue(LPTSTR lpszADsParent,
DWORD dwParentId,
LPTSTR pszDomainName,
LPTSTR pszServerName,
LPTSTR pszPrinterName,
DWORD dwObjectState,
REFIID riid,
CWinNTCredentials& Credentials,
LPVOID * ppvoid
);
static
HRESULT
CWinNTPrintQueue::AllocatePrintQueueObject(LPTSTR pszServerName,
LPTSTR pszPrinterName,
CWinNTPrintQueue ** ppPrintQueue
);
HRESULT
CWinNTPrintQueue::MarshallAndSet(LPPRINTER_INFO_2 lpPrinterInfo2
);
HRESULT
CWinNTPrintQueue::UnMarshall(LPPRINTER_INFO_2 lpPrinterInfo2,
BOOL fExplicit
);
#if (!defined(BUILD_FOR_NT40))
HRESULT
CWinNTPrintQueue::MarshallAndSet(LPPRINTER_INFO_7 lpPrinterInfo7
);
HRESULT
CWinNTPrintQueue::UnMarshall7(LPPRINTER_INFO_7 lpPrinterInfo7,
BOOL fExplicit
);
#endif
STDMETHOD(ImplicitGetInfo)(void);
protected:
STDMETHOD(GetInfo)(THIS_ DWORD dwApiLevel, BOOL fExplicit) ;
HRESULT WinNTAddPrinter();
CWinNTFSPrintQueueGeneralInfo *_pGenInfoPS;
CWinNTFSPrintQueueOperation *_pOperationPS;
CAggregatorDispMgr * _pDispMgr;
CADsExtMgr FAR * _pExtMgr;
LPWSTR _pszPrinterName; // Caches UNC name
CPropertyCache * _pPropertyCache;
CWinNTCredentials _Credentials;
};
typedef CWinNTPrintQueue *PCWinNTPrintQueue;