Leaked source code of windows server 2003
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.
 
 
 
 
 
 

153 lines
4.3 KiB

/*++
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 <winnet.h>
#include <wfwnet.h>
#include <spl_wnt.h>
#include <bseerr.h>
/*
* 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)