Windows NT 4.0 source code leak
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

/*++
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