Windows NT 4.0 source code leak
 
 
 
 
 
 

1852 lines
69 KiB

/***************************************************************************
*
* File Name: ./netware/nwpsrv.h
*
* Copyright (C) 1993-1996 Hewlett-Packard Company.
* All rights reserved.
*
* 11311 Chinden Blvd.
* Boise, Idaho 83714
*
* This is a part of the HP JetAdmin Printer Utility
*
* This source code is only intended as a supplement for support and
* localization of HP JetAdmin by 3rd party Operating System vendors.
* Modification of source code cannot be made without the express written
* consent of Hewlett-Packard.
*
*
* Description:
*
* Author: Name
*
*
* Modification history:
*
* date initials change description
*
* mm-dd-yy MJB
*
*
*
*
*
*
***************************************************************************/
/*------------------------------------------------------------------*
* Copyright Unpublished Work of Novell, Inc. All Rights Reserved
*
* THIS WORK IS AN UNPUBLISHED WORK AND CONTAINS CONFIDENTIAL,
* PROPRIETARY AND TRADE SECRET INFORMATION OF NOVELL, INC.
* ACCESS TO THIS WORK IS RESTRICTED TO (I) NOVELL EMPLOYEES
* WHO HAVE A NEED TO KNOW TO PERFORM TASKS WITHIN THE SCOPE
* OF THEIR ASSIGNMENTS AND (ii) ENTITIES OTHER THAN NOVELL
* WHO HAVE ENTERED INTO APPROPRIATE LICENSE AGREEMENTS.
* NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED, COPIED,
* DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED,
* CONDENSED, EXPANDED, COLLECTED, COMPILED, LINKED, RECAST,
* TRANSFORMED OR ADAPTED WITHOUT THE PRIOR WRITTEN CONSENT OF
* NOVELL. ANY USE OR EXPLOITATION OF THIS WORK WITHOUT AUTHORIZATION
* COULD SUBJECT THE PERPETRATOR TO CRIMINAL AND CIVIL LIABILITY.
*------------------------------------------------------------------*/
/********************************************************************
:
: Program Name: NetWare Print Services Header File.
:
: Filename: NWPSrv.H
:
: Date Created: August 21, 1991
:
: Version: 1.0
:
: Programmers: Joe Ivie
:
: Files Used:
:
: Modifications:
:
: Comments:
:
: COPYRIGHT (c) 1992 Novell, Inc. All Rights Reserved
:
********************************************************************/
/* Don't let the header be included twice */
#ifndef NWPS_EXTERNAL_H
#define NWPS_EXTERNAL_H
/* My definitions in case someone forgot theirs */
#ifndef DWORD
#define DWORD unsigned long
#endif
#ifndef WORD
#define WORD unsigned int
#endif
#ifndef BYTE
#define BYTE unsigned short
#endif
#ifndef NWCCODE
#define NWCCODE WORD
#endif
#ifndef NWFAR
#ifdef NLM
#define NWFAR
#define NWPASCAL
#else
#define NWFAR far
#define NWPASCAL pascal
#endif /* NLM */
#endif /* NWFAR */
/*
Maximum name sizes
*/
/* General Name sizes */
#define NWPS_BIND_NAME_SIZE 48 /* Bindery name byte size */
#define NWPS_MAX_NAME_SIZE 512 /* D.S. MAX_DN_CHARS * 2 */
/* PrintCon name sizes */
#define NWPS_JOB_NAME_SIZE 12 /* 12 bytes and a '\0' */
#define NWPS_BANNER_NAME_SIZE 12 /* 12 bytes and a '\0' */
#define NWPS_BANNER_FILE_SIZE 12 /* 12 bytes and a '\0' */
#define NWPS_HDRFILE_SIZE 12 /* 12 bytes and a '\0' */
/* PrintDef name sizes */
#define NWPS_FORM_NAME_SIZE 12 /* 12 bytes and a '\0' */
#define NWPS_DEVI_NAME_SIZE 32 /* 32 bytes and a '\0' */
#define NWPS_MODE_NAME_SIZE 32 /* 32 bytes and a '\0' */
#define NWPS_FUNC_NAME_SIZE 32 /* 32 bytes and a '\0' */
/* Print Server Configuration Sizes */
#define NWPS_DESCRIPT_SIZE 128 /* matches Bind. prop. value */
#define NWPS_APPLE_NAME_SIZE 32 /* 32 bytes and a '\0' */
#define NWPS_APPLE_TYPE_SIZE 32 /* 32 bytes and a '\0' */
#define NWPS_APPLE_ZONE_SIZE 32 /* 32 bytes and a '\0' */
#define NWPS_UNIX_HOST_SIZE 255 /* 255 bytes and a '\0' */
#define NWPS_UNIX_PRNT_SIZE 255 /* 255 bytes and a '\0' */
#define NWPS_OTHER_SIZE 1024 /* bytes for NWPS_P_OTHER */
/*
Maximum number of objects
*/
/*
If -1 is used for a Printer or Form number,
the first available number will be substituted.
*/
#define NWPS_MAX_PRINTERS 255 /* numbered 0 - 254 */
#define NWPS_MAX_FORMS 255 /* numbered 0 - 254 */
/* ConnectionType values used below */
#define NWPS_BINDERY_SERVICE 0 /* ID is a connection id */
#define NWPS_DIRECTORY_SERVICE 1 /* ID is a context id */
/* Print server communication (NPT) errors */
#define NWPSE_SUCCESSFUL 0x0000
#define NWPSE_NO_AVAILABLE_SPX_CONNECTI 0x0040
#define NWPSE_SPX_NOT_INITIALIZED 0x0041
#define NWPSE_NO_SUCH_PSERVER 0x0042
#define NWPSE_UNABLE_TO_GET_SERVER_ADDR 0x0043
#define NWPSE_UNABLE_TO_CONNECT_TO_SERV 0x0044
#define NWPSE_NO_AVAILABLE_IPX_SOCKETS 0x0045
#define NWPSE_ALREADY_ATTACH_TO_A_PRINT 0x0046
#define NWPSE_IPX_NOT_INITIALIZED 0x0047
/* Print server error codes */
#define NWPSE_TOO_MANY_FILE_SERVERS 0x0101
#define NWPSE_UNKNOWN_FILE_SERVER 0x0102
#define NWPSE_BINDERY_LOCKED 0x0103
#define NWPSE_SERVER_MAXED_OUT 0x0104
#define NWPSE_NO_RESPONSE 0x0105
#define NWPSE_ALREADY_ATTACHED 0x0106
#define NWPSE_CANT_ATTACH 0x0107
#define NWPSE_NO_ACCOUNT_BALANCE 0x0108
#define NWPSE_NO_CREDIT_LEFT 0x0109
#define NWPSE_INTRUDER_DETECTION_LOCK 0x010A
#define NWPSE_TOO_MANY_CONNECTIONS 0x010B
#define NWPSE_ACCOUNT_DISABLED 0x010C
#define NWPSE_UNAUTHORIZED_TIME 0x010D
#define NWPSE_UNAUTHORIZED_STATION 0x010E
#define NWPSE_NO_MORE_GRACE 0x010F
#define NWPSE_LOGIN_DISABLED 0x0110
#define NWPSE_ILLEGAL_ACCT_NAME 0x0111
#define NWPSE_PASSWORD_HAS_EXPIRED 0x0112
#define NWPSE_ACCESS_DENIED 0x0113
#define NWPSE_CANT_LOGIN 0x0114
#define NWPSE_PRINTER_ALREADY_INSTALLED 0x0115
#define NWPSE_CANT_OPEN_CONFIG_FILE 0x0116
#define NWPSE_CANT_READ_CONFIG_FILE 0x0117
#define NWPSE_UNKNOWN_PRINTER_TYPE 0x0118
#define NWPSE_NO_SUCH_QUEUE 0x0200
#define NWPSE_NOT_AUTHORIZED_FOR_QUEUE 0x0201
#define NWPSE_QUEUE_HALTED 0x0202
#define NWPSE_UNABLE_TO_ATTACH_TO_QUEUE 0x0203
#define NWPSE_TOO_MANY_QUEUE_SERVERS 0x0204
#define NWPSE_INVALID_REQUEST 0x0300
#define NWPSE_NOT_ENOUGH_MEMORY 0x0301
#define NWPSE_NO_SUCH_PRINTER 0x0302
#define NWPSE_INVALID_PARAMETER 0x0303
#define NWPSE_PRINTER_BUSY 0x0304
#define NWPSE_CANT_DETACH_PRIMARY_SERVE 0x0305
#define NWPSE_GOING_DOWN 0x0306
#define NWPSE_NOT_CONNECTED 0x0307
#define NWPSE_ALREADY_IN_USE 0x0308
#define NWPSE_NO_JOB_ACTIVE 0x0309
#define NWPSE_NOT_ATTACHED_TO_SERVER 0x030A
#define NWPSE_ALREADY_IN_LIST 0x030B
#define NWPSE_DOWN 0x030C
#define NWPSE_NOT_IN_LIST 0x030D
#define NWPSE_NO_RIGHTS 0x030E
#define NWPSE_UNABLE_TO_VERIFY_IDENTITY 0x0400
#define NWPSE_NOT_REMOTE_PRINTER 0x0401
/* Other Error Messages */
#define NWPSE_BAD_VERSION (WORD)0x7770
#define NWPSE_END_SCAN (WORD)0x7771
#define NWPSE_ERROR_EXPANDING_DB (WORD)0x7772
#define NWPSE_ERROR_GETTING_DEFAULT (WORD)0x7773
#define NWPSE_ERROR_OPENING_DB (WORD)0x7774
#define NWPSE_ERROR_READING_DB (WORD)0x7775
#define NWPSE_ERROR_READING_RECORD (WORD)0x7776
#define NWPSE_ERROR_WRITING_DB (WORD)0x7777
#define NWPSE_ERROR_WRITING_RECORD (WORD)0x7778
#define NWPSE_INTERNAL_ERROR (WORD)0x7779
#define NWPSE_JOB_NOT_FOUND (WORD)0x777A
#define NWPSE_NO_DEFAULT_SPECIFIED (WORD)0x777B
#define NWPSE_OUT_OF_MEMORY (WORD)0x777C
/*-------------------------------------------------------------------*/
/*---------- PrintCon - Print Job Configuration Information ---------*/
#ifndef NWPS_EXCLUDE_PCON
/* PrintCon search flags */
#define NWPS_EXTENDED_SEARCH 0
#define NWPS_SINGLE_SEARCH 1
#define NWPS_DBOWNER_PUBLIC "(PUBLIC)"
/* Flags used for printControlFlags in the PJob structure */
#define NWPS_SUPPRESS_FF 0x0800
#define NWPS_NOTIFY_USER 0x1000
#define NWPS_TEXT_MODE 0x4000
#define NWPS_PRINT_BANNER 0x8000
typedef struct {
long clientStation;
long clientTaskNumber;
long clientIDNumber;
long targetServerIDNumber;
BYTE targetExecutionTime[6];
BYTE entryTime[6];
long jobNumber;
WORD formNumber;
WORD jobPosition;
WORD jobControlFlags;
BYTE fileName[14];
long fileHandle;
long serverStation;
long serverTaskNumber;
long serverIDNumber;
BYTE jobDescription[50];
BYTE versionNumber;
BYTE tabSize;
WORD numberOfCopies;
WORD printControlFlags;
WORD maxLinesPerPage;
WORD maxCharsPerLine;
BYTE formName[13];
BYTE reserve[9];
BYTE bannerNameField[13];
BYTE bannerFileField[13];
BYTE headerFileName[14];
BYTE directoryPath[80];
} NWPS_PJob;
/*
NWPS_Job_Rec is the type of record in the third and
last section of the PrnConDB database. Each one of
these records contains all the fields that make up a
print job configuration as described in the NetWare 386
Print Server documentation.
*/
/* Flags for the NWPS_PJob structure printJobFlag */
#define NWPS_JOB_EXPAND_TABS 0x00000001 /*File type:0=Stream 1=Tab*/
#define NWPS_JOB_NO_FORMFEED 0x00000002 /*Formfeed tail:0=Yes 1=No*/
#define NWPS_JOB_NOTIFY 0x00000004 /*Notify:0=No 1=Yes */
#define NWPS_JOB_PRINT_BANNER 0x00000008 /*Banner:0=No 1=Yes */
#define NWPS_JOB_AUTO_END 0x00000010 /*Auto endcap:0=No 1=Yes*/
#define NWPS_JOB_TIMEOUT 0x00000020 /*Enable T.O.:0=No 1=Yes*/
#define NWPS_JOB_ENV_DS 0x00000040 /*Use D.S. Environment */
#define NWPS_JOB_ENV_MASK 0x000001C0 /*Bindery vs. D.S. Mask */
#define NWPS_JOB_DS_PRINTER 0x00000200 /*D.S. Printer not Queue */
#define NWPS_JOB_PRINTER_MASK 0x00000E00 /*D.S. Printer vs. Queue */
/* Default Flags */
#define NWPS_JOB_DEFAULT (NWPS_JOB_PRINT_BANNER | NWPS_JOB_AUTO_END)
#define NWPS_JOB_DEFAULT_COPIES 1 /*Default Number of Copies*/
#define NWPS_JOB_DEFAULT_TAB 8 /*Default Tab Expansion*/
typedef struct {
DWORD printJobFlag; /* Bits 31 30 29 ... 2 1 0 contain: */
/* 0: File type: 0=Text 1=Byte stream*/
/* 1: Suppress formfeed: 0=No 1=Yes */
/* 2: Notify when done: 0=No 1=Yes */
/* 3: Print banner: 0=No 1=Yes */
/* 4: Auto endcap: 0=No 1=Yes */
/* 5: Enable timeout: 0=No 1=Yes */
/* 8-6: Environment: */
/* 000=Bindary */
/* 001=Directory Services */
/* 11-9: Destination Type: */
/* 000=Queue_Name */
/* 001=Printer_Name */
/* 31-12: Unused */
WORD copies; /* 1 - 65,000 */
WORD timeOutCount; /* 1 - 1,000 */
BYTE tabSize; /* 1 - 18 */
BYTE localPrinter; /* 0=Lpt1, 1=Lpt2, 2=Lpt3 */
char formName[NWPS_FORM_NAME_SIZE + 2];
/* 1 - 12 chars long */
char name[NWPS_JOB_NAME_SIZE + 2];
/* 1 - 12 chars long */
char bannerName[NWPS_BANNER_NAME_SIZE + 2];
/* 1 - 12 chars long */
char device[NWPS_DEVI_NAME_SIZE + 2];
/* 1 - 32 chars long */
char mode[NWPS_MODE_NAME_SIZE + 2];
/* 1 - 32 chars long */
union {
struct {
/* pad structures on even boundries */
char fileServer[NWPS_BIND_NAME_SIZE + 2];
/* 2 - 48 chars long */
char printQueue[NWPS_BIND_NAME_SIZE + 2];
/* 1 - 48 chars long */
char printServer[NWPS_BIND_NAME_SIZE + 2];
/* 1 - 48 chars long */
} nonDS;
char DSObjectName[(NWPS_MAX_NAME_SIZE + 1) * 2];
} u;
BYTE reserved[392]; /* Adds up to 1024 total bytes */
} NWPS_Job_Rec;
/*
DBOwner values and their meanings-
---------------------------------
NULL : Use the current user. No return possible.
Empty : Use the current user. Return real object name.
UserName : Use the specified user.
DS Object : Use the specified DS object.
*/
/*
NWPSInitPrintJob: Initializes a print job record with default values.
*/
NWCCODE NWFAR NWPASCAL NWPSInitPrintJob(
NWPS_Job_Rec NWFAR *pJobRecord);
/*
NWPSSetPrintJob: Sets a print job record with defined values.
The pJobRecord should have been set to 0 before this call and
any name that is not defined will be left as '\0'.
*/
NWCCODE NWFAR NWPASCAL NWPSSetPrintJob(
WORD connType, /* bindery or directory service */
NWPS_Job_Rec NWFAR *pJobRecord, /* structure to set */
char NWFAR *formName,
char NWFAR *deviceName,
char NWFAR *modeName,
char NWFAR *bannerName,
char NWFAR *jobName,
char NWFAR *bindFserver,
char NWFAR *bindQueue,
char NWFAR *bindPserver,
WORD dsUseQueueName, /* if TRUE, next field is queue */
char NWFAR *dsObjectName); /* queue or printer name */
/*
NWPSScanPrintJob is used repetatively to get a list of
the print jobs in the printcon database(s).
-PJSequence needs to be set to -1 to indicate the
beginning of the search (i.e. the first time
NWPSScanPrintJob is called).
-SearchFlag specifies whether to search all the public
databases (NWPS_EXTENDED_SEARCH) or to use only the
specified database (NWPS_SINGLE_SEARCH).
-DbOwner specifies the search start point and returns
the directory object name, or bindery user name of
the owner.
-PJobName returns the name of the next print job
record found.
-DefaultPJ will be TRUE if the job is the current
user's default print job, otherwise it is FALSE.
If the function is successful in finding a next record,
the return value of the function is 0, else an error code
is returned.
*/
NWCCODE NWFAR NWPASCAL NWPSScanPrintJob(
WORD connType,
DWORD connID,
WORD NWFAR *pJSequence,
WORD searchFlag,
char NWFAR *dbOwner,
char NWFAR *pJobName,
WORD NWFAR *defaultPJ);
/*
NWPSWritePrintJob is used both to create and modify
records in the printcon database.
-DbOwner is used to specify the location of the
database to modify. This field must be specified.
-PJobName contains the name of the NWPS_Job_Rec to
be written.
If a record with the same name already exists in
the database then it is overwritten with the data
in the buffer pointed to by -pJobRecord, otherwise
a new record is created in the database.
The function returns a 0 if successful, otherwise an error code.
*/
NWCCODE NWFAR NWPASCAL NWPSWritePrintJob(
WORD connType,
DWORD connID,
char NWFAR *dbOwner,
char NWFAR *pJobName,
NWPS_Job_Rec NWFAR *pJobRecord);
/*
NWPSReadPrintJob searches for a record in the
printcon database.
-DbOwner specifies the database to read from.
-PJobName contains the name of the print job to find.
If the function is successful in finding the specified
record, the buffer pointed to by -pJobRecord is filled
with the contents of the record found
The return value is 0 if the function is successful,
otherwise an error code is returned.
*/
NWCCODE NWFAR NWPASCAL NWPSReadPrintJob(
WORD connType,
DWORD connID,
char NWFAR *dbOwner,
char NWFAR *pJobName,
NWPS_Job_Rec NWFAR *pJobRecord);
/*
NWPSDeletePrintJob removes a record from the
printcon database.
-DbName specifies the database where the print
job is defined.
-PJobName is the name of the NWPS_Job_Rec to be
deleted from the database and is required.
The function returns a 0 if it is successful,
otherwise it returns the pertinent error code.
If the print job does not exist in the database,
success is returned.
*/
NWCCODE NWFAR NWPASCAL NWPSDeletePrintJob(
WORD connType,
DWORD connID,
char NWFAR *dbOwner,
char NWFAR *pJobName);
/*
NWPSGetDefaultPrintJob gets the name and/or
contents of the default NWPS_Job_Rec record in
the PrnConDB database.
-SearchFlag specifies whether to do look only
in the specified database (NWPS_SINGLE_SEARCH)
or to look in all the public databases until
a default is found (NWPS_EXTENDED_SEARCH);
-DbOwner specifies the start point of the search
for a default print job. And returns the actual
location where the default print job was found.
-PJobName returns the name of the default
print job.
-PJobRecord returns the print job information.
The return value is 0 of the call is successful,
otherwise an error code is returned.
*/
NWCCODE NWFAR NWPASCAL NWPSGetDefaultPrintJob(
WORD connType,
DWORD connID,
WORD searchFlag,
char NWFAR *dbOwner,
char NWFAR *pJobName,
NWPS_Job_Rec NWFAR *pJobRecord);
/*
NWPSSetDefaultPrintJob sets the default NWPS_Job_Rec
record in either the user or one of the public
printcon databases.
-DbOwner specifies the database to set/reset the
default print job.
-PJobName should contain the name of the NWPS_Job_Rec
to be set as the system's default. If PJobName is
NULL or empty, the current default is erased.
-PJobOwner is similar to dbOwner, but it specifies
where the print job is defined. No attempt is made
to verify that the print job exists in the
pjobOwner database.
The function returns a 0 if successful otherwise an
error code.
*/
NWCCODE NWFAR NWPASCAL NWPSSetDefaultPrintJob(
WORD connType,
DWORD connID,
char NWFAR *dbOwner,
char NWFAR *pJobName,
char NWFAR *pJobOwner);
#endif /* NWPS_EXCLUDE_PCON */
/*-------------------------------------------------------------------*/
/*---------- PrintDef - Printer Definition Information --------------*/
#ifndef NWPS_EXCLUDE_PDEF
/* PrintDef reset string (one for each device) */
#define NWPS_RESET_MODE "(Re-initialize)"
/* General Database calls */
/*
Get the Version number stored in the database. The database
file/stream is automaticly opened and closed by this call.
This call returns 0 on success, or non-zero error code on failure.
*/
NWCCODE NWFAR NWPASCAL NWPSPdfGetVersion(
WORD connectionType, /* Type of server/network */
DWORD connectionID, /* File Server Connection ID */
DWORD NWFAR *pdfVersion); /* Returns db version */
/*
Set the Version number stored in the database. The database
file/stream is automaticly opened and closed by this call.
This call returns 0 on success, or non-zero error code on failure.
*/
NWCCODE NWFAR NWPASCAL NWPSPdfSetVersion(
WORD connectionType, /* Type of server/network */
DWORD connectionID, /* File Server Connection ID */
DWORD pdfVersion); /* Returns db version */
/*
Turn on the debug printf messages in the PrintDef program.
These messages are in English only and are normally not displayed.
*/
void NWFAR NWPASCAL NWPSPdfDebug(
BYTE flag); /* 0-turn off; 1-turn on */
/* Form Calls */
/*
Add a form to the PrintDef database. Forms are independent
of printers and are unique on each file server or context.
This call returns 0 on success, or non-zero error code on failure.
*/
NWCCODE NWFAR NWPASCAL NWPSPdfAddForm(
WORD connectionType, /* Type of server/network */
DWORD connectionID, /* File Server Connection ID */
char NWFAR *formName, /* form name */
WORD formNumber, /* form number */
WORD formLength, /* form length */
WORD formWidth); /* form width */
/*
Delete a form from the PrintDef database.
A zero is returned on succecss, or a non-zero error code on failure
*/
NWCCODE NWFAR NWPASCAL NWPSPdfDeleteForm(
WORD connectionType, /* Type of server/network */
DWORD connectionID, /* File Server Connection ID */
char NWFAR *formName); /* form name */
/*
Find a Form in the PrintDef database.
If the user wants to find all the forms, sequence should be
set to -1 on the first call, and the sequence value will be
updated when the call returns.
If the user wants to find a specific Form, the sequence pointer
should be NULL and the formName should be set to the desired form.
A zero is returned on succecss, or a non-zero error code on failure
*/
NWCCODE NWFAR NWPASCAL NWPSPdfScanForm(
WORD connectionType, /* Type of server/network */
DWORD connectionID, /* File Server Connection ID */
DWORD NWFAR *sequence, /* -1 for first call */
char NWFAR *formName); /* name or NULL */
/*
Read the form information from the PrintDef database.
If the form does not exist, an error code is returned,
otherwise, the form's information is set and a 0 is returned.
*/
NWCCODE NWFAR NWPASCAL NWPSPdfReadForm(
WORD connectionType, /* Type of server/network */
DWORD connectionID, /* File Server Connection ID */
char NWFAR *formName, /* form name */
WORD NWFAR *formNumber, /* number or NULL */
WORD NWFAR *formLength, /* length space or NULL */
WORD NWFAR *formWidth); /* width space or NULL */
/*
Update the form information. If you don't want to change the
name, set newFormName to NULL. If you don't want to change a
parameter set the value to -1.
A zero is returned on succecss, or a non-zero error code on failure
*/
NWCCODE NWFAR NWPASCAL NWPSPdfUpdateForm(
WORD connectionType, /* Type of server/network */
DWORD connectionID, /* File Server Connection ID */
char NWFAR *oldFormName, /* old form name */
char NWFAR *newFormName, /* new form name or NULL */
WORD newFormNumber, /* new form length or -1 */
WORD newFormLength, /* new form length or -1 */
WORD newFormWidth); /* new form width or -1 */
/* Device Calls */
/*
Add a device to the PrintDef database. The Device is created
without any Functions or modes.
A zero is returned on succecss, or a non-zero error code on failure
*/
NWCCODE NWFAR NWPASCAL NWPSPdfAddDevice(
WORD connectionType, /* Type of server/network */
DWORD connectionID, /* File Server Connection ID */
char NWFAR *deviceName); /* device name */
/*
Delete a device from the PrintDef database.
When a Device is deleted, all of the device's Functions and Modes
are also deleted.
A zero is returned on succecss, or a non-zero error code on failure
*/
NWCCODE NWFAR NWPASCAL NWPSPdfDeleteDevice(
WORD connectionType, /* Type of server/network */
DWORD connectionID, /* File Server Connection ID */
char NWFAR *deviceName); /* device to be removed */
/*
Find a Device in the PrintDef database.
To find all of the Devices, set sequence to -1 on the first call
and it will be reset by the call if a Device if found.
To find a specific Device, set sequence to NULL and set deviceName
to the desired search name.
A zero is returned on succecss, or a non-zero error code on failure
*/
NWCCODE NWFAR NWPASCAL NWPSPdfScanDevice(
WORD connectionType, /* Type of server/network */
DWORD connectionID, /* File Server Connection ID */
DWORD NWFAR *sequence, /* must give seq. or name */
char NWFAR *deviceName); /* returned name found */
/*
Find out how many functions and modes are defined for a device.
A zero is returned on succecss, or a non-zero error code on failure
*/
NWCCODE NWFAR NWPASCAL NWPSPdfReadDevice(
WORD connectionType, /* Type of server/network */
DWORD connectionID, /* File Server Connection ID */
char NWFAR *deviceName, /* name of device */
WORD NWFAR *modeCount, /* number of modes defined */
WORD NWFAR *funcCount); /* number of func's defined */
/*
Change a Device name in the PrintDef database.
A zero is returned on succecss, or a non-zero error code on failure
*/
NWCCODE NWFAR NWPASCAL NWPSPdfUpdateDevice(
WORD connectionType, /* Type of server/network */
DWORD connectionID, /* File Server Connection ID */
char NWFAR *oldDeviceName, /* old device name */
char NWFAR *newDeviceName); /* new device name */
/* Mode Calls */
/*
Create a new Mode for a specific Device.
A zero is returned on succecss, or a non-zero error code on failure
*/
NWCCODE NWFAR NWPASCAL NWPSPdfAddMode(
WORD connectionType, /* Type of server/network */
DWORD connectionID, /* File Server Connection ID */
char NWFAR *deviceName, /* name of associated device */
char NWFAR *modeName); /* new mode name */
/*
Delete a Mode from a Device.
When the Mode is deleted, the Functions are left intact.
A zero is returned on succecss, or a non-zero error code on failure
*/
NWCCODE NWFAR NWPASCAL NWPSPdfDeleteMode(
WORD connectionType, /* Type of server/network */
DWORD connectionID, /* File Server Connection ID */
char NWFAR *deviceName, /* name of associated device */
char NWFAR *modeName); /* name of mode to remove */
/*
Find a Mode in the PrintDef database.
To find all of the Modes, set sequence to -1 on the first call
and it will be reset by the call if a Mode is found.
To find a specific Mode, set sequence to NULL and set modeName
to the desired search name.
A zero is returned on succecss, or a non-zero error code on failure
*/
NWCCODE NWFAR NWPASCAL NWPSPdfScanMode(
WORD connectionType, /* Type of server/network */
DWORD connectionID, /* File Server Connection ID */
DWORD NWFAR *sequence, /* -1 on first call */
char NWFAR *deviceName, /* name of associated device */
char NWFAR *modeName); /* returned mode name */
/*
Find information on a defined Mode.
If the Mode is defined, and funcCount is not NULL, the number
of functins in the mode is returned in funcCount.
A zero is returned on succecss, or a non-zero error code on failure
*/
NWCCODE NWFAR NWPASCAL NWPSPdfReadMode(
WORD connectionType, /* Type of server/network */
DWORD connectionID, /* File Server Connection ID */
char NWFAR *deviceName, /* name of associated device */
char NWFAR *reqModeName, /* request mode name */
WORD NWFAR *funcCount); /* function count or NULL */
/*
Change the name of a Mode.
A zero is returned on succecss, or a non-zero error code on failure
*/
NWCCODE NWFAR NWPASCAL NWPSPdfUpdateMode(
WORD connectionType, /* Type of server/network */
DWORD connectionID, /* File Server Connection ID */
char NWFAR *deviceName, /* name of associated device */
char NWFAR *oldModeName, /* old mode name */
char NWFAR *newModeName); /* new mode name or NULL */
/* Mode-Function Grouping Calls */
/*
Add a previously defined functin to a previously defined mode list.
A zero is returned on succecss, or a non-zero error code on failure
*/
NWCCODE NWFAR NWPASCAL NWPSPdfAddModeFunction(
WORD connectionType, /* Type of server/network */
DWORD connectionID, /* File Server Connection ID */
char NWFAR *deviceName, /* name of associated device */
char NWFAR *modeName, /* name of associated mode */
char NWFAR *funcName, /* func to add to group */
WORD location); /* where to insert function or -1 */
/*
Delete a function from a defined mode list.
Neither the Mode or Function is deleted from the Device lists.
A zero is returned on succecss, or a non-zero error code on failure
*/
NWCCODE NWFAR NWPASCAL NWPSPdfDeleteModeFunction(
WORD connectionType, /* Type of server/network */
DWORD connectionID, /* File Server Connection ID */
char NWFAR *deviceName, /* name of associated device */
char NWFAR *modeName, /* name of associated mode */
char NWFAR *funcName); /* func to remove from group */
/*
Find the name of a Function associated with a Mode.
To find all of the Functions associated with a Mode, set
sequence to -1 on the first call and it will be reset by
the call if a Functions is found.
To find a specific Function associated with a Mode, set sequence
to NULL and set functName to the desired search name.
A zero is returned on succecss, or a non-zero error code on failure
*/
NWCCODE NWFAR NWPASCAL NWPSPdfScanModeFunction(
WORD connectionType, /* Type of server/network */
DWORD connectionID, /* File Server Connection ID */
DWORD NWFAR *sequence, /* -1 on first call */
char NWFAR *deviceName, /* name of associated device */
char NWFAR *modeName, /* name of associated mode */
char NWFAR *funcName); /* returned function name */
/*
Read the actual function values associated with a mode.
On the first call, funcOffset should be set to 0, and funcSize
should be set to the size of the buffer pointed to by funcBuffer.
On return funcSize will contain the actual number of bytes copied
to the funcBuffer and the return value will be 0.
There are no more bytes to get if the returned funcSize is less
than the requested funcSize, or if a call is made with a funcOffset
equal to or greater to than the end of the list.
A zero is returned on succecss, or a non-zero error code on failure
*/
NWCCODE NWFAR NWPASCAL NWPSPdfReadModeFunction(
WORD connectionType, /* Type of server/network */
DWORD connectionID, /* File Server Connection ID */
char NWFAR *deviceName, /* name of associated device */
char NWFAR *modeName, /* name of associated mode */
/* no function name because this is a mode group */
WORD funcOffset, /* number of bytes to skip */
WORD NWFAR *funcSize, /* req:buff size; ret:# read*/
BYTE NWFAR *funcBuffer); /* buffer for read block */
/* Function Calls */
/*
Add a Function to a Device.
funcSize should be set to the number of bytes in funcString.
A zero is returned on succecss, or a non-zero error code on failure
*/
NWCCODE NWFAR NWPASCAL NWPSPdfAddFunction(
WORD connectionType, /* Type of server/network */
DWORD connectionID, /* File Server Connection ID */
char NWFAR *deviceName, /* name of associated device */
char NWFAR *funcName, /* name of func. to add */
WORD funcSize, /* count of bytes in function */
BYTE NWFAR *funcString); /* list of bytes in function */
/*
Delete a function from the Device in the PrintDef database.
If the Function is refered to in any Mode, the Function
will be automaticly deleted from the Mode as well.
A zero is returned on succecss, or a non-zero error code on failure
*/
NWCCODE NWFAR NWPASCAL NWPSPdfDeleteFunction(
WORD connectionType, /* Type of server/network */
DWORD connectionID, /* File Server Connection ID */
char NWFAR *deviceName, /* name of associated device */
char NWFAR *funcName); /* name of func. to delete */
/*
Find a Function defined for a specific Device.
To find all of the Functions associated with a Device, set
sequence to -1 on the first call and it will be reset by
the call if a Functions is found.
To find a specific Function associated with a Device, set sequence
to NULL and set functName to the desired search name.
A zero is returned on succecss, or a non-zero error code on failure
*/
NWCCODE NWFAR NWPASCAL NWPSPdfScanFunction(
WORD connectionType, /* Type of server/network */
DWORD connectionID, /* File Server Connection ID */
DWORD NWFAR *sequence, /* -1 on first call */
char NWFAR *deviceName, /* name of associated device */
char NWFAR *funcName); /* name of next function */
/*
Read the byte string associated with a function.
funcSize should be set equal to the size of the buffer funcString.
funcSize will be set to the actual size of the byte string if the
call is successful.
A zero is returned on succecss, or a non-zero error code on failure
*/
NWCCODE NWFAR NWPASCAL NWPSPdfReadFunction(
WORD connectionType, /* Type of server/network */
DWORD connectionID, /* File Server Connection ID */
char NWFAR *deviceName, /* name of associated device */
char NWFAR *funcName, /* name of the function */
WORD funcOffset, /* bytes to skip past */
WORD NWFAR *funcSize, /* req: buff size; ret:# read */
BYTE NWFAR *funcString); /* byte list or NULL */
/*
Change the function string assigned to a function name.
To change the function's name, set newFuncName to a new name.
To leave the Function name the same, set newFuncName to NULL.
To change the function string, set funcSize to the number of
bytes in the funcString and set funcString to point to the
new string. To leave the string the same, set funcSize to -1.
A zero is returned on succecss, or a non-zero error code on failure
*/
NWCCODE NWFAR NWPASCAL NWPSPdfUpdateFunction(
WORD connectionType, /* Type of server/network */
DWORD connectionID, /* File Server Connection ID */
char NWFAR *deviceName, /* name of associated device */
char NWFAR *oldFuncName, /* current function name */
char NWFAR *newFuncName, /* new name or NULL */
WORD funcSize, /* number of bytes or -1 */
BYTE NWFAR *funcString); /* byte list or NULL */
/* Import and Export Functions */
/*
Import a device from a file to the database
The file name should be in the form
"\\<file server>\<volume>\<path>\<file name>.PDF"
*/
NWCCODE NWFAR NWPASCAL NWPSPdfImportDevice(
WORD connectionType, /* Type of server/network */
DWORD connectionID, /* File Server Connection ID */
char NWFAR *fileName); /* name of .PDF file */
/*
Export a device to a Pdf file from the database
The file name should be in the form
"\\<file server>\<volume>\<path>\<file name>.PDF"
or NULL to create the file "<device name>.PDF" in
the local directory.
*/
NWCCODE NWFAR NWPASCAL NWPSPdfExportDevice(
WORD connectionType, /* Type of server/network */
DWORD connectionID, /* File Server Connection ID */
char NWFAR *fileName, /* name of .PDF file */
char NWFAR *deviceName); /* name of device to export */
#endif /* NWPS_EXCLUDE_PDEF */
/*-------------------------------------------------------------------*/
/*---------- NPT - Pserver Transport Interface ----------------------*/
#ifndef NWPS_EXCLUDE_NPT
/* Client privilege levels from the print server */
#define NWPS_LIMITED 0 /* Limited access only */
#define NWPS_USER 1 /* User access */
#define NWPS_OPERATOR 2 /* Operator access */
/* Job Outcomes (0 [PLACE_ON_HOLD] is no longer valid) */
#define NWPS_RETURN_TO_QUEUE 1 /* Return job to queue */
#define NWPS_THROW_AWAY 2 /* Throw job away */
/* Printer Problem codes */
#define NWPS_PRINTER_RUNNING 0 /* Printer is running */
#define NWPS_PRINTER_OFFLINE 1 /* Printer is offline */
#define NWPS_PRINTER_PAPER_OUT 2 /* Printer is out of paper */
/* Remote Printer and Extended Remote Printer Info flags */
#define NWPS_REMOTE_SHARED 0 /* Rprinter is shared with net */
#define NWPS_REMOTE_PRIVATE 1 /* Rprinter is private to ws */
/* Print Server info structure returned by NWPSGetPrintServerInfo */
typedef struct
{
BYTE status, /* Print server status */
numPrinters, /* Number of attached printers */
numModes, /* Number of queue service modes */
majorVersion, /* Print server protocol, major vers*/
minorVersion, /* Print server protocol, minor vers*/
revision, /* Print server protocol, revision */
serialNumber[4], /* Serial number in BCD */
serverType; /* Print Server Type */
/* 0 - Unknown */
/* 1 - Dedicate print server for DOS*/
/* 2 - NetWare Loadable Module */
/* 3 - VAP, in file server */
/* 4 - VAP, in Bridge */
BYTE futureUse[9]; /* Reserved for future use */
} NWPS_PSInfo;
typedef struct /* Remote printer info structure */
{
WORD printerType, /* Type of remote printer */
useInterrupts, /* Should we use interrupts? */
irqNumber, /* IRQ number for printer */
numBlocks, /* Number of blocks in buffer */
useXonXoff, /* Use Xon/Xoff? */
baudRate, /* Baud rate */
dataBits, /* Number of data bits */
stopBits, /* Number of stop bits */
parity, /* Parity type */
socket; /* Socket number for remote printer */
} NWPS_RInfo;
/* print server attachment calls */
NWCCODE NWFAR NWPASCAL NWPSAttachToPrintServer(
WORD connType, /* connection type */
DWORD connID, /* connection ID */
char NWFAR *pserverName, /* Print server name */
WORD NWFAR *spxID); /* SPX Connection number */
NWCCODE NWFAR NWPASCAL NWPSDetachFromPrintServer(
WORD spxID); /* SPX Connection number */
NWCCODE NWFAR NWPASCAL NWPSGetPrintServerInfo(
WORD spxID, /* SPX Connection number */
NWPS_PSInfo NWFAR *psInfo, /* Server info structure */
WORD size); /* Size of information requested */
NWCCODE NWFAR NWPASCAL NWPSLoginToPrintServer(
WORD connType, /* Connection type to use */
DWORD connID, /* Connection ID to file server */
WORD spxID, /* SPX Connection number */
BYTE NWFAR *access); /* Client's access level */
/* Print Server Controls */
NWCCODE NWFAR NWPASCAL NWPSAttachPServerToFileServer(
WORD spxID, /* SPX Connection number */
char NWFAR *fileServer, /* File server name */
char NWFAR *password); /* Password */
NWCCODE NWFAR NWPASCAL NWPSDetachPServerFromFileServer(
WORD spxID, /* SPX Connection number */
char NWFAR *fileServer, /* File server name */
BYTE detach, /* Detach immediately? */
BYTE outcome); /* Outcome of current jobs */
NWCCODE NWFAR NWPASCAL NWPSGetAttachedServers(
WORD spxID, /* SPX Connection number */
BYTE NWFAR *sequence, /* Sequence number. 0 first time */
char NWFAR *fileServer); /* File server name */
NWCCODE NWFAR NWPASCAL NWPSDownPrintServer(
WORD spxID, /* SPX Connection number */
BYTE immediate, /* Go down immediately? */
BYTE outcome); /* Outcome of current jobs */
NWCCODE NWFAR NWPASCAL NWPSCancelDownRequest(
WORD spxID); /* SPX Connection number */
/* notify controls */
NWCCODE NWFAR NWPASCAL NWPSAddNotifyObject(
WORD spxID, /* SPX Connection number */
WORD printerID, /* Printer number */
char NWFAR *fileServer, /* File server name */
char NWFAR *notifyName, /* Object name */
WORD notifyType, /* Object type */
WORD notifyDelay, /* First notify delay */
WORD notifyInterval); /* Notify interval */
NWCCODE NWFAR NWPASCAL NWPSChangeNotifyInterval(
WORD spxID, /* SPX Connection number */
WORD printerID, /* Printer number */
char NWFAR *fileServer, /* File server name */
char NWFAR *notifyName, /* Object name */
WORD notifyType, /* Object type */
WORD notifyDelay, /* First notify delay */
WORD notifyInterval); /* Notify interval */
NWCCODE NWFAR NWPASCAL NWPSDeleteNotifyObject(
WORD spxID, /* SPX Connection number */
WORD printerID, /* Printer number */
char NWFAR *fileServer, /* File server name */
char NWFAR *notifyName, /* Object name */
WORD notifyType); /* Object type */
NWCCODE NWFAR NWPASCAL NWPSGetNotifyObject(
WORD spxID, /* SPX Connection number */
WORD printerID, /* Printer number */
WORD NWFAR *sequence, /* Sequence number. 0 first time */
char NWFAR *fileServer, /* File server name */
char NWFAR *notifyName, /* Object name */
WORD NWFAR *notifyType, /* Object type */
WORD NWFAR *notifyDelay, /* First notify delay */
WORD NWFAR *notifyInterval); /* Notify interval */
/* Queue controls */
NWCCODE NWFAR NWPASCAL NWPSAddQueueToPrinter(
WORD spxID, /* SPX Connection number */
WORD printerID, /* Printer number */
char NWFAR *fileServer, /* File server name */
char NWFAR *queueName, /* Queue name */
WORD priority); /* Priority */
NWCCODE NWFAR NWPASCAL NWPSChangeQueuePriority(
WORD spxID, /* SPX Connection number */
WORD printerID, /* Printer number */
char NWFAR *fileServer, /* File server name */
char NWFAR *queueName, /* Queue name */
WORD priority); /* New priority */
NWCCODE NWFAR NWPASCAL NWPSDeleteQueueFromPrinter(
WORD spxID, /* SPX Connection number */
WORD printerID, /* Printer number */
char NWFAR *fileServer, /* File server name */
char NWFAR *queueName, /* Queue name */
BYTE detach, /* Detach immediately? */
BYTE outcome); /* Outcome of current job */
NWCCODE NWFAR NWPASCAL NWPSGetQueuesServiced(
WORD spxID, /* SPX Connection number */
WORD printerID, /* Printer number */
WORD NWFAR *sequence, /* Sequence number. 0 first time */
char NWFAR *fileServer, /* File server name */
char NWFAR *queueName, /* Queue name */
WORD NWFAR *priority); /* Priority */
NWCCODE NWFAR NWPASCAL NWPSGetPrintersServicingQueue(
WORD spxID, /* SPX Connection number */
char NWFAR *fileServer, /* File server name */
char NWFAR *queueName, /* Queue name */
WORD maximum, /* Maximum # of returned printers */
WORD NWFAR *actual, /* Actual # of returned printers */
WORD NWFAR *buffer); /* Array for returned printer #s */
/* print job controls */
NWCCODE NWFAR NWPASCAL NWPSAbortPrintJob(
WORD spxID, /* SPX Connection number */
WORD printerID, /* Printer number */
BYTE outcome); /* Job outcome */
NWCCODE NWFAR NWPASCAL NWPSChangeServiceMode(
WORD spxID, /* SPX Connection number */
WORD printerName, /* Printer number */
BYTE serviceMode); /* New service mode */
NWCCODE NWFAR NWPASCAL NWPSEjectForm(
WORD spxID, /* SPX Connection number */
WORD printerID); /* Printer number */
NWCCODE NWFAR NWPASCAL NWPSGetPrintJobStatus(
WORD spxID, /* SPX Connection number */
WORD printerID, /* Printer number */
char NWFAR *fileServer, /* File server name */
char NWFAR *queueName, /* Queue name */
WORD NWFAR *jobID, /* Job number */
char NWFAR *jobName, /* Description of job */
WORD NWFAR *copies, /* Number of copies to be printed */
DWORD NWFAR *size, /* Size of print job */
WORD NWFAR *copiesDone, /* Copies finished */
DWORD NWFAR *bytesDone, /* Bytes into current copy */
WORD NWFAR *formNumber, /* Form number for job */
BYTE NWFAR *textFlag); /* Is job text? */
NWCCODE NWFAR NWPASCAL NWPSGetPrinterStatus(
WORD spxID, /* SPX Connection number */
WORD printerID, /* Printer number */
BYTE NWFAR *status, /* Printer status */
BYTE NWFAR *problem, /* On line/Off line/Out of paper */
BYTE NWFAR *active, /* Printer has an active job */
BYTE NWFAR *serviceMode, /* Queue service mode */
WORD NWFAR *formNumber, /* Mounted form number */
char NWFAR *formName, /* Mounted form name */
char NWFAR *printerName); /* Printer name */
NWCCODE NWFAR NWPASCAL NWPSMarkTopOfForm(
WORD spxID, /* SPX Connection number */
WORD printerID, /* Printer number */
char mark); /* Character to mark form with */
NWCCODE NWFAR NWPASCAL NWPSRewindPrintJob(
WORD spxID, /* SPX Connection number */
WORD printerID, /* Printer number */
BYTE byPage, /* Rewind by page? */
BYTE relative, /* Rewind relative to curr. position?*/
WORD copy, /* Copy to rewind to (if absolute) */
DWORD offset); /* Offset */
NWCCODE NWFAR NWPASCAL NWPSSetMountedForm(
WORD spxID, /* SPX Connection number */
WORD printerID, /* Printer number */
BYTE form); /* Form number */
NWCCODE NWFAR NWPASCAL NWPSStartPrinter(
WORD spxID, /* SPX Connection number */
WORD printerID); /* Printer number */
NWCCODE NWFAR NWPASCAL NWPSStopPrinter(
WORD spxID, /* SPX Connection number */
WORD printerID, /* Printer number */
BYTE outcome); /* Job outcome */
/* Remote Printer Calls */
NWCCODE NWFAR NWPASCAL NWPSGetNextRemotePrinter(
WORD spxID, /* SPX Connection number */
WORD NWFAR *printerID, /* Printer number */
WORD NWFAR *type, /* Printer type */
char NWFAR *name); /* Name of printer */
NWCCODE NWFAR NWPASCAL NWPSRequestRemotePrinter(
WORD spxID, /* SPX Connection number */
WORD printerID, /* Printer number */
NWPS_RInfo NWFAR *info); /* Remote printer info structure */
NWCCODE NWFAR NWPASCAL NWPSSetRemoteMode(
WORD spxID, /* SPX Connection number */
WORD printerID, /* Printer number */
BYTE mode); /* New mode */
#endif /* NWPS_EXCLUDE_NPT */
/*-------------------------------------------------------------------*/
/*---------- Config - Print Server Configuration Information --------*/
#ifndef NWPS_EXCLUDE_CONF
/* configuration attributes */
#define NWPS_ATTR_CART 0 /* Cartridge */
#define NWPS_ATTR_CLASS 1 /* Object Class */
#define NWPS_ATTR_CN 2 /* CN or Common Name */
#define NWPS_ATTR_CONF 3 /* Printer Configuration */
#define NWPS_ATTR_DQUEUE 4 /* Default Queue */
#define NWPS_ATTR_DESC 5 /* Description */
#define NWPS_ATTR_DEVICE 6 /* Device */
#define NWPS_ATTR_HOST_DEV 7 /* Host Device */
#define NWPS_ATTR_HOST_RES 8 /* Host Resource */
#define NWPS_ATTR_HOST_SER 9 /* Host Server */
#define NWPS_ATTR_L 10 /* L or Locality */
#define NWPS_ATTR_MEMORY 11 /* Memory */
#define NWPS_ATTR_NADD 12 /* Network Address */
#define NWPS_ATTR_NADD_REST 13 /* Network Address Restriction */
#define NWPS_ATTR_NOTIFY 14 /* Notify */
#define NWPS_ATTR_O 15 /* O or Organization */
#define NWPS_ATTR_OPER 16 /* Operator */
#define NWPS_ATTR_OU 17 /* OU or Organizational Unit */
#define NWPS_ATTR_OWNER 18 /* Owner */
#define NWPS_ATTR_PAGE 19 /* Page Description Language */
#define NWPS_ATTR_PJOB 20 /* Print Job Configuration */
#define NWPS_ATTR_PCTRL 21 /* Printer Control */
#define NWPS_ATTR_PRINT_SER 22 /* Queue Volume Name */
#define NWPS_ATTR_PRINTER 23 /* Printer */
#define NWPS_ATTR_PRIV_KEY 24 /* Private Key */
#define NWPS_ATTR_PUBL_KEY 25 /* Public Key */
#define NWPS_ATTR_QUEUE 26 /* Queue */
#define NWPS_ATTR_QUE_DIR 27 /* Queue Directory */
#define NWPS_ATTR_SAP 28 /* SAP Name */
#define NWPS_ATTR_SEE_ALSO 29 /* See Also */
#define NWPS_ATTR_SERIAL 30 /* Serial Number */
#define NWPS_ATTR_SERVER 31 /* Server */
#define NWPS_ATTR_STAT 32 /* Status */
#define NWPS_ATTR_TYPE 33 /* Supported Typefaces */
#define NWPS_ATTR_USER 34 /* User */
#define NWPS_ATTR_VERS 35 /* Version */
#define NWPS_ATTR_VOLUME 36 /* Queue Volume Name */
#define NWPS_ATTR_ACL 37 /* Access Control */
/* LocalFlag meanings */
#define NWPS_P_LOCAL 1
#define NWPS_P_REMOTE 0
/* For operator notification purposes, this means notify job owner */
#define NWPS_JOB_OWNER -1
/* Banner types */
#define NWPS_BANNER_TEXT 0 /* Text banner is generated */
#define NWPS_BANNER_POST 1 /* PostScript banner generated */
/* Flags for NWPSrvGetPrinterDefaults: */
#define NWPS_DEFAULT (WORD) -2/* Default type, or subtype */
/* Printer Types */
#define NWPS_P_ELSEWHERE (WORD) -1 /* Printer defined elsewhere*/
#define NWPS_P_OTHER 0 /* Other or Unknown Printer */
#define NWPS_P_PAR 1 /* Parallel Printer */
#define NWPS_P_SER 2 /* Serial Printer */
#define NWPS_P_XRP 3 /* eXtended Remote Printer */
#define NWPS_P_APPLE 4 /* AppleShare Printer */
#define NWPS_P_UNIX 5 /* Unix Printer */
/* SubType (port numbers) */
#define NWPS_PORT_1 0
#define NWPS_PORT_2 1
#define NWPS_PORT_3 2
#define NWPS_PORT_4 3
#define NWPS_PORT_5 4
#define NWPS_PORT_6 5
#define NWPS_PORT_7 6
#define NWPS_PORT_8 7
#define NWPS_PORT_9 8
#define NWPS_PORT_10 9
/* Possible Print Server status codes */
#define NWPS_RUNNING 0 /* Running */
#define NWPS_GOING_DOWN 1 /* Ready to quit when jobs finish */
#define NWPS_DOWN 2 /* Ready to quit */
#define NWPS_INITIALIZING 3 /* Initialization in progress */
/* Possible Printer status codes */
#define NWPS_PSTAT_JOB_WAIT 0
#define NWPS_PSTAT_FORM_WAIT 1
#define NWPS_PSTAT_PRINTING 2
#define NWPS_PSTAT_PAUSED 3
#define NWPS_PSTAT_STOPPED 4
#define NWPS_PSTAT_MARK_EJECT 5
#define NWPS_PSTAT_READY_TO_DOWN 6
#define NWPS_PSTAT_NOT_CONNECTED 7
#define NWPS_PSTAT_PRIVATE 8
/* Queue service modes */
#define NWPS_QUEUE_ONLY 0
#define NWPS_QUEUE_BEFORE_FORM 1
#define NWPS_FORM_ONLY 2
#define NWPS_FORM_BEFORE_QUEUE 3
/* Values for serial port control as stored in configuration files */
/* Baud rates */
#define NWPS_BAUD_RATE_0300 0
#define NWPS_BAUD_RATE_0600 1
#define NWPS_BAUD_RATE_1200 2
#define NWPS_BAUD_RATE_2400 3
#define NWPS_BAUD_RATE_4800 4
#define NWPS_BAUD_RATE_9600 5
#define NWPS_BAUD_RATE_19200 6
/* Stop bits */
#define NWPS_STOP_BITS_1 0
#define NWPS_STOP_BITS_1_5 1
#define NWPS_STOP_BITS_2 2
/* Parity type */
#define NWPS_PARITY_NONE 0
#define NWPS_PARITY_EVEN 1
#define NWPS_PARITY_ODD 2
/* Possible types of print servers */
#define NWPS_TYPE_UNKNOWN 0 /* Pre 1.1 pserver type */
#define NWPS_TYPE_EXE 1 /* Dedicate pserver for DOS */
#define NWPS_TYPE_NLM 2 /* NetWare Loadable Module */
#define NWPS_TYPE_SERVER_VAP 3 /* VAP, in server*/
#define NWPS_TYPE_BRIDGE_VAP 4 /* VAP, in Bridge */
#define NWPS_TYPE_UNIX 5 /* NetWare For Unix PServer */
/*
Printer configuration structures
*/
/* Serial Printer Config Info */
typedef struct {
WORD portNumber; /* COMn port number */
WORD localFlag; /* TRUE - local Printer */
/* FALSE - remote */
WORD useInterrupts; /* TRUE - use irq driver */
WORD irqNumber; /* IRQ number for printer */
WORD baudRate; /* Baud rate (Serial) */
WORD dataBits; /* Data bits (Serial) */
WORD stopBits; /* Stop bits (Serial) */
WORD parity; /* Parity type (Serial) */
WORD useXonXoff; /* Use X-On/X-Off? (Serial) */
} NWPS_Serial;
/* Parallel Printer Config Info */
typedef struct {
WORD portNumber; /* LPTn port number */
WORD localFlag; /* TRUE - local Printer */
/* FALSE - remote */
WORD useInterrupts; /* TRUE - use irq driver */
WORD irqNumber; /* IRQ number for printer */
} NWPS_Parallel;
/* AppleTalk Printer Configuration info */
typedef struct {
char netPrinterName[NWPS_APPLE_NAME_SIZE + 2];
/* AppleTalk Network Printer Name */
char netPrinterType[NWPS_APPLE_TYPE_SIZE + 2];
/* AppleTalk Network Printer Type */
char netPrinterZone[NWPS_APPLE_ZONE_SIZE + 2];
/* AppleTalk Network Printer Zone */
WORD hideFlag; /* TRUE - hide printer */
WORD errorFlag; /* TRUE - print error banner */
} NWPS_AppleTalk;
/* Unix Printer Configuration info */
typedef struct {
char hostName[NWPS_UNIX_HOST_SIZE + 1];
/* Name of the unix host */
char hostPrinter[NWPS_UNIX_PRNT_SIZE + 1];
/* Unix printer name */
} NWPS_Unix;
/* Other Printer Configuration info */
typedef struct {
DWORD length; /* The length of Other data */
BYTE data[NWPS_OTHER_SIZE];
/* Buffer for the Other data */
} NWPS_Other;
typedef struct {
WORD printerType; /* Type of printer */
WORD currentForm; /* Currently mounted form */
WORD bufferSize; /* Buffer size in K */
WORD serviceMode; /* Queue service mode */
WORD pollTime; /* Queue poll time */
WORD bannerType; /* FALSE - text banner page */
/* TRUE - postscript banner page*/
union {
NWPS_Serial ser;
NWPS_Parallel par;
NWPS_AppleTalk apl;
NWPS_Unix unx;
NWPS_Other oth;
} type;
} NWPS_PConfig;
/*
Operator, User, Owner, and Notify attributes use
this structure to get the object types back.
For Notify attributes the tName points to a Typed_Name_T
structure, while the others point to a char array
*/
typedef struct {
WORD objectType;
void NWFAR *tName;
} NWPS_Typed_Name;
/*
The following types are used for the listed attribute:
- NWPS_Typed_Name (name field is a char*) Operator, Owner, User
- NWPS_Typed_Name (name field is a Typed_Name_T*) Notify
- Typed_Name_T used by Queue, Printer and Print Server values
- Octet_String_T used by Printer Configuration value
- Net_Address_T used by Network Address and Restriction values
These attributes are defined in the directory services header:
nwdsattr.h
*/
/* internal table of known attribute names */
extern char *_attrName[];
/* calls to make attribute name/number conversions */
/*
Convert an attribute name to a print service attribute id.
If the name can not be mapped, a -1 is returned.
*/
int NWFAR NWPASCAL NWPSrvAttrNameToNumber(
char NWFAR *attrName); /* Attribute name */
/*
Convert a print service attribute id to an attribute name.
if the attribute id is invalid a NULL is returned.
*/
char NWFAR *NWFAR NWPASCAL NWPSrvAttrNumberToName(
WORD attrNumber); /* Attribute Number */
/*
Get the default settings for a specified printer type.
PrinterType should be NWPS_DEFAULT or NWPS_P_xxx.
SubType is the port number for Parallel and Serial printers.
A zero is returned on succecss, or a non-zero error code on failure
*/
NWCCODE NWFAR NWPASCAL NWPSrvGetPrinterDefaults(
WORD printerType, /* Type of printer defaults */
WORD subtype, /* Device SubType (Port) value */
NWPS_PConfig NWFAR *defaults); /* Buffer to store defaults in */
/*
Information stored in the bindery configuration file has a
different format than NWPS_PConfig. Those applications needing
the old format can use these calls to do the conversion.
*/
void NWPSApiConfigToFileConfig(
char NWFAR *name,
NWPS_PConfig NWFAR *apiConfig,
BYTE NWFAR *fileConfig);
void NWPSFileConfigToApiConfig(
BYTE NWFAR *fileConfig,
char NWFAR *name,
DWORD NWFAR *length,
NWPS_PConfig NWFAR *apiConfig);
/* calls to change the print server list */
/*
PSERVER ATTRIBUTE ATTRIB VALUE DEFAULT MULTI-VALUED
----------------- ------------ ------- ------------
NWPS_ATTR_ACL Object_ACL_T pserver R/W YES
NWPS_ATTR_CN char[] pserver name YES
NWPS_ATTR_DESC char[] " " NO
NWPS_ATTR_HOST_DEV char[] (none) NO
NWPS_ATTR_L char[] (none) YES
NWPS_ATTR_NADD Net_Address_T (none) YES
NWPS_ATTR_O char[] (none) YES
NWPS_ATTR_OPER char[] current user YES
NWPS_ATTR_OU char[] (none) YES
NWPS_ATTR_PRINTER Typed_Name_T (none) YES
NWPS_ATTR_PRIV_KEY Octet_String_T (none) NO
NWPS_ATTR_PUBL_KEY Octet_String_T (none) NO
NWPS_ATTR_SAP char[] (none) NO
NWPS_ATTR_SEE_ALSO char[] (none) YES
NWPS_ATTR_STAT integer NWPS_DOWN NO
NWPS_ATTR_USER char[] current OU YES
NWPS_ATTR_VERS char[] (none) NO
*/
/*
Create a new Print Server object in the bindery/directory.
A default Operator and User is created. In the bindery the
operator is SUPERVISOR and the user is group EVERYONE. In the
directory the operator is the current user and the user is
the current Organizational Unit. Account Balances and a
Password are also created.
A zero is returned on succecss, or a non-zero error code on failure
*/
NWCCODE NWFAR NWPASCAL NWPSrvAddPrintServer(
WORD connType, /* directory or bindery flag */
DWORD connID, /* connection identifier */
char NWFAR *pserverName); /* Name of print server to add */
/*
Delete a Print Server. Any configuration information is also
removed from the bindery/directory.
A zero is returned on succecss, or a non-zero error code on failure
*/
NWCCODE NWFAR NWPASCAL NWPSrvDeletePrintServer(
WORD connType, /* directory or bindery flag */
DWORD connID, /* connection identifier */
char NWFAR *pserverName); /* Name of print server to delete */
/*
Find a print server.
To find all the defined print servers, sequence should be set
to -1 on the first call and the call will update the number.
To verify a print server name, set sequence to NULL and
pserverName to the name you want to find.
A zero is returned on succecss, or a non-zero error code on failure
*/
NWCCODE NWFAR NWPASCAL NWPSrvScanPrintServer(
WORD connType, /* Directory or bindery flag */
DWORD connID, /* Connection identifier */
DWORD NWFAR *sequence, /* Sequence number; start at -1 */
char NWFAR *pserverName); /* Name of print server */
/*
Create a print server attribute in the bindery/directory.
Attributes that do not exist in the bindery will fail (Sorry).
See above for the list of legal attributes.
A zero is returned on succecss, or a non-zero error code on failure
*/
NWCCODE NWFAR NWPASCAL NWPSrvAddPrintServerAttr(
WORD connType,
DWORD connID,
char NWFAR *pserverName, /* name of the print server */
WORD attrID, /* attribute name identifier */
void NWFAR *attrValue); /* pointer to attribute buffer */
/*
Delete a print server attribute from the bindery/directory.
Attributes that do not exist in the bindery will fail (Sorry).
See above for the list of legal attributes.
A zero is returned on succecss, or a non-zero error code on failure
*/
NWCCODE NWFAR NWPASCAL NWPSrvDeletePrintServerAttr(
WORD connType,
DWORD connID,
char NWFAR *pserverName, /* name of the print server */
WORD attrID, /* attribute name identifier */
void NWFAR *attrValue); /* pointer to attribute buffer */
/*
Find an attribute value in the bindery or directory.
On the first call, sequence should be set to -1, attrID is set
to identify the attribute to read and attrValue is a pointer
to the buffer to write the attribute value to.
A zero is returned on succecss, or a non-zero error code on failure
*/
NWCCODE NWFAR NWPASCAL NWPSrvScanPrintServerAttr(
WORD connType,
DWORD connID,
DWORD NWFAR *sequence, /* attribute index number */
char NWFAR *pserverName, /* name of the print server */
WORD attrID, /* attribute name identifier */
void NWFAR *attrValue); /* pointer to attribute buffer */
/*
Modify an attribute value in the bindery or directory.
If the attribute is single valued, the AddPrintServerAttr()
will perform almost the same function.
A zero is returned on succecss, or a non-zero error code on failure
*/
NWCCODE NWFAR NWPASCAL NWPSrvModifyPrintServerAttr(
WORD connType,
DWORD connID,
char NWFAR *pserverName, /* name of the print server */
WORD attrID, /* attribute name identifier */
void NWFAR *oldValue, /* pointer to the old attribute value */
void NWFAR *newValue); /* pointer to the new attribute value */
/* calls to change the file server list */
/*
FSERVER ATTRIBUTE ATTRIB VALUE DEFAULT MULTI-VALUED
----------------- ------------ ------- ------------
(none)
*/
/*
Add a new file server for the print server to use. Since print
servers are context oriented in directory services, this call
does not make sense and will fail in directory services mode.
A zero is returned on succecss, or a non-zero error code on failure
*/
NWCCODE NWFAR NWPASCAL NWPSrvAddFileServer(
WORD connType, /* Directory or bindery flag */
DWORD connID, /* connection identifier */
char NWFAR *pserverName, /* Name of print server */
char NWFAR *fserverName); /* Name of file server to add */
/*
Delete a file server from the print server's service list.
Since file servers are context oriented in directory services,
this call does not make sense and will fail in directory mode.
A zero is returned on succecss, or a non-zero error code on failure
*/
NWCCODE NWFAR NWPASCAL NWPSrvDeleteFileServer(
WORD connType, /* Directory or bindery flag */
DWORD connID, /* connection identifier */
char NWFAR *pserverName, /* Name of print server */
char NWFAR *fserverName); /* Name of file server to delete */
/*
Find a file server from the print server's service list.
Since file servers are context oriented in directory services,
this call does not make sense and will fail in directory mode.
On the first call sequence should be set to -1 and the routine
will change the number before returning. To verify a specific
file server is in the serivce list, set sequence to NULL and
set fserveName before making the call.
A zero is returned on succecss, or a non-zero error code on failure
*/
NWCCODE NWFAR NWPASCAL NWPSrvScanFileServer(
WORD connType, /* directory or bindery flag */
DWORD connID, /* connection identifier */
DWORD NWFAR *sequence, /* sequence number; start at -1 */
char NWFAR *pserverName, /* Name of print server */
char NWFAR *fserverName); /* Name of found file server */
/* calls to change the printer configuration */
/*
PRINTER ATTRIBUTE ATTRIB VALUE DEFAULT MULTI-VALUED
----------------- ------------ ------- ------------
NWPS_ATTR_ACL Object_ACL_T printer R/W YES
NWPS_ATTR_CART char[] (none) YES
NWPS_ATTR_CN char[] printer name YES
NWPS_ATTR_CONF Octet_String_T LPT1 NO
NWPS_ATTR_DESC char[] " " NO
NWPS_ATTR_DQUEUE char[] (none) NO
NWPS_ATTR_HOST_DEV char[] (none) NO
NWPS_ATTR_HOST_SER char[] (none) NO
NWPS_ATTR_L char[] (none) YES
NWPS_ATTR_MEMORY integer (none) NO
NWPS_ATTR_NADD Net_Address_T (none) YES
NWPS_ATTR_NADD_REST Net_Address_T (none) YES
NWPS_ATTR_NOTIFY NWPS_Typed_Name Job Owner YES
NWPS_ATTR_O char[] (none) YES
NWPS_ATTR_OPER char[] current user YES
NWPS_ATTR_OU char[] (none) YES
NWPS_ATTR_OWNER char[] current user YES
NWPS_ATTR_PAGE char[] (none) YES
NWPS_ATTR_PRINT_SER Typed_Name_T pserver/number NO
NWPS_ATTR_QUEUE Typed_Name_T (none) YES
NWPS_ATTR_SEE_ALSO char[] (none) YES
NWPS_ATTR_SERIAL char[] (none) YES
NWPS_ATTR_STAT integer NWPS_PSTAT_NOT_CONNECTED NO
NWPS_ATTR_TYPE(faces)char[] (none) YES
*/
/*
Create a new printer object.
Printer number is required for bindery identification only.
A zero is returned on succecss, or a non-zero error code on failure
*/
NWCCODE NWFAR NWPASCAL NWPSrvAddPrinter(
WORD connType, /* directory or bindery flag */
DWORD connID, /* connection identifier */
char NWFAR *pserverName, /* Name of print server */
char NWFAR *printerName, /* Name of the Printer to add */
WORD NWFAR *printerNumber); /* Number of the Printer to add */
/*
Delete a printer from the bindery/directory.
A zero is returned on succecss, or a non-zero error code on failure
*/
NWCCODE NWFAR NWPASCAL NWPSrvDeletePrinter(
WORD connType, /* directory or bindery flag */
DWORD connID, /* connection identifier */
char NWFAR *pserverName, /* Name of print server */
char NWFAR *printerName); /* Name of printer to delete */
/*
Find a printer in the directory/bindery. To find all of the
printers and their configurations, set sequence to -1 before
the first call and the routine will update the number before
returning. To verify the existance of a specific printer,
set sequence to NULL and set the name in the PConfig strucutre.
A zero is returned on succecss, or a non-zero error code on failure
*/
NWCCODE NWFAR NWPASCAL NWPSrvScanPrinter(
WORD connType, /* directory or bindery flag */
DWORD connID, /* connection identifier */
DWORD NWFAR *sequence, /* sequence number; start at -1 */
char NWFAR *pserverName, /* Name of print server */
char NWFAR *printerName); /* Name of the Printer to add */
/*
Add a printer attribute to the bindery/directory. The only legal
bindery attributes are; Configuration, Default Queue, Host Server,
Notify, Queue, Status, and Description.
A zero is returned on succecss, or a non-zero error code on failure
*/
NWCCODE NWFAR NWPASCAL NWPSrvAddPrinterAttr(
WORD connType,
DWORD connID,
char NWFAR *pserverName, /* name of the print server */
char NWFAR *printerName, /* name of the printer */
WORD attrID, /* attribute name identifier */
void NWFAR *attrValue); /* pointer to attribute buffer */
/*
Delete a printer attribute from the bindery/directory.
See AddPrinterAttr for a list of legal bindery attributes.
A zero is returned on succecss, or a non-zero error code on failure
*/
NWCCODE NWFAR NWPASCAL NWPSrvDeletePrinterAttr(
WORD connType,
DWORD connID,
char NWFAR *pserverName, /* name of the print server */
char NWFAR *printerName, /* name of the printer */
WORD attrID, /* attribute name identifier */
void NWFAR *attrValue); /* pointer to attribute buffer */
/*
Find a printer attribute in the bindery/directory.
See AddPrinterAttr for a list of legal bindery attributes.
To find the first value of a multi-valued attribute, set sequence
to -1 before making the call. Sequence is updated internally
in preparation for each call. attrValue should be a buffer large
enough to hold each attribute value.
A zero is returned on succecss, or a non-zero error code on failure
*/
NWCCODE NWFAR NWPASCAL NWPSrvScanPrinterAttr(
WORD connType,
DWORD connID,
DWORD NWFAR *sequence, /* attribute index number */
char NWFAR *pserverName, /* name of the print server */
char NWFAR *printerName, /* name of the printer */
WORD attrID, /* attribute name identifier */
void NWFAR *attrValue); /* pointer to attribute buffer */
/*
Change a printer attribute in the bindery/directory.
This function is similar to a add attribute to a single value
attribute, however, some attributes must be changed in one call.
A zero is returned on succecss, or a non-zero error code on failure
*/
NWCCODE NWFAR NWPASCAL NWPSrvModifyPrinterAttr(
WORD connType,
DWORD connID,
char NWFAR *pserverName, /* name of the print server */
char NWFAR *printerName, /* name of the printer */
WORD attrID, /* attribute name identifier */
void NWFAR *oldValue, /* pointer to old attribute buffer */
void NWFAR *newValue); /* pointer to new attribute buffer */
/* calls to change a printer's queue list */
/*
QUEUE ATTRIBUTE ATTRIB VALUE DEFAULT MULTI-VALUED
----------------- ------------ ------- ------------
NWPS_ATTR_ACL Object_ACL_T queue R/W YES
NWPS_ATTR_CN char[] printer name YES
NWPS_ATTR_DESC char[] " " NO
NWPS_ATTR_DEVICE char[] (none) YES
NWPS_ATTR_HOST_RES char[] (none) NO
NWPS_ATTR_HOST_SER char[] File Server NO
NWPS_ATTR_L char[] (none) YES
NWPS_ATTR_NADD Net_Address_T (none) YES
NWPS_ATTR_O char[] (none) YES
NWPS_ATTR_OPER NWPS_TYPED_NAME current user YES
NWPS_ATTR_OU char[] (none) YES
NWPS_ATTR_QUE_DIR char[] <Vol>:\QUEUE\<ID>.QDR YES
NWPS_ATTR_SEE_ALSO char[] (none) YES
NWPS_ATTR_SERVER char[] (none) YES
NWPS_ATTR_USER NWPS_Typed_Name current OU YES
NWPS_ATTR_VOLUME char[] Volume NO
*/
/*
Add a print queue to the bindery/directory. In bindery mode,
the volumeName is automatically assigned. In directory mode,
default values are added for the following fields;
Host Server, Operator, and User.
A zero is returned on succecss, or a non-zero error code on failure
*/
NWCCODE NWFAR NWPASCAL NWPSrvAddPrintQueue(
WORD connType, /* directory or bindery flag */
DWORD connID, /* connection identifier */
char NWFAR *queueName, /* Name of the print queue */
char NWFAR *volumeName); /* Name of the print queue's volume */
/*
Delete a print queue from the bindery/directory. Any reference
to the queue is also removed from Printers and Print Servers
that are within the same context as the Print Queue.
A zero is returned on succecss, or a non-zero error code on failure
*/
NWCCODE NWFAR NWPASCAL NWPSrvDeletePrintQueue(
WORD connType, /* directory or bindery flag */
DWORD connID, /* connection identifier */
char NWFAR *queueName); /* Name of the queue to delete */
/*
Find a print queue in the directory/bindery.
On the first call, sequence should be set to -1 and the function
will change it for subsequent calls.
A zero is returned on succecss, or a non-zero error code on failure
*/
NWCCODE NWFAR NWPASCAL NWPSrvScanPrintQueue(
WORD connType, /* directory or bindery flag */
DWORD connID, /* connection identifier */
DWORD NWFAR *sequence, /* sequence number; start at -1 */
char NWFAR *queueName); /* Name of the print queue */
/*
Create or Add a Print Queue attribute to the bindery/directory.
A zero is returned on succecss, or a non-zero error code on failure
*/
NWCCODE NWFAR NWPASCAL NWPSrvAddPrintQueueAttr(
WORD connType,
DWORD connID,
char NWFAR *queueName, /* name of the print queue */
WORD attrID, /* attribute name identifier */
void NWFAR *attrValue); /* pointer to attribute buffer */
/*
Delete a Print Queue attribute from the bindery/directory.
A zero is returned on succecss, or a non-zero error code on failure
*/
NWCCODE NWFAR NWPASCAL NWPSrvDeletePrintQueueAttr(
WORD connType,
DWORD connID,
char NWFAR *queueName, /* name of the print queue */
WORD attrID, /* attribute name identifier */
void NWFAR *attrValue); /* pointer to attribute buffer */
/*
Find an attribute for the Print Queue.
A zero is returned on succecss, or a non-zero error code on failure
*/
NWCCODE NWFAR NWPASCAL NWPSrvScanPrintQueueAttr(
WORD connType,
DWORD connID,
DWORD NWFAR *index, /* attribute index number */
char NWFAR *queueName, /* name of the print queue */
WORD attrID, /* attribute name identifier */
void NWFAR *attrValue); /* pointer to attribute buffer */
/*
Modify an attribute for the Print Queue.
A zero is returned on succecss, or a non-zero error code on failure
*/
NWCCODE NWFAR NWPASCAL NWPSrvModifyPrintQueueAttr(
WORD connType,
DWORD connID,
char NWFAR *queueName, /* name of the print queue */
WORD attrID, /* attribute name identifier */
void NWFAR *oldValue, /* pointer to old attribute buffer */
void NWFAR *newValue); /* pointer to new attribute buffer */
#endif /* NWPS_EXCLUDE_CONF */
/*------------------------------------------------------------*/
#endif /* NWPS_EXTERNAL_H */
/**************************************************************/
/**************************************************************/