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