161 lines
8.3 KiB
C
161 lines
8.3 KiB
C
|
/*++
|
||
|
|
||
|
Copyright (c) 1990-1996 Microsoft Corporation
|
||
|
All rights reserved
|
||
|
|
||
|
Module Name:
|
||
|
|
||
|
printui.h
|
||
|
|
||
|
Abstract:
|
||
|
|
||
|
Plug and Play interface printui.dll and ntprint.dll.
|
||
|
|
||
|
Author:
|
||
|
|
||
|
Steve Kiraly (SteveKi) 30-Oct-1996
|
||
|
|
||
|
Environment:
|
||
|
|
||
|
User Mode - Win32
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
--*/
|
||
|
|
||
|
#ifndef _PRINTUI_H
|
||
|
#define _PRINTUI_H
|
||
|
|
||
|
typedef enum {
|
||
|
kAdvInf_ColorPrinter = 1 << 0, // The PnpInterface installed a color printer
|
||
|
} EAdvInfReturnFlags;
|
||
|
|
||
|
typedef enum {
|
||
|
kPnPInterface_WebPointAndPrint = 1 << 0, // Web point and print install
|
||
|
kPnPInterface_PromptForCD = 1 << 1, // Prompt for cd
|
||
|
kPnPInterface_Quiet = 1 << 2, // No error messages
|
||
|
kPnPInterface_NoShare = 1 << 3, // Do not share printer
|
||
|
kPnpInterface_UseExisting = 1 << 4, // Use driver if installed (Hydra)
|
||
|
kPnpInterface_PromptIfUnknownDriver = 1 << 5, // Prompt user if the printer driver is not known
|
||
|
kPnPInterface_PromptIfFileNeeded = 1 << 6, // Prompt if files are needed
|
||
|
kPnpInterface_HydraSpecific = 1 << 7, // Hydra specific flag
|
||
|
kPnPInterface_Share = 1 << 8, // Caller wants the printer shared
|
||
|
kPnPInterface_WindowsUpdate = 1 << 9, // Windows Update case
|
||
|
kPnPInterface_DontAutoGenerateName = 1 << 10, // Don't auto generate mangled printer name
|
||
|
kPnPInterface_UseNonLocalizedStrings= 1 << 11, // Use non localized Environment and Version
|
||
|
kPnPInterface_SupressSetupUI = 1 << 12, // Supress setup warnings UI (super quiet mode)
|
||
|
kPnPInterface_InstallColorProfiles = 1 << 13 // Install ICM for color printer drivers
|
||
|
} EPnPInterfaceFlags;
|
||
|
|
||
|
typedef enum {
|
||
|
kPrinterInstall, // Do printer quite install
|
||
|
kInstallWizard, // Do install wizard
|
||
|
kDestroyWizardData, // Do destroy wizard data
|
||
|
kInfInstall, // Do inf installation
|
||
|
kInfDriverInstall, // Do inf driver installation
|
||
|
kDriverRemoval, // Do driver removal
|
||
|
kAdvInfInstall // Do Inf Install with extras.
|
||
|
} EPnPFunctionCode;
|
||
|
|
||
|
typedef struct _TPrinterInstall {
|
||
|
UINT cbSize; // Size of this structure for validation purposes
|
||
|
LPCTSTR pszServerName; // Machine name NULL equals local machine
|
||
|
LPCTSTR pszDriverName; // Pointer to printer driver name.
|
||
|
LPCTSTR pszPortName; // Name of port to install
|
||
|
LPTSTR pszPrinterNameBuffer; // Buffer where to return fully qualified printer name.
|
||
|
UINT cchPrinterName; // Size of printer name buffer in characters
|
||
|
} TPrinterInstall;
|
||
|
|
||
|
typedef struct _TInstallWizard {
|
||
|
UINT cbSize; // Size of this structure for validation
|
||
|
LPCTSTR pszServerName; // Machine name NULL equals local machine
|
||
|
PSP_INSTALLWIZARD_DATA pData; // Pointer to install wizard data
|
||
|
PVOID pReferenceData; // Class installer instance data
|
||
|
} TInstallWizard;
|
||
|
|
||
|
typedef struct _TDestroyWizard {
|
||
|
UINT cbSize; // Size of this structure for validation purposes
|
||
|
LPCTSTR pszServerName; // Machine name NULL equals local machine
|
||
|
PSP_INSTALLWIZARD_DATA pData; // Pointer to install wizard data
|
||
|
PVOID pReferenceData; // Class installer instance data
|
||
|
} TDestroyWizard;
|
||
|
|
||
|
typedef struct _TInfInstall {
|
||
|
UINT cbSize; // Size of this structure for validation purposes
|
||
|
LPCTSTR pszServerName; // Machine name NULL equals local machine
|
||
|
LPCTSTR pszInfName; // Name of INF file including full path
|
||
|
LPCTSTR pszModelName; // Model name of printer in inf to install
|
||
|
LPCTSTR pszPortName; // Port name where to install printer
|
||
|
LPTSTR pszPrinterNameBuffer; // Base printer name, Note if a printer exists
|
||
|
// with this name a unique name will be
|
||
|
// generated ie. "printer (Copy 1)". This parameter
|
||
|
// may contain the null string in which case the printer
|
||
|
// name will be auto generated using the model name
|
||
|
// as the base name. This parameter can be null,
|
||
|
// and the new name will not be copied back
|
||
|
UINT cchPrinterName; // Size of printer name buffer in characters
|
||
|
LPCTSTR pszSourcePath; // Printer driver sources path
|
||
|
DWORD dwFlags; // Install flags
|
||
|
} TInfInstall;
|
||
|
|
||
|
typedef struct _TAdvInfInstall {
|
||
|
UINT cbSize; // Size of this structure for validation purposes
|
||
|
LPCTSTR pszServerName; // Machine name NULL equals local machine
|
||
|
LPCTSTR pszInfName; // Name of INF file including full path
|
||
|
LPCTSTR pszModelName; // Model name of printer in inf to install
|
||
|
LPCTSTR pszPortName; // Port name where to install printer
|
||
|
LPTSTR pszPrinterNameBuffer; // Base printer name, Note if a printer exists
|
||
|
// with this name a unique name will be
|
||
|
// generated ie. "printer (Copy 1)". This parameter
|
||
|
// may contain the null string in which case the printer
|
||
|
// name will be auto generated using the model name
|
||
|
// as the base name. This parameter can be null,
|
||
|
// and the new name will not be copied back
|
||
|
UINT cchPrinterName; // Size of printer name buffer in characters
|
||
|
LPCTSTR pszSourcePath; // Printer driver sources path
|
||
|
DWORD dwFlags; // Install flags
|
||
|
DWORD dwAttributes; // Printer install attributes
|
||
|
PSECURITY_DESCRIPTOR pSecurityDescriptor; // Security Descriptor to set.
|
||
|
DWORD dwOutFlags; // A set of flags to be returned back to our caller.
|
||
|
} TAdvInfInstall;
|
||
|
|
||
|
|
||
|
typedef struct _TInfDriverInstall {
|
||
|
UINT cbSize; // Size of this structure for validation purposes
|
||
|
LPCTSTR pszServerName; // Machine name NULL equals local machine
|
||
|
LPCTSTR pszInfName; // Name of INF file including full path
|
||
|
LPCTSTR pszModelName; // Model name of printer in inf to install
|
||
|
LPCTSTR pszSourcePath; // Printer driver sources path
|
||
|
LPCTSTR pszArchitecture; // Architecture string
|
||
|
LPCTSTR pszVersion; // Driver version string
|
||
|
DWORD dwFlags; // Install flags
|
||
|
} TInfDriverInstall;
|
||
|
|
||
|
typedef struct _TDriverRemoval {
|
||
|
UINT cbSize; // Size of this structure for validation purposes
|
||
|
LPCTSTR pszServerName; // Machine name NULL equals local machine
|
||
|
LPCTSTR pszModelName; // Model name of printer in inf to install
|
||
|
LPCTSTR pszArchitecture; // Architecture string
|
||
|
LPCTSTR pszVersion; // Driver version string
|
||
|
DWORD dwFlags; // Removal flags
|
||
|
} TDriverRemoval;
|
||
|
|
||
|
typedef union _TParameterBlock {
|
||
|
TPrinterInstall *pPrinterInstall; // Pointer to printer install wizard
|
||
|
TInstallWizard *pInstallWizard; // Pointer to install wizard data
|
||
|
TDestroyWizard *pDestroyWizard; // Pointer to destroy wizard data
|
||
|
TInfInstall *pInfInstall; // Pointer to inf install data
|
||
|
TAdvInfInstall *pAdvInfInstall; // Pointer to advanced inf install data
|
||
|
TInfDriverInstall *pInfDriverInstall; // Pointer to inf driver install data
|
||
|
TDriverRemoval *pDriverRemoval; // Pointer to driver removal data
|
||
|
} TParameterBlock;
|
||
|
|
||
|
DWORD
|
||
|
PnPInterface(
|
||
|
IN EPnPFunctionCode Function, // Function code
|
||
|
IN TParameterBlock *pParameterBlock // Pointer to parameter block
|
||
|
);
|
||
|
|
||
|
#endif
|
||
|
|