summaryrefslogtreecommitdiffstats
path: root/private/nw/nwscript/inc
diff options
context:
space:
mode:
authorAdam <you@example.com>2020-05-17 05:51:50 +0200
committerAdam <you@example.com>2020-05-17 05:51:50 +0200
commite611b132f9b8abe35b362e5870b74bce94a1e58e (patch)
treea5781d2ec0e085eeca33cf350cf878f2efea6fe5 /private/nw/nwscript/inc
downloadNT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.gz
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.bz2
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.lz
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.xz
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.zst
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.zip
Diffstat (limited to 'private/nw/nwscript/inc')
-rw-r--r--private/nw/nwscript/inc/common.h195
-rw-r--r--private/nw/nwscript/inc/dbcs.h26
-rw-r--r--private/nw/nwscript/inc/ntnw.h46
-rw-r--r--private/nw/nwscript/inc/nwlibs.h371
-rw-r--r--private/nw/nwscript/inc/nwscript.h321
5 files changed, 959 insertions, 0 deletions
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 <nt.h>
+#include <ntrtl.h>
+#include <nturtl.h>
+#include <stdio.h>
+#include <conio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <stdlib.h>
+#include <windows.h>
+#include <nds.h>
+#include <ndsapi32.h>
+#include <nwapi32.h>
+
+#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