/************************************************************************* * * 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_ */