/*****************************************************************************\ * 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 created. * \*****************************************************************************/ #ifndef _WEBPNP_H #define _WEBPNP_H #ifndef _WINSPOOL_ #include #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