#ifndef __PRNTUIFN_HPP__ #define __PRNTUIFN_HPP__ /*++ Copyright (C) 2000 Microsoft Corporation All rights reserved. Module Name: prntuifn.hpp Abstract: This file contains the declararion of the class dealing printui functionality and it currently contains the following interfaces o QueueCreate o PrinterPropPages o DocumentDefaults Author: Khaled Sedky (khaleds) 31-Jan-2000 Revision History: --*/ #ifndef __LDERROR_HPP__ #include "lderror.hpp" #endif #ifndef __BASECLS_HPP__ #include "basecls.hpp" #endif #ifndef __LDFUNCS_HPP__ #include "ldfuncs.hpp" #endif // // Forward declarations // class TLoad64BitDllsMgr; class TPrintUIMgr : public TClassID, public TLd64BitDllsErrorHndlr, public TRefCntMgr { public: TPrintUIMgr( IN TLoad64BitDllsMgr *pIpLdrObj ); ~TPrintUIMgr( VOID ); DWORD QueueCreate( IN HWND hWnd, IN LPCWSTR pszPrinterName, IN INT CmdShow, IN LPARAM lParam ); DWORD PrinterPropPages( IN HWND hWnd, IN LPCWSTR pszPrinterName, IN INT CmdShow, IN LPARAM lParam ); DWORD DocumentDefaults( IN HWND hWnd, IN LPCWSTR pszPrinterName, IN INT CmdShow, IN LPARAM lParam ); DWORD PrinterSetup( IN HWND hWnd, IN UINT uAction, IN UINT cchPrinterName, IN OUT LPWSTR pszPrinterName, OUT UINT* pcchPrinterName, IN LPCWSTR pszServerName ); DWORD ServerPropPages( IN HWND hWnd, IN LPCWSTR pszPrinterName, IN INT CmdShow, IN LPARAM lParam ); static DWORD AsyncPrintUIMethod( IN PVOID InThrdData ); enum EPrintUIOp { KQueueCreateOp = 0, KPrinterPropPagesOp, KDocumentDefaultsOp, KServerPropPagesOp }; struct SPRINTUITHREADDATA { HWND hWnd; LPCWSTR pszName; LPARAM lParam; HANDLE hLib; TLoad64BitDllsMgr *pLdrObj; PFNPRINTUIMETHOD pfn; TPrintUIMgr::EPrintUIOp Op; int CmdShow; }; typedef struct SPRINTUITHREADDATA SPrintUIThreadData; struct SPRINTERSETUPTHRDDATA { HWND hWnd; LPWSTR pszPrinterName; LPCWSTR pszServerName; HANDLE hLib; TLoad64BitDllsMgr *pLdrObj; UINT* pcchPrinterName; PFNPRINTUIPRINTERSETUP pfn; UINT uAction; UINT cchPrinterName; }; typedef struct SPRINTERSETUPTHRDDATA SPrinterSetupThrdData; protected: DWORD PrintUIMethod( IN LPCSTR Method, IN HWND hWnd, IN LPCWSTR pszName, IN INT CmdShow, IN LPARAM lParam, IN LPTHREAD_START_ROUTINE pThrdFn, IN TPrintUIMgr::EPrintUIOp Op ); private: HWND GetForeGroundWindow( VOID ); TLoad64BitDllsMgr *m_pLdrObj; }; #endif //__PRNTUIFN_HPP__