From e611b132f9b8abe35b362e5870b74bce94a1e58e Mon Sep 17 00:00:00 2001 From: Adam Date: Sat, 16 May 2020 20:51:50 -0700 Subject: initial commit --- private/nw/nwscript/inc/common.h | 195 +++++++++++++++++++ private/nw/nwscript/inc/dbcs.h | 26 +++ private/nw/nwscript/inc/ntnw.h | 46 +++++ private/nw/nwscript/inc/nwlibs.h | 371 +++++++++++++++++++++++++++++++++++++ private/nw/nwscript/inc/nwscript.h | 321 ++++++++++++++++++++++++++++++++ 5 files changed, 959 insertions(+) create mode 100644 private/nw/nwscript/inc/common.h create mode 100644 private/nw/nwscript/inc/dbcs.h create mode 100644 private/nw/nwscript/inc/ntnw.h create mode 100644 private/nw/nwscript/inc/nwlibs.h create mode 100644 private/nw/nwscript/inc/nwscript.h (limited to 'private/nw/nwscript/inc') diff --git a/private/nw/nwscript/inc/common.h b/private/nw/nwscript/inc/common.h new file mode 100644 index 000000000..14764853d --- /dev/null +++ b/private/nw/nwscript/inc/common.h @@ -0,0 +1,195 @@ + +/************************************************************************* +* +* COMMON.H +* +* Common header file +* +* Copyright (c) 1995 Microsoft Corporation +* +* $Log: N:\NT\PRIVATE\NW4\NWSCRIPT\INC\VCS\COMMON.H $ +* +* Rev 1.3 22 Dec 1995 14:20:06 terryt +* Add Microsoft headers +* +* Rev 1.2 22 Nov 1995 15:44:26 terryt +* Use proper NetWare user name call +* +* Rev 1.1 20 Nov 1995 15:18:46 terryt +* Context and capture changes +* +* Rev 1.0 15 Nov 1995 18:05:30 terryt +* Initial revision. +* +* Rev 1.2 25 Aug 1995 17:03:32 terryt +* CAPTURE support +* +* Rev 1.1 26 Jul 1995 16:01:12 terryt +* Get rid of unneccessary externs +* +* Rev 1.0 15 May 1995 19:09:28 terryt +* Initial revision. +* +*************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "dbcs.h" +#include "inc\nwlibs.h" + +#include "nwscript.h" + + +#define MAX_NAME_LEN 48 +#define MAX_PASSWORD_LEN 128 +#define MAX_PATH_LEN 304 //From NW programmer's guide p268. + +/* for map only */ +#define MAX_VOLUME_LEN 256 // 17 for 3X +#define MAX_DIR_PATH_LEN 256 + +/* for capture only */ +#define MAX_JOB_NAME_LEN 32 +#define MAX_QUEUE_NAME_LEN 1024 +#define MAX_BANNER_USER_NAME 13 + +/* for common only */ +#define PATH_SEPERATOR ";" + + +/* + Function definations + */ +/* used by login.c and script.c */ +void BreakOff(void); +void BreakOn(void); + +/* used by common setpass*/ +void xstrupr(char *buffer); +void ReadPassword(char * Password); + +/* used by map attach login*/ +int CAttachToFileServer(char *ServerName, unsigned int *pConn, int * pbAlreadyAttached); +int Login(char *UserName, char *ServerName, char *Password, int bReadPassword); + +/* used by map attach login*/ +int ReadName (char * Name); + +/* used by map login */ +void DisplayError(int error ,char *functionName); +char * GetDosEnv1(void); +char * NWGetPath(void); +int GetRestEnvLen (char *lpRest); + +int MemorySegmentLargeEnough (int nInsertByte); +int IsSearchDrive(int driveNum); +int GetDriveFromSearchNumber (int searchNumber); + +/* used by login logout*/ +void SetLoginDirectory (PBYTE); + +/* used by all */ +int Map (char * buffer); +void DisplayMapping(void); +int CGetDefaultConnectionID ( unsigned int * pConn ); +int GetConnectionInfo (unsigned int conn, + char * serverName, + char * userName, + unsigned int * pconnNum, + unsigned char * loginTime); + +extern char * LOGIN_NAME; +extern char *NDS_FULL_NAME; +extern char *REQUESTER_CONTEXT; +extern char *TYPED_USER_NAME; +extern PWCHAR TYPED_USER_NAME_w; +extern PBYTE NDSTREE; +extern PWCHAR NDSTREE_w; +extern UNICODE_STRING NDSTREE_u; +extern PBYTE PREFERRED_SERVER; + +/* + String definitions. + */ +extern char *__Day__[7]; +extern char *__Month__[12]; +extern char *__AMPM__[2]; +extern char *__GREETING__[3]; + +extern char __DEL__[]; +extern char __REM__[]; +extern char __INS__[]; +extern char __ROOT__[]; +extern char __NEXT__[]; + +extern char __AUTOENDCAP__[]; +extern char __BANNER__[]; +extern char __COPIES__[]; +extern char __CREATE__[]; +extern WCHAR __DISABLED__[]; +extern WCHAR __ENABLED__[]; +extern WCHAR __YES__[]; +extern WCHAR __NO__[]; +extern WCHAR __SECONDS__[]; +extern WCHAR __CONVERT_TO_SPACE__[]; +extern WCHAR __NO_CONVERSION__[]; +extern WCHAR __NOTIFY_USER__[]; +extern WCHAR __NOT_NOTIFY_USER__[]; +extern WCHAR __NONE__[]; +extern char __FORMFEED__[]; +extern char __FORM__[]; +extern char __JOB_DESCRIPTION__[]; +extern char __JOB__[]; +extern char __KEEP__[]; +extern char __LOCAL__[]; +extern char __LOCAL_2__[]; +extern char __LOCAL_3__[]; +extern char __NAME__[]; +extern char __NOAUTOENDCAP__[]; +extern char __NOBANNER__[]; +extern char __NOFORMFEED__[]; +extern char __NONOTIFY__[]; +extern char __NOTABS__[]; +extern char __NOTIFY__[]; +extern char __QUEUE__[]; +extern char __PRINTER__[]; +extern char __OPT_NO__[]; +extern char __SERVER__[]; +extern char __SHORT_FOR_AUTOENDCAP__[]; +extern char __SHORT_FOR_BANNER__[]; +extern char __SHORT_FOR_COPIES__[]; +extern char __SHORT_FOR_CREATE__[]; +extern char __SHORT_FOR_FORMFEED__[]; +extern char __SHORT_FOR_FORM__[]; +extern char __SHORT_FOR_JOB__[]; +extern char __SHORT_FOR_KEEP__[]; +extern char __SHORT_FOR_LOCAL__[]; +extern char __SHORT_FOR_NAME__[]; +extern char __SHORT_FOR_NOAUTOENDCAP__[]; +extern char __SHORT_FOR_NOBANNER__[]; +extern char __SHORT_FOR_NOFORMFEED__[]; +extern char __SHORT_FOR_NONOTIFY__[]; +extern char __SHORT_FOR_NOTABS__[]; +extern char __SHORT_FOR_NOTIFY__[]; +extern char __SHORT_FOR_QUEUE__[]; +extern char __SHORT_FOR_PRINTER__[]; +extern char __SHORT_FOR_SERVER__[]; +extern char __SHORT_FOR_TABS__[]; +extern char __SHORT_FOR_TIMEOUT__[]; +extern char __SHOW__[]; +extern char __TABS__[]; +extern char __TIMEOUT__[]; + +extern unsigned int CaptureStringsLoaded; +extern unsigned int fNDS; diff --git a/private/nw/nwscript/inc/dbcs.h b/private/nw/nwscript/inc/dbcs.h new file mode 100644 index 000000000..2fb4a5b5b --- /dev/null +++ b/private/nw/nwscript/inc/dbcs.h @@ -0,0 +1,26 @@ + +/************************************************************************* +* +* DBCS.H +* +* DBCS header file +* +* Copyright (c) 1995 Microsoft Corporation +* +* $Log: N:\NT\PRIVATE\NW4\NWSCRIPT\INC\VCS\DBCS.H $ +* +* Rev 1.1 22 Dec 1995 14:20:14 terryt +* Add Microsoft headers +* +* Rev 1.0 15 Nov 1995 18:05:32 terryt +* Initial revision. +* +* Rev 1.1 25 Aug 1995 17:03:40 terryt +* CAPTURE support +* +* Rev 1.0 15 May 1995 19:09:32 terryt +* Initial revision. +* +*************************************************************************/ +unsigned char *NWAnsiNext(unsigned char *puch); +unsigned char *NWAnsiPrev(unsigned char *psz, unsigned char *puch); diff --git a/private/nw/nwscript/inc/ntnw.h b/private/nw/nwscript/inc/ntnw.h new file mode 100644 index 000000000..a89e15720 --- /dev/null +++ b/private/nw/nwscript/inc/ntnw.h @@ -0,0 +1,46 @@ + +/************************************************************************* +* +* NTNW.H +* +* NT specific NetWare defines +* +* Copyright (c) 1995 Microsoft Corporation +* +* $Log: N:\NT\PRIVATE\NW4\NWSCRIPT\INC\VCS\NTNW.H $ +* +* Rev 1.1 22 Dec 1995 14:20:20 terryt +* Add Microsoft headers +* +* Rev 1.0 15 Nov 1995 18:05:34 terryt +* Initial revision. +* +* Rev 1.0 15 May 1995 19:09:36 terryt +* Initial revision. +* +*************************************************************************/ + +/* + * This must be kept in sync with the NWAPI32 library. This are + * internal data structures and routines. + */ +typedef struct _NWC_SERVER_INFO { + HANDLE hConn ; + UNICODE_STRING ServerString ; +} NWC_SERVER_INFO, *PNWC_SERVER_INFO ; + +extern NTSTATUS +NwlibMakeNcp( + IN HANDLE DeviceHandle, + IN ULONG FsControlCode, + IN ULONG RequestBufferSize, + IN ULONG ResponseBufferSize, + IN PCHAR FormatString, + ... // Arguments to FormatString + ); + +DWORD szToWide( LPWSTR lpszW, LPCSTR lpszC, INT nSize ); +DWORD WideTosz( LPSTR lpszC, LPWSTR lpszW, INT nSize ); + +extern TCHAR NW_PROVIDER[60]; + diff --git a/private/nw/nwscript/inc/nwlibs.h b/private/nw/nwscript/inc/nwlibs.h new file mode 100644 index 000000000..64a187e52 --- /dev/null +++ b/private/nw/nwscript/inc/nwlibs.h @@ -0,0 +1,371 @@ + +/************************************************************************* +* +* NWLIBS.H +* +* Prototypes +* +* Copyright (c) 1995 Microsoft Corporation +* +* $Log: N:\NT\PRIVATE\NW4\NWSCRIPT\INC\VCS\NWLIBS.H $ +* +* Rev 1.1 22 Dec 1995 14:20:28 terryt +* Add Microsoft headers +* +* Rev 1.0 15 Nov 1995 18:05:36 terryt +* Initial revision. +* +* Rev 1.1 25 Aug 1995 17:03:46 terryt +* CAPTURE support +* +* Rev 1.0 15 May 1995 19:09:40 terryt +* Initial revision. +* +*************************************************************************/ + +/*++ + +Copyright (c) 1994 Micro Computer Systems, Inc. + +Module Name: + + nwlibs\nwlibs.h + +Abstract: + + NW Libs prototypes. + +Author: + + Shawn Walker (v-swalk) 10-10-1994 + +Revision History: + +--*/ + +#ifndef _NWLIBS_H_ +#define _NWLIBS_H_ + + +/*++ +******************************************************************* + NetWare defaults +******************************************************************* +--*/ +#define NCP_BINDERY_OBJECT_NAME_LENGTH 48 +#define NCP_SERVER_NAME_LENGTH NCP_BINDERY_OBJECT_NAME_LENGTH + +#define NCP_MAX_PATH_LENGTH 255 +#define NCP_VOLUME_LENGTH 256 // 16 in 3X + + +/*++ +******************************************************************* + Defines for GetDrive Status +******************************************************************* +--*/ + +#define NETWARE_UNMAPPED_DRIVE 0x0000 +#define NETWARE_FREE_DRIVE 0x0000 +#define NETWARE_LOCAL_FREE_DRIVE 0x0800 +#define NETWARE_LOCAL_DRIVE 0x1000 +#define NETWARE_NETWORK_DRIVE 0x2000 +#define NETWARE_LITE_DRIVE 0x4000 +#define NETWARE_PNW_DRIVE 0x4000 +#define NETWARE_NETWARE_DRIVE 0x8000 + +#define NETWARE_FORMAT_NETWARE 0 +#define NETWARE_FORMAT_SERVER_VOLUME 1 +#define NETWARE_FORMAT_DRIVE 2 +#define NETWARE_FORMAT_UNC 3 + +#define NCP_JOB_DESCRIPTION_LENGTH 50 +#define NCP_BANNER_TEXT_LENGTH 13 +#define NCP_FORM_NAME_LENGTH 13 +#define NCP_QUEUE_NAME_LENGTH 65 + +#define CAPTURE_FLAG_PRINT_BANNER 0x80 +#define CAPTURE_FLAG_EXPAND_TABS 0x40 +#define CAPTURE_FLAG_NOTIFY 0x10 +#define CAPTURE_FLAG_NO_FORMFEED 0x08 +#define CAPTURE_FLAG_KEEP 0x04 +#define DEFAULT_PRINT_FLAGS 0xC0 +#define DEFAULT_BANNER_TEXT "LPT:" + +typedef struct _NETWARE_CAPTURE_FLAGS_RW { + unsigned char JobDescription[NCP_JOB_DESCRIPTION_LENGTH]; + unsigned char JobControlFlags; + unsigned char TabSize; + unsigned short NumCopies; + unsigned short PrintFlags; + unsigned short MaxLines; + unsigned short MaxChars; + unsigned char FormName[NCP_FORM_NAME_LENGTH]; + unsigned char Reserved1[9]; + unsigned short FormType; + unsigned char BannerText[NCP_BANNER_TEXT_LENGTH]; + unsigned char Reserved2; + unsigned short FlushCaptureTimeout; + unsigned char FlushCaptureOnClose; +} NETWARE_CAPTURE_FLAGS_RW, *PNETWARE_CAPTURE_FLAGS_RW, *LPNETWARE_CAPTURE_FLAGS_RW; + +typedef struct _NETWARE_CAPTURE_FLAGS_RO { + unsigned short ConnectionID; + unsigned short SetupStringMaxLen; + unsigned short ResetStringMaxLen; + unsigned char LPTCaptureFlag; + unsigned char FileCaptureFlag; + unsigned char TimingOutFlag; + unsigned char InProgress; + unsigned char PrintQueueFlag; + unsigned char PrintJobValid; + unsigned char QueueName[NCP_QUEUE_NAME_LENGTH]; + unsigned char ServerName[NCP_SERVER_NAME_LENGTH]; +} NETWARE_CAPTURE_FLAGS_RO, *PNETWARE_CAPTURE_FLAGS_RO, *LPNETWARE_CAPTURE_FLAGS_RO; + +#define NETWARE_CAPTURE_FLAGS_RO_SIZE sizeof(NETWARE_CAPTURE_FLAGS_RO) +#define NETWARE_CAPTURE_FLAGS_RW_SIZE sizeof(NETWARE_CAPTURE_FLAGS_RW) + +#define PS_FORM_NAME_SIZE 12 +#define PS_BANNER_NAME_SIZE 12 +#define PS_BANNER_FILE_SIZE 12 +#define PS_DEVICE_NAME_SIZE 32 +#define PS_MODE_NAME_SIZE 32 + +#define PS_BIND_NAME_SIZE NCP_BINDERY_OBJECT_NAME_LENGTH +#define PS_MAX_NAME_SIZE 514 + +/** Flags for the PS_JOB_REC structure PrintJobFlag field **/ + +#define PS_JOB_EXPAND_TABS 0x00000001 /* File type:0=Stream 1=Tab */ +#define PS_JOB_NO_FORMFEED 0x00000002 /* Formfeed tail:0=Yes 1=No */ +#define PS_JOB_NOTIFY 0x00000004 /* Notify:0=No 1=Yes */ +#define PS_JOB_PRINT_BANNER 0x00000008 /* Banner:0=No 1=Yes */ +#define PS_JOB_AUTO_END 0x00000010 /* Auto endcap:0=No 1=Yes */ +#define PS_JOB_TIMEOUT 0x00000020 /* Enable T.O.:0=No 1=Yes */ + +#define PS_JOB_ENV_DS 0x00000040 /* Use D.S. Environment */ +#define PS_JOB_ENV_MASK 0x000001C0 /* Bindery vs. D.S. Mask */ + +#define PS_JOB_DS_PRINTER 0x00000200 /* D.S. Printer not Queue */ +#define PS_JOB_PRINTER_MASK 0x00000E00 /* D.S. Printer vs. Queue */ + +/** Default Flags **/ + +#define PS_JOB_DEFAULT (NWPS_JOB_PRINT_BANNER | NWPS_JOB_AUTO_END) +#define PS_JOB_DEFAULT_COPIES 1 /* Default Number of Copies */ +#define PS_JOB_DEFAULT_TAB 8 /* Default Tab Expansion */ + +typedef struct _PS_JOB_RECORD { + DWORD PrintJobFlag; + SHORT Copies; + SHORT TimeOutCount; + UCHAR TabSize; + UCHAR LocalPrinter; + CHAR FormName[PS_FORM_NAME_SIZE + 2]; + CHAR Name[PS_BANNER_NAME_SIZE + 2]; + CHAR BannerName[PS_BANNER_FILE_SIZE + 2]; + CHAR Device[PS_DEVICE_NAME_SIZE + 2]; + CHAR Mode[PS_MODE_NAME_SIZE + 2]; + union { + struct { + /** Pad structures on even boundries **/ + + CHAR FileServer[PS_BIND_NAME_SIZE + 2]; + CHAR PrintQueue[PS_BIND_NAME_SIZE + 2]; + CHAR PrintServer[PS_BIND_NAME_SIZE + 2]; + } NonDS; + CHAR DSObjectName[PS_MAX_NAME_SIZE]; + } u; + UCHAR Reserved[392]; +} PS_JOB_RECORD, *PPS_JOB_RECORD; + +#define PS_JOB_RECORD_SIZE sizeof(PS_JOB_RECORD) + + +/*++ +******************************************************************* + FUCNTION PROTOTYPES +******************************************************************* +--*/ + +/** ATTACH.C **/ + +unsigned int +AttachToFileServer( + unsigned char *pServerName, + unsigned int *pNewConnectionId + ); + +unsigned int +DetachFromFileServer( + unsigned int ConnectionId + ); + +/** NCP.C **/ + +unsigned int +GetBinderyObjectID( + unsigned int ConnectionHandle, + char *pObjectName, + unsigned short ObjectType, + unsigned long *pObjectId + ); + + +/** CONNECT.C **/ + +unsigned int +GetDefaultConnectionID( + unsigned int *pConnectionHandle + ); + +unsigned int +GetConnectionHandle( + unsigned char *pServerName, + unsigned int *pConnectionHandle + ); + +unsigned int +GetConnectionNumber( + unsigned int ConnectionHandle, + unsigned int *pConnectionNumber + ); + +unsigned int +GetFileServerName( + unsigned int ConnectionHandle, + char *pServerName + ); + +unsigned int +GetInternetAddress( + unsigned int ConnectionHandle, + unsigned int ConnectionNumber, + unsigned char *pInternetAddress + ); + +/** DRIVE.C **/ + +unsigned int +GetDriveStatus( + unsigned short DriveNumber, + unsigned short PathFormat, + unsigned short *pStatus, + unsigned int *pConnectionHandle, + unsigned char *pRootPath, + unsigned char *pRelativePath, + unsigned char *pFullPath + ); + +unsigned int +GetFirstDrive( + unsigned short *pFirstDrive + ); + +unsigned int +ParsePath( + unsigned char *pPath, + unsigned char *pServerName, //OPTIONAL + unsigned char *pVolumeName, //OPTIONAL + unsigned char *pDirPath //OPTIONAL + ); + +unsigned int +SetDriveBase( + unsigned short DriveNumber, + unsigned char *ServerName, + unsigned int DirHandle, + unsigned char *pDirPath + ); + +unsigned int +DeleteDriveBase( + unsigned short DriveNumber + ); + +unsigned int +GetDirectoryPath( + unsigned char ConnectionHandle, + unsigned char Handle, + unsigned char *pPath + ); + +unsigned int +IsDriveRemote( + unsigned char DriveNumber, + unsigned int *pRemote + ); + +/** CAPTURE.C **/ + +unsigned int +EndCapture( + unsigned char LPTDevice + ); + +#define PS_ERR_BAD_VERSION 0x7770 +#define PS_ERR_GETTING_DEFAULT 0x7773 +#define PS_ERR_OPENING_DB 0x7774 +#define PS_ERR_READING_DB 0x7775 +#define PS_ERR_READING_RECORD 0x7776 +#define PS_ERR_INTERNAL_ERROR 0x7779 +#define PS_ERR_NO_DEFAULT_SPECIFIED 0x777B + +unsigned int +PSJobGetDefault( + unsigned int ConnectionHandle, + unsigned short SearchFlag, + unsigned char *pOwner, + unsigned char *pJobName, + PPS_JOB_RECORD pJobRecord + ); + +unsigned int +PSJobRead( + unsigned int ConnectionHandle, + unsigned char *pOwner, + unsigned char *pJobName, + PPS_JOB_RECORD pJobRecord + ); + +unsigned int +PS40JobGetDefault( + unsigned int NDSCaptureFlag, + unsigned short SearchFlag, + unsigned char *pOwner, + unsigned char *pJobName, + PPS_JOB_RECORD pJobRecord + ); + +unsigned int +PS40JobRead( + unsigned int NDSCaptureFlag, + unsigned char *pOwner, + unsigned char *pJobName, + PPS_JOB_RECORD pJobRecord + ); + +unsigned int +GetCaptureFlags( + unsigned char LPTDevice, + PNETWARE_CAPTURE_FLAGS_RW pCaptureFlagsRW, + PNETWARE_CAPTURE_FLAGS_RO pCaptureFlagsRO + ); + +unsigned int +StartQueueCapture( + unsigned int ConnectionHandle, + unsigned char LPTDevice, + unsigned char *pServerName, + unsigned char *pQueueName + ); + +unsigned int +GetDefaultPrinterQueue ( + unsigned int ConnectionHandle, + unsigned char *pServerName, + unsigned char *pQueueName + ); + +#endif /* _NWLIBS_H_ */ diff --git a/private/nw/nwscript/inc/nwscript.h b/private/nw/nwscript/inc/nwscript.h new file mode 100644 index 000000000..d930e7818 --- /dev/null +++ b/private/nw/nwscript/inc/nwscript.h @@ -0,0 +1,321 @@ +/****************************************************************************** +* +* NWSCRIPT.H +* +* This module contains typedefs and defines required for the +* NetWare script utility. +* +* Copyright (c) 1995 Microsoft Corporation +* +* $Log: N:\NT\PRIVATE\NW4\NWSCRIPT\INC\VCS\NWSCRIPT.H $ +* +* Rev 1.10 18 Apr 1996 16:53:02 terryt +* Various enhancements +* +* Rev 1.9 10 Apr 1996 14:22:36 terryt +* Hotfix for 21181hq +* +* Rev 1.10 12 Mar 1996 19:42:52 terryt +* Relative NDS name support +* +* Rev 1.9 07 Mar 1996 18:34:46 terryt +* Misc fixes +* +* Rev 1.8 22 Jan 1996 16:44:02 terryt +* Add automatic map attaches +* +* Rev 1.7 08 Jan 1996 13:58:34 terryt +* Correct NDS Preferred Server +* +* Rev 1.6 05 Jan 1996 17:19:08 terryt +* Ensure context is the correct login default +* +* Rev 1.5 04 Jan 1996 18:58:34 terryt +* Bug fixes reported by MS +* +* Rev 1.4 22 Dec 1995 14:20:34 terryt +* Add Microsoft headers +* +* Rev 1.3 28 Nov 1995 17:13:56 terryt +* Cleanup resource file +* +* Rev 1.2 22 Nov 1995 15:44:34 terryt +* Use proper NetWare user name call +* +* Rev 1.1 20 Nov 1995 16:11:34 terryt +* Context and capture changes +* +* Rev 1.0 15 Nov 1995 18:05:38 terryt +* Initial revision. +* +* Rev 1.5 25 Aug 1995 17:03:52 terryt +* CAPTURE support +* +* Rev 1.4 18 Jul 1995 16:07:52 terryt +* Screen out capture commands +* +* Rev 1.3 17 Jul 1995 09:43:02 terryt +* Use Microsoft name for environment +* +* Rev 1.2 23 Jun 1995 09:49:58 terryt +* Add error message for mapping over MS network drive +* +* Rev 1.1 23 May 1995 19:38:14 terryt +* Spruce up source +* +* Rev 1.0 15 May 1995 19:09:42 terryt +* Initial revision. +* +******************************************************************************/ + + +#define SCRIPT_ENVIRONMENT_VALUENAME L"Volatile Environment" +#define REGISTRY_PROVIDER L"System\\CurrentControlSet\\Services\\NWCWorkstation\\networkProvider" +#define REGISTRY_PROVIDERNAME L"Name" + +typedef enum SYNTAX +{ + NDSI_UNKNOWN, /* 0 */ + NDSI_DIST_NAME, /* 1 */ + NDSI_CE_STRING, /* 2 */ + NDSI_CI_STRING, /* 3 */ + NDSI_PR_STRING, /* 4 */ + NDSI_NU_STRING, /* 5 */ + NDSI_CI_LIST, /* 6 */ + NDSI_BOOLEAN, /* 7 */ + NDSI_INTEGER, /* 8 */ + NDSI_OCTET_STRING, /* 9 */ + NDSI_TEL_NUMBER, /* 10 */ + NDSI_FAX_NUMBER, /* 11 */ + NDSI_NET_ADDRESS, /* 12 */ + NDSI_OCTET_LIST, /* 13 */ + NDSI_EMAIL_ADDRESS, /* 14 */ + NDSI_PATH, /* 15 */ + NDSI_REPLICA_POINTER, /* 16 */ + NDSI_OBJECT_ACL, /* 17 */ + NDSI_PO_ADDRESS, /* 18 */ + NDSI_TIMESTAMP, /* 19 */ + NDSI_CLASS_NAME, /* 20 */ + NDSI_STREAM, /* 21 */ + NDSI_COUNTER, /* 22 */ + NDSI_BACK_LINK, /* 23 */ + NDSI_TIME, /* 24 */ + NDSI_TYPED_NAME, /* 25 */ + NDSI_HOLD, /* 26 */ + NDSI_INTERVAL, /* 27 */ + NDSI_TAX_COUNT /* 28 */ +} SYNTAX; + +#define DSCL_AFP_SERVER "AFP Server" +#define DSCL_ALIAS "Alias" +#define DSCL_BINDERY_OBJECT "Bindery Object" +#define DSCL_BINDERY_QUEUE "Bindery Queue" +#define DSCL_COMPUTER "Computer" +#define DSCL_COUNTRY "Country" +#define DSCL_DEVICE "Device" +#define DSCL_DIRECTORY_MAP "Directory Map" +#define DSCL_EXTERNAL_ENTITY "External Entity" +#define DSCL_GROUP "Group" +#define DSCL_LIST "List" +#define DSCL_LOCALITY "Locality" +#define DSCL_MESSAGE_ROUTING_GROUP "Message Routing Group" +#define DSCL_MESSAGING_SERVER "Messaging Server" +#define DSCL_NCP_SERVER "NCP Server" +#define DSCL_ORGANIZATION "Organization" +#define DSCL_ORGANIZATIONAL_PERSON "Organizational Person" +#define DSCL_ORGANIZATIONAL_ROLE "Organizational Role" +#define DSCL_ORGANIZATIONAL_UNIT "Organizational Unit" +#define DSCL_PARTITION "Partition" +#define DSCL_PERSON "Person" +#define DSCL_PRINT_SERVER "Print Server" +#define DSCL_PRINTER "Printer" +#define DSCL_PROFILE "Profile" +#define DSCL_QUEUE "Queue" +#define DSCL_RESOURCE "Resource" +#define DSCL_SERVER "Server" +#define DSCL_TOP "Top" +#define DSCL_UNKNOWN "Unknown" +#define DSCL_USER "User" +#define DSCL_VOLUME "Volume" + +#define DSAT_HOST_SERVER "Host Server" +#define DSAT_HOST_RESOURCE_NAME "Host Resource Name" +#define DSAT_PATH "Path" + +void ConvertUnicodeToAscii( PVOID ); + +void NTGetTheDate( unsigned int *, unsigned char *, unsigned char * ); +void NTGetVersionOfShell( char *, unsigned char *, unsigned char *, unsigned char * ); +void NTBreakOff( void ); +void NTBreakOn( void ); +unsigned short NTNetWareDriveStatus( unsigned short ); +unsigned int NTGetNWDrivePath( unsigned short, unsigned char *, unsigned char * ); +char * NTNWtoUNCFormat( char * ); +unsigned int NTLoginToFileServer( char *, char *, char * ); +unsigned int NTAttachToFileServer( unsigned char *, unsigned int * ); +unsigned int NTIsConnected( unsigned char * ); +unsigned int NTSetDriveBase( unsigned char *, unsigned char *, unsigned char * ); +unsigned int NTGetUserID( unsigned int, unsigned long * ); +unsigned int NTIsNetWareDrive( unsigned int ); +void NTInitProvider( void ); +void DisplayMessage( unsigned int, ... ); +void DisplayOemString( char * ); +void ExportEnv( unsigned char * ); +void ExportCurrentDirectory( int ); +void ExportCurrentDrive( int ); +void GetOldPaths( void ); +void NTPrintExtendedError( void ); +unsigned int NTGetCurrentDirectory( unsigned char, unsigned char * ); +void Capture( char ** argv, unsigned int ); +unsigned int ConverNDSPathToNetWarePathA(char *, char *, char *); + +#define CONTEXT_MAX 256 +#define ATTRBUFSIZE 2048 +#define NDS_NAME_CHARS 1024 + + +unsigned int NDSInitUserProperty( void ); +unsigned int NDSGetUserProperty( PBYTE, PBYTE Data, unsigned int, SYNTAX *, unsigned int * ); +void NDSGetVar ( PBYTE, PBYTE, unsigned int ); +unsigned int NDSChangeContext( PBYTE ); +unsigned int NDSGetContext( PBYTE, unsigned int ); +unsigned int Is40Server( unsigned int ); +unsigned int NDSfopenStream ( PBYTE, PBYTE, PHANDLE, unsigned int * ); +unsigned int IsMemberOfNDSGroup( PBYTE ); +unsigned int NDSGetProperty ( PBYTE, PBYTE, PBYTE, unsigned int, unsigned int * ); +unsigned int NDSTypeless( LPSTR, LPSTR ); +void CleanupExit( int ); +void NDSCleanup( void ); +int NTGetNWUserName( PWCHAR, PWCHAR, int ); +unsigned int NDSGetClassName( LPSTR, LPSTR ); + +unsigned int NDSCanonicalizeName( PBYTE, PBYTE, int, int ); + +#define LIST_3X_SERVER 1 +#define LIST_4X_SERVER 2 + +BOOL IsServerInAttachList( char *, unsigned int ); +void AddServerToAttachList( char *, unsigned int ); +int DoAttachProcessing( char * ); + +#define FLAGS_LOCAL_CONTEXT 0x1 +#define FLAGS_NO_CONTEXT 0x2 +#define FLAGS_TYPED_NAMES 0x4 + +unsigned int NDSAbbreviateName( DWORD, LPSTR, LPSTR ); + +/* + * Resource string IDs + */ +#define IDR_ERROR 100 +#define IDR_NO_DEFAULT_CONNECTION 101 +#define IDR_NO_KNOWN_FILE_SERVER 102 +#define IDR_LOCAL_DRIVE 103 +#define IDR_NETWARE_DRIVE 104 +#define IDR_DASHED_LINE 105 +#define IDR_LOCAL_SEARCH 106 +#define IDR_NETWARE_SEARCH 107 +#define IDR_NOT_ENOUGH_MEMORY 108 +#define IDR_PASSWORD 109 +#define IDR_ATTACHED 110 +#define IDR_ACCESS_DENIED 111 +#define IDR_UNAUTHORIZED_LOGIN_TIME 112 +#define IDR_LOGIN_DENIED_NO_CONNECTION 113 +#define IDR_UNAUTHORIZED_LOGIN_STATION 114 +#define IDR_ACCOUNT_DISABLED 115 +#define IDR_PASSWORD_EXPRIED_NO_GRACE 116 +#define IDR_MAP_NOT_ATTACHED_SERVER 117 +#define IDR_MAP_USAGE 118 +#define IDR_UNDEFINED 119 +#define IDR_DIRECTORY_NOT_FOUND 120 +#define IDR_VOLUME_NOT_EXIST 121 +#define IDR_WRONG_DRIVE 122 +#define IDR_DEL_DRIVE 123 +#define IDR_DEL_SEARCH_DRIVE 124 +#define IDR_SEARCH_DRIVE_NOT_EXIST 125 +#define IDR_NOT_NETWORK_DRIVE 126 +#define IDR_NO_DRIVE_AVAIL 127 +#define IDR_INVALID_PATH 128 +#define IDR_CAN_NOT_CHANGE_DRIVE 129 +#define IDR_MAP_INVALID_PATH 130 +#define IDR_MAP_FAILED 131 +#define IDR_NO_SCRIPT_FILE 132 +#define IDR_STRIKE_KEY 133 +#define IDR_CANNOT_EXECUTE 134 +#define IDR_ENOENT 135 +#define IDR_EXIT_NOT_SUPPORTED 136 +#define IDR_IF_TOO_DEEP 137 +#define IDR_SCRIPT_ERROR 138 +#define IDR_ORIGINAL_LINE_WAS 139 +#define IDR_BAD_COMMAND 140 +#define IDR_LABEL_NOT_FOUND 141 +#define IDR_NO_VOLUME 142 +#define IDR_ERROR_DURING 143 +#define IDR_MAP_ERROR 144 +#define IDR_ENTER_SERVER_NAME 145 +#define IDR_ENTER_LOGIN_NAME 146 +#define IDR_ERROR_SET_DEFAULT_DRIVE 147 +#define IDR_ERROR_OPEN_SCRIPT 148 +#define IDR_DIVIDE_BY_ZERO 149 +#define IDR_NEWLINE 150 +#define IDR_SERVER_USER 151 +#define IDR_NON_NETWARE_NETWORK_DRIVE 152 +#define IDR_CAPTURE_USAGE 153 +#define IDR_COPIES_EXPECTED 154 +#define IDR_COPIES_OUTOF_RANGE 155 +#define IDR_FILE_CAPTURE_UNSUPPORTED 156 +#define IDR_FORM_EXPECTED 157 +#define IDR_INVALID_BANNER 158 +#define IDR_INVALID_FORM_NAME 159 +#define IDR_INVALID_FORM_TYPE 160 +#define IDR_INVALID_LPT_NUMBER 161 +#define IDR_INVALID_PATH_NAME 162 +#define IDR_JOB_NOT_FOUND 163 +#define IDR_LPT_NUMBER_EXPECTED 164 +#define IDR_LPT_STATUS 165 +#define IDR_NOT_ACTIVE 166 +#define IDR_NO_AUTOENDCAP 167 +#define IDR_NO_PRINTERS 168 +#define IDR_LPT_STATUS_NO_BANNER 169 +#define IDR_QUEUE_NOT_EXIST 170 +#define IDR_SERVER_NOT_FOUND 171 +#define IDR_SUCCESS_QUEUE 172 +#define IDR_TABSIZE_OUTOF_RANGE 173 +#define IDR_TAB_SIZE_EXPECTED 174 +#define IDR_TIMEOUT_OUTOF_RANGE 175 +#define IDR_TIME_OUT_EXPECTED 176 +#define IDR_UNKNOW_FLAG 177 +#define IDR_DISABLED 178 +#define IDR_ENABLED 179 +#define IDR_YES 180 +#define IDR_NO 181 +#define IDR_SECONDS 182 +#define IDR_CONVERT_TO_SPACE 183 +#define IDR_NO_CONVERSION 184 +#define IDR_NOTIFY_USER 185 +#define IDR_NOT_NOTIFY_USER 186 +#define IDR_NONE 187 +#define IDR_CONNECTION_REFUSED 188 +#define IDR_LASTLOGIN_PM 189 +#define IDR_LASTLOGIN_AM 190 +#define IDR_ALL_LOCAL_DRIVES 191 +#define IDR_CHANGE_CONTEXT_ERROR 192 +#define IDR_GET_CONTEXT_ERROR 193 +#define IDR_DISPLAY_CONTEXT 194 +#define IDR_LPT_STATUS_NDS 195 +#define IDR_LPT_STATUS_NO_BANNER_NDS 196 +#define IDR_NO_QUEUE 197 +#define IDR_LASTLOGIN 198 +#define IDR_TREE_OPEN_FAILED 199 +#define IDR_NDS_CONTEXT_INVALID 200 +#define IDR_NDS_USERNAME_FAILED 201 +#define IDR_QUERY_INFO_FAILED 202 +#define IDR_NO_RESPONSE 203 +#define IDR_NDSQUEUE_NOT_EXIST 204 +#define IDR_NDSSUCCESS_QUEUE 205 +#define IDR_CAPTURE_FAILED 206 +#define IDR_CURRENT_TREE 207 +#define IDR_CURRENT_SERVER 208 +#define IDR_CURRENT_CONTEXT 209 +#define IDR_AUTHENTICATING_SERVER 210 +#define IDR_NO_END_QUOTE 211 -- cgit v1.2.3