mirror of https://github.com/lianthony/NT4.0
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.
472 lines
8.9 KiB
472 lines
8.9 KiB
/*++
|
|
|
|
Copyright (c) 1996 Microsoft Corporation
|
|
All rights reserved.
|
|
|
|
Module Name:
|
|
|
|
psetup.hxx
|
|
|
|
Abstract:
|
|
|
|
Printer setup header.
|
|
|
|
Author:
|
|
|
|
Steve Kiraly (SteveKi) 19-Jan-1996
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
#ifndef _PSETUP_HXX
|
|
#define _PSETUP_HXX
|
|
|
|
typedef
|
|
HANDLE
|
|
(*pfPSetupCreateDrvSetupParams)(
|
|
VOID
|
|
);
|
|
|
|
typedef
|
|
VOID
|
|
(*pfPSetupDestroyDrvSetupParams)(
|
|
IN HANDLE h
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(*pfPSetupSelectDriver)(
|
|
IN HANDLE h,
|
|
IN HWND hwnd
|
|
);
|
|
|
|
typedef
|
|
HPROPSHEETPAGE
|
|
(*pfPSetupCreateDrvSetupPage)(
|
|
IN HANDLE h,
|
|
IN HWND hwnd
|
|
);
|
|
|
|
typedef
|
|
PSELECTED_DRV_INFO
|
|
(*pfPSetupGetSelectedDriverInfo)(
|
|
IN HANDLE h
|
|
);
|
|
|
|
typedef
|
|
VOID
|
|
(*pfPSetupDestroySelectedDriverInfo)(
|
|
IN PSELECTED_DRV_INFO pSelectedDrvInfo
|
|
);
|
|
|
|
typedef
|
|
DWORD
|
|
(*pfPSetupInstallPrinterDriver)(
|
|
IN HANDLE h,
|
|
IN PSELECTED_DRV_INFO pSelectedDrvInfo,
|
|
IN PLATFORM platform,
|
|
IN BOOL bNt3xDriver,
|
|
IN LPCTSTR pszServerName,
|
|
IN HWND hwnd,
|
|
IN LPCTSTR pszPlatformName
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(*pfPSetupIsDriverInstalled)(
|
|
IN LPCTSTR pszServerName,
|
|
IN LPCTSTR pszDriverName,
|
|
IN PLATFORM platform,
|
|
IN DWORD dwMajorVersion
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(*pfPSetupRefreshDriverList)(
|
|
IN HANDLE h
|
|
);
|
|
|
|
typedef
|
|
PLATFORM
|
|
(*pfPSetupThisPlatform)(
|
|
VOID
|
|
);
|
|
|
|
typedef
|
|
PSELECTED_DRV_INFO
|
|
(*pfPSetupDriverInfoFromName)(
|
|
IN HANDLE h,
|
|
IN LPCTSTR pszModel
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(*pfPSetupPreSelectDriver)(
|
|
IN HANDLE h,
|
|
IN LPCTSTR pszManufacturer, OPTIONAL
|
|
IN LPCTSTR pszModel OPTIONAL
|
|
);
|
|
|
|
typedef
|
|
HANDLE
|
|
(*pfPSetupCreateMonitorInfo)(
|
|
IN HWND hwnd,
|
|
IN BOOL bOEMMonitor
|
|
);
|
|
|
|
typedef
|
|
VOID
|
|
(*pfPSetupDestroyMonitorInfo)(
|
|
IN OUT HANDLE h
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(*pfPSetupEnumMonitor)(
|
|
IN HANDLE h,
|
|
IN DWORD dwIndex,
|
|
OUT LPTSTR pMonitorName,
|
|
IN OUT LPDWORD pdwSize
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(*pfPSetupInstallMonitor)(
|
|
IN HANDLE h,
|
|
IN HWND hwnd,
|
|
IN LPCTSTR pMonitorName
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(*pfPSetupIsMonitorInstalled)(
|
|
IN HANDLE h,
|
|
IN LPCTSTR pszMonitorName
|
|
);
|
|
|
|
/********************************************************************
|
|
|
|
Printer setup class.
|
|
|
|
********************************************************************/
|
|
|
|
class TPSetup {
|
|
|
|
SIGNATURE( 'setu' )
|
|
SAFE_NEW
|
|
|
|
public:
|
|
|
|
TPSetup(
|
|
VOID
|
|
);
|
|
|
|
~TPSetup(
|
|
VOID
|
|
);
|
|
|
|
bValid(
|
|
VOID
|
|
);
|
|
|
|
private:
|
|
|
|
enum CONSTANT {
|
|
kPSetupCreateDrvSetupParams,
|
|
kPSetupDestroyDrvSetupParams,
|
|
kPSetupCreateDrvSetupPage,
|
|
kPSetupGetSelectedDriverInfo,
|
|
kPSetupDestroySelectedDriverInfo,
|
|
kPSetupInstallPrinterDriver,
|
|
kPSetupIsDriverInstalled,
|
|
kPSetupSelectDriver,
|
|
kPSetupDriverInfoFromName,
|
|
kPSetupPreSelectDriver,
|
|
kPSetupRefreshDriverList,
|
|
kPSetupCreateMonitorInfo,
|
|
kPSetupDestroyMonitorInfo,
|
|
kPSetupInstallMonitor,
|
|
kPSetupEnumMonitor,
|
|
kPSetupIsMonitorInstalled,
|
|
};
|
|
|
|
struct Functions {
|
|
FARPROC pPtr;
|
|
LPCSTR pszName;
|
|
};
|
|
|
|
BOOL _bValid;
|
|
static UINT _uRefCount;
|
|
static TLibrary *_pLibrary;
|
|
static Functions aFunctions[];
|
|
|
|
public:
|
|
|
|
inline
|
|
HANDLE
|
|
TPSetup::
|
|
PSetupCreateDrvSetupParams(
|
|
VOID
|
|
)
|
|
{
|
|
return ((pfPSetupCreateDrvSetupParams)
|
|
aFunctions[kPSetupCreateDrvSetupParams].pPtr) ();
|
|
}
|
|
|
|
inline
|
|
VOID
|
|
TPSetup::
|
|
PSetupDestroyDrvSetupParams(
|
|
IN HANDLE h
|
|
)
|
|
{
|
|
((pfPSetupDestroyDrvSetupParams)
|
|
aFunctions[kPSetupDestroyDrvSetupParams].pPtr) (
|
|
h );
|
|
}
|
|
|
|
inline
|
|
HPROPSHEETPAGE
|
|
TPSetup::
|
|
PSetupCreateDrvSetupPage(
|
|
IN HANDLE h,
|
|
IN HWND hwnd
|
|
)
|
|
{
|
|
return ((pfPSetupCreateDrvSetupPage)
|
|
aFunctions[kPSetupCreateDrvSetupPage].pPtr) (
|
|
h,
|
|
hwnd);
|
|
}
|
|
|
|
inline
|
|
PSELECTED_DRV_INFO
|
|
TPSetup::
|
|
PSetupGetSelectedDriverInfo(
|
|
IN HANDLE h
|
|
)
|
|
{
|
|
return ((pfPSetupGetSelectedDriverInfo)
|
|
aFunctions[kPSetupGetSelectedDriverInfo].pPtr) (
|
|
h );
|
|
}
|
|
|
|
inline
|
|
VOID
|
|
TPSetup::
|
|
PSetupDestroySelectedDriverInfo(
|
|
IN PSELECTED_DRV_INFO pSelectedDrvInfo
|
|
)
|
|
{
|
|
((pfPSetupDestroySelectedDriverInfo)
|
|
aFunctions[kPSetupDestroySelectedDriverInfo].pPtr) (
|
|
pSelectedDrvInfo );
|
|
}
|
|
|
|
inline
|
|
DWORD
|
|
TPSetup::
|
|
PSetupInstallPrinterDriver(
|
|
IN HANDLE h,
|
|
IN PSELECTED_DRV_INFO pSelectedDrvInfo,
|
|
IN PLATFORM platform,
|
|
IN BOOL bNt3xDriver,
|
|
IN LPCTSTR pszServerName,
|
|
IN HWND hwnd,
|
|
IN LPCTSTR pszPlatformName
|
|
)
|
|
{
|
|
return ((pfPSetupInstallPrinterDriver)
|
|
aFunctions[kPSetupInstallPrinterDriver].pPtr) (
|
|
h,
|
|
pSelectedDrvInfo,
|
|
platform,
|
|
bNt3xDriver,
|
|
pszServerName,
|
|
hwnd,
|
|
pszPlatformName );
|
|
}
|
|
|
|
inline
|
|
BOOL
|
|
TPSetup::
|
|
PSetupIsDriverInstalled(
|
|
IN LPCTSTR pszServerName,
|
|
IN LPCTSTR pszDriverName,
|
|
IN PLATFORM platform,
|
|
IN DWORD dwMajorVersion
|
|
)
|
|
{
|
|
return ((pfPSetupIsDriverInstalled)
|
|
aFunctions[kPSetupIsDriverInstalled].pPtr) (
|
|
pszServerName,
|
|
pszDriverName,
|
|
platform,
|
|
dwMajorVersion );
|
|
}
|
|
|
|
inline
|
|
BOOL
|
|
TPSetup::
|
|
PSetupSelectDriver(
|
|
IN HANDLE h,
|
|
IN HWND hwnd
|
|
)
|
|
{
|
|
return ((pfPSetupSelectDriver)
|
|
aFunctions[kPSetupSelectDriver].pPtr) (
|
|
h,
|
|
hwnd );
|
|
}
|
|
|
|
inline
|
|
BOOL
|
|
TPSetup::
|
|
PSetupRefreshDriverList(
|
|
IN HANDLE h
|
|
)
|
|
{
|
|
return ((pfPSetupRefreshDriverList)
|
|
aFunctions[kPSetupRefreshDriverList].pPtr) (
|
|
h );
|
|
}
|
|
|
|
inline
|
|
PSELECTED_DRV_INFO
|
|
TPSetup::
|
|
PSetupDriverInfoFromName(
|
|
IN HANDLE h,
|
|
IN LPCTSTR pszModel
|
|
)
|
|
{
|
|
return ((pfPSetupDriverInfoFromName)
|
|
aFunctions[kPSetupDriverInfoFromName].pPtr) (
|
|
h,
|
|
pszModel );
|
|
}
|
|
|
|
inline
|
|
BOOL
|
|
TPSetup::
|
|
PSetupPreSelectDriver(
|
|
IN HANDLE h,
|
|
IN LPCTSTR pszManufacturer,
|
|
IN LPCTSTR pszModel
|
|
)
|
|
{
|
|
return ((pfPSetupPreSelectDriver)
|
|
aFunctions[kPSetupPreSelectDriver].pPtr) (
|
|
h,
|
|
pszManufacturer,
|
|
pszModel );
|
|
}
|
|
|
|
inline
|
|
HANDLE
|
|
TPSetup::
|
|
PSetupCreateMonitorInfo(
|
|
IN HWND hwnd,
|
|
IN BOOL bOEMMonitor
|
|
)
|
|
{
|
|
return ((pfPSetupCreateMonitorInfo)
|
|
aFunctions[kPSetupCreateMonitorInfo].pPtr) (
|
|
hwnd,
|
|
bOEMMonitor );
|
|
}
|
|
|
|
inline
|
|
VOID
|
|
TPSetup::
|
|
PSetupDestroyMonitorInfo(
|
|
IN OUT HANDLE h
|
|
)
|
|
{
|
|
((pfPSetupDestroyMonitorInfo)
|
|
aFunctions[kPSetupDestroyMonitorInfo].pPtr) (
|
|
h );
|
|
}
|
|
|
|
inline
|
|
BOOL
|
|
TPSetup::
|
|
PSetupEnumMonitor(
|
|
IN HANDLE h,
|
|
IN DWORD dwIndex,
|
|
OUT LPTSTR pMonitorName,
|
|
IN OUT LPDWORD pdwSize
|
|
)
|
|
{
|
|
return ((pfPSetupEnumMonitor)
|
|
aFunctions[kPSetupEnumMonitor].pPtr) (
|
|
h,
|
|
dwIndex,
|
|
pMonitorName,
|
|
pdwSize );
|
|
}
|
|
|
|
inline
|
|
BOOL
|
|
TPSetup::
|
|
PSetupInstallMonitor(
|
|
IN HANDLE h,
|
|
IN HWND hwnd,
|
|
IN LPCTSTR pMonitorName
|
|
)
|
|
{
|
|
return ((pfPSetupInstallMonitor)
|
|
aFunctions[kPSetupInstallMonitor].pPtr) (
|
|
h,
|
|
hwnd,
|
|
pMonitorName );
|
|
}
|
|
|
|
inline
|
|
BOOL
|
|
TPSetup::
|
|
PSetupIsMonitorInstalled(
|
|
IN HANDLE h,
|
|
IN LPCTSTR pMonitorName
|
|
)
|
|
{
|
|
return ((pfPSetupIsMonitorInstalled)
|
|
aFunctions[kPSetupIsMonitorInstalled].pPtr) (
|
|
h,
|
|
pMonitorName );
|
|
}
|
|
|
|
protected:
|
|
|
|
//
|
|
// Prevent copying.
|
|
//
|
|
TPSetup(
|
|
const TPSetup &
|
|
);
|
|
|
|
//
|
|
// Prevent assignment.
|
|
//
|
|
TPSetup &
|
|
operator =(
|
|
const TPSetup &
|
|
);
|
|
|
|
private:
|
|
|
|
BOOL
|
|
bLoad(
|
|
VOID
|
|
);
|
|
|
|
VOID
|
|
vUnLoad(
|
|
VOID
|
|
);
|
|
|
|
};
|
|
|
|
|
|
#endif
|
|
|
|
|