/*++ Copyright (c) 1989-1993 Microsoft Corporation Module Name: locals.h Abstract: Provides the common definitions for this project. Author: Chuck Y Chan (ChuckC) 25-Mar-1993 Revision History: --*/ #define LFN 1 #include #include #include #include /* * global manifests */ // // used to figure out how to get the last error. // #define LAST_CALL_IS_LOCAL (0) #define LAST_CALL_IS_LANMAN_DRV (1) #define LAST_CALL_IS_WIN32 (2) // // the various DLLs we rely on to do the real work. // #define LANMAN_DRV "LANMAN.DRV" #define MPR_DLL "MPR.DLL" #define MPRUI_DLL "MPRUI.DLL" #define NTLANMAN_DLL "NTLANMAN.DLL" #define KERNEL32_DLL "KERNEL32.DLL" #define WINSPOOL_DRV "WINSPOOL.DRV" // // some convenient manifests for above so we dont need to // do strcmp()s all the time. // #define USE_MPR_DLL (0) #define USE_MPRUI_DLL (1) #define USE_NTLANMAN_DLL (2) #define USE_KERNEL32_DLL (3) #define USE_WINSPOOL_DRV (4) // // resource type expected by Win32 APIs // #define RESOURCETYPE_ANY 0x00000000 #define RESOURCETYPE_DISK 0x00000001 #define RESOURCETYPE_PRINT 0x00000002 #define RESOURCETYPE_ERROR 0xFFFFFFFF // // errors unknown in 16bit world. // #define WIN32_EXTENDED_ERROR 1208L #define WIN32_WN_CANCEL 1223L // // misc convenient macros // #define UNREFERENCED(x) (void)x #define TO_HWND32(x) (0xFFFF0000 | (DWORD)x) /* * various typedefs for the 16 bit functions we dynamically load */ typedef void (API *LPFN)(); typedef WORD (API *LPWNETOPENJOB)(LPSTR,LPSTR,WORD,LPINT); typedef WORD (API *LPWNETCLOSEJOB)(WORD,LPINT,LPSTR); typedef WORD (API *LPWNETWRITEJOB)(HANDLE,LPSTR,LPINT); typedef WORD (API *LPWNETABORTJOB)(WORD,LPSTR); typedef WORD (API *LPWNETHOLDJOB)(LPSTR,WORD); typedef WORD (API *LPWNETRELEASEJOB)(LPSTR,WORD); typedef WORD (API *LPWNETCANCELJOB)(LPSTR,WORD); typedef WORD (API *LPWNETSETJOBCOPIES)(LPSTR,WORD,WORD); typedef WORD (API *LPWNETWATCHQUEUE)(HWND,LPSTR,LPSTR,WORD); typedef WORD (API *LPWNETUNWATCHQUEUE)(LPSTR); typedef WORD (API *LPWNETLOCKQUEUEDATA)(LPSTR,LPSTR,LPQUEUESTRUCT FAR *); typedef WORD (API *LPWNETUNLOCKQUEUEDATA)(LPSTR); typedef WORD (API *LPWNETQPOLL)(HWND,WORD,WORD,LONG); typedef WORD (API *LPWNETDEVICEMODE)(HWND); typedef WORD (API *LPWNETVIEWQUEUEDIALOG)(HWND,LPSTR); typedef WORD (API *LPWNETGETCAPS)(WORD); typedef WORD (API *LPWNETGETERROR)(LPINT); typedef WORD (API *LPWNETGETERRORTEXT)(WORD,LPSTR,LPINT); typedef WORD (API *LPLFNFINDFIRST)(LPSTR,WORD,LPINT,LPINT,WORD,PFILEFINDBUF2); typedef WORD (API *LPLFNFINDNEXT)(HANDLE,LPINT,WORD,PFILEFINDBUF2); typedef WORD (API *LPLFNFINDCLOSE)(HANDLE); typedef WORD (API *LPLFNGETATTRIBUTES)(LPSTR,LPINT); typedef WORD (API *LPLFNSETATTRIBUTES)(LPSTR,WORD); typedef WORD (API *LPLFNCOPY)(LPSTR,LPSTR,PQUERYPROC); typedef WORD (API *LPLFNMOVE)(LPSTR,LPSTR); typedef WORD (API *LPLFNDELETE)(LPSTR); typedef WORD (API *LPLFNMKDIR)(LPSTR); typedef WORD (API *LPLFNRMDIR)(LPSTR); typedef WORD (API *LPLFNGETVOLUMELABEL)(WORD,LPSTR); typedef WORD (API *LPLFNSETVOLUMELABEL)(WORD,LPSTR); typedef WORD (API *LPLFNPARSE)(LPSTR,LPSTR,LPSTR); typedef WORD (API *LPLFNVOLUMETYPE)(WORD,LPINT); /* * other misc global data/functions */ extern WORD vLastCall ; extern WORD vLastError ; extern WORD wNetTypeCaps ; extern WORD wUserCaps ; extern WORD wConnectionCaps ; extern WORD wErrorCaps ; extern WORD wDialogCaps ; extern WORD wAdminCaps ; extern WORD wSpecVersion; extern WORD wDriverVersion; WORD API WNetGetCaps16(WORD p1) ; WORD API WNetGetError16(LPINT p1) ; WORD API WNetGetErrorText16(WORD p1, LPSTR p2, LPINT p3) ; DWORD API GetLastError32(VOID) ; WORD SetLastError(WORD err) ; DWORD MapWNType16To32(WORD nType) ; WORD MapWin32ErrorToWN16(DWORD err) ; WORD GetLanmanDrvEntryPoints(LPFN *lplpfn, LPSTR lpName) ; // // we define this because the compiler chokes if we add yet // more to the include path to get to lmerr.h. // // this is not that bad since the value below will never change. // #define NERR_BASE 2100 #define NERR_UseNotFound (NERR_BASE+150)