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