mirror of https://github.com/tongzx/nt5src
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.
198 lines
4.1 KiB
198 lines
4.1 KiB
/*****************************************************************************\
|
|
* MODULE: webpnp.h
|
|
*
|
|
* This is the header module for webpnp.c. This contains the routines
|
|
* necessary for processing .BIN files.
|
|
*
|
|
*
|
|
* Copyright (C) 1996-1997 Microsoft Corporation
|
|
* Copyright (C) 1996-1997 Hewlett Packard
|
|
*
|
|
* history:
|
|
* 25-Feb-1997 <chriswil> created.
|
|
*
|
|
\*****************************************************************************/
|
|
#ifndef _WEBPNP_H
|
|
#define _WEBPNP_H
|
|
|
|
#ifndef _WINSPOOL_
|
|
#include <winspool.h>
|
|
#endif
|
|
|
|
|
|
/*-----------------------------------*\
|
|
| webMakeOSInfo
|
|
|
|
|
| Returns OSInfo from parameters.
|
|
|
|
|
\*-----------------------------------*/
|
|
_inline DWORD webMakeOSInfo(
|
|
BYTE bArch,
|
|
BYTE bPlatform,
|
|
BYTE bMajVer,
|
|
BYTE bMinVer)
|
|
{
|
|
return (DWORD)MAKELONG(MAKEWORD(bArch, bPlatform), MAKEWORD(bMinVer, bMajVer));
|
|
}
|
|
|
|
|
|
/*-----------------------------------*\
|
|
| webCreateOSInfo
|
|
|
|
|
| Builds an OS Info DWORD.
|
|
|
|
|
\*-----------------------------------*/
|
|
_inline DWORD webCreateOSInfo(VOID)
|
|
{
|
|
SYSTEM_INFO si;
|
|
OSVERSIONINFO os;
|
|
BYTE bMaj;
|
|
BYTE bMin;
|
|
BYTE bArch;
|
|
BYTE bPlat;
|
|
|
|
|
|
// Retrieve the OS version and architecture
|
|
// information.
|
|
//
|
|
os.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
|
|
|
|
GetSystemInfo(&si);
|
|
GetVersionEx(&os);
|
|
|
|
|
|
// Build our client-info return values.
|
|
//
|
|
bMaj = (BYTE)(LOWORD(os.dwMajorVersion));
|
|
bMin = (BYTE)(LOWORD(os.dwMinorVersion));
|
|
bPlat = (BYTE)(LOWORD(os.dwPlatformId));
|
|
bArch = (BYTE)(LOBYTE(si.wProcessorArchitecture));
|
|
|
|
return webMakeOSInfo(bArch, bPlat, bMaj, bMin);
|
|
}
|
|
|
|
|
|
/*-----------------------------------*\
|
|
| webGetOSArch
|
|
|
|
|
| Returns architecture of os-info.
|
|
|
|
|
\*-----------------------------------*/
|
|
_inline WORD webGetOSArch(
|
|
DWORD dwInfo)
|
|
{
|
|
return (WORD)LOBYTE(LOWORD(dwInfo));
|
|
}
|
|
|
|
|
|
/*-----------------------------------*\
|
|
| webGetOSPlatform
|
|
|
|
|
| Returns platform of os-info.
|
|
|
|
|
\*-----------------------------------*/
|
|
_inline DWORD webGetOSPlatform(
|
|
DWORD dwInfo)
|
|
{
|
|
return (DWORD)HIBYTE(LOWORD(dwInfo));
|
|
}
|
|
|
|
|
|
/*-----------------------------------*\
|
|
| webGetOSMajorVer
|
|
|
|
|
| Returns major version of os-info.
|
|
|
|
|
\*-----------------------------------*/
|
|
_inline DWORD webGetOSMajorVer(
|
|
DWORD dwInfo)
|
|
{
|
|
return (DWORD)(HIBYTE(HIWORD(dwInfo)));
|
|
}
|
|
|
|
|
|
/*-----------------------------------*\
|
|
| webGetOSMinorVer
|
|
|
|
|
| Returns minor version of os-info.
|
|
|
|
|
\*-----------------------------------*/
|
|
_inline DWORD webGetOSMinorVer(
|
|
DWORD dwInfo)
|
|
{
|
|
return (DWORD)(LOBYTE(HIWORD(dwInfo)));
|
|
}
|
|
|
|
|
|
#ifdef __cplusplus // Place this here to prevent decorating of symbols
|
|
extern "C" { // when doing C++ stuff.
|
|
#endif //
|
|
|
|
|
|
// WEB_FILEMAP
|
|
//
|
|
typedef struct _WEB_FILEMAP {
|
|
|
|
HANDLE hFile;
|
|
HANDLE hMap;
|
|
|
|
} WEB_FILEMAP;
|
|
typedef WEB_FILEMAP *PWEB_FILEMAP;
|
|
typedef WEB_FILEMAP NEAR *NPWEB_FILEMAP;
|
|
typedef WEB_FILEMAP FAR *LPWEB_FILEMAP;
|
|
|
|
|
|
// Device-Bin Header Structure.
|
|
//
|
|
typedef struct _DEVBIN_HEAD {
|
|
|
|
BOOL bDevMode;
|
|
DWORD cItems;
|
|
|
|
} DEVBIN_HEAD;
|
|
typedef DEVBIN_HEAD *PDEVBIN_HEAD;
|
|
typedef DEVBIN_HEAD NEAR *NPDEVBIN_HEAD;
|
|
typedef DEVBIN_HEAD FAR *LPDEVBIN_HEAD;
|
|
|
|
|
|
// Device-Bin Structure.
|
|
//
|
|
typedef struct _DEVBIN_INFO {
|
|
|
|
DWORD cbSize;
|
|
DWORD dwType;
|
|
DWORD pKey;
|
|
DWORD pValue;
|
|
DWORD pData;
|
|
DWORD cbData;
|
|
|
|
} DEVBIN_INFO;
|
|
typedef DEVBIN_INFO *PDEVBIN_INFO;
|
|
typedef DEVBIN_INFO NEAR *NPDEVBIN_INFO;
|
|
typedef DEVBIN_INFO FAR *LPDEVBIN_INFO;
|
|
|
|
|
|
// BIN-Routines.
|
|
//
|
|
#define WEB_ENUM_KEY 0
|
|
#define WEB_ENUM_ICM 1
|
|
|
|
typedef BOOL (CALLBACK* WEBENUMKEYPROC)(LPCTSTR, LPVOID);
|
|
typedef BOOL (CALLBACK* WEBENUMICMPROC)(LPCTSTR, LPCTSTR, LPVOID);
|
|
typedef BOOL (CALLBACK* WEBGENCOPYFILEPATHPROC)(LPCWSTR, LPCWSTR, LPBYTE, DWORD, LPWSTR, LPDWORD, LPWSTR, LPDWORD, DWORD);
|
|
|
|
BOOL webWritePrinterInfo(HANDLE, LPCTSTR);
|
|
BOOL webReadPrinterInfo(HANDLE, LPCTSTR, LPCTSTR);
|
|
BOOL webEnumPrinterInfo(HANDLE, DWORD, DWORD, FARPROC, LPVOID);
|
|
|
|
|
|
// SplLib Exports.
|
|
//
|
|
BOOL WebPnpEntry(LPCTSTR);
|
|
BOOL WebPnpPostEntry(BOOL, LPCTSTR, LPCTSTR, LPCTSTR);
|
|
|
|
|
|
#ifdef __cplusplus // Place this here to prevent decorating of symbols
|
|
} // when doing C++ stuff.
|
|
#endif //
|
|
#endif
|