Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

417 lines
11 KiB

/***************************************************************************
*
* File Name: ./netware/psintpdf.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
*
*
*
*
*
*
***************************************************************************/
/*--------------------------------------------------------------------*
* Copyrighted 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 : PrintCon Database - Internal function definitions :
: :
: Filename: psintpdf.H :
: :
: Date Created: July 12, 1991 :
: :
: Version: 1.0 :
: :
: Programmers: Joe Ivie
: :
: Files Used: :
: :
: Date Modified: :
: :
: Modifications: :
: :
: Comments: :
: :
: COPYRIGHT (c) ???? :
: :
*********************************************************************/
#ifndef PDF_INTERNALS_H
#define PDF_INTERNALS_H
#ifndef LINT_ARGS
#define LINT_ARGS
#endif
/* System headers */
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <fcntl.h>
#include <share.h>
#include <io.h>
#include <sys/types.h>
#include <sys/stat.h>
#ifdef _Windows
#include <Windows.H>
#endif
#include "psmalloc.h"
/* NetWare headers */
#ifndef NWNLM
#include <constant.h>
#include <nwcalls.h>
#include <nwlocale.h>
#define _AUDIT_H
#include <nwnet.h>
#else
#include "psnlm.h"
#endif
/* Local headers */
#define NOPS_JOB_INC
#define NOPS_PKT_INC
#define NOPS_COM_INC
#include "nwpsrv.h"
#include "nwpsint.h"
#include "psstring.h"
#ifdef NWOS2
#undef BYTE
#undef LONG
#define INCL_NOPM
#define INCL_DOSERRORS
#include <os2.h>
#define PS_READ_STREAM (OPEN_ACCESS_READONLY | OPEN_SHARE_DENYWRITE | OPEN_FLAGS_FAIL_ON_ERROR)
#define PS_MODIFY_STREAM (OPEN_ACCESS_READWRITE | OPEN_SHARE_DENYREADWRITE | OPEN_FLAGS_FAIL_ON_ERROR)
#else
#define PS_READ_STREAM (O_RDONLY | O_BINARY)
#define PS_MODIFY_STREAM (O_RDWR | O_BINARY | O_CREAT)
#endif
#include <errno.h>
#ifdef INCLUDE_MEMCHECK
#include <memcheck.h>
#endif
/*
Definitions
*/
/* Debug information */
#ifdef DEBUG
#define PDFREAD _PdfDRead
#define PDFWRITE _PdfDWrite
#define PDFSEEK _PdfDSeek
#define dprintf if (pdfDebugFlag) (void) printf
#else /* non-DEBUG */
#ifdef NWOS2
#define PDFREAD(a,b,c) (ccode = DosRead(a,b,c,&readSize),ccode ? -1 : readSize)
#define PDFWRITE(a,b,c) (ccode = DosWrite(a,b,c,&writeSize),ccode ? -1 : writeSize)
#define PDFSEEK(a,b,c) (ccode = DosChgFilePtr(a,b,c,&seekSize), ccode ? -1L : seekSize)
#else
#define PDFREAD read
#define PDFWRITE write
#define PDFSEEK lseek
#endif
#define dprintf
#endif /* DEBUG */
/* database file information */
#define PDF_FILE_SIZE info->fileSize
#define PDF_FILE_HANDLE pdfGlobalFileHandle
#define MAX_READ_SIZE 512
/* Record Types */
#define REC_TYPE_VERS 0
#define REC_TYPE_FORM 1
#define REC_TYPE_DEVI 2
#define REC_TYPE_MODE 3
#define REC_TYPE_MODE_FUNC 4
#define REC_TYPE_FUNC 5
#define REC_TYPE_FUNC_MODE 6
/* Function Numbers */
#define FUNC_ADD 1
#define FUNC_DELETE 2
#define FUNC_SCAN 3
#define FUNC_READ 4
#define FUNC_UPDATE 5
/*********************************************************************/
/*
Structures
*/
typedef struct CallInfo {
/* file information */
DWORD novellID;
DWORD fileSize;
DWORD formOffset;
DWORD deviOffset;
DWORD formCount;
DWORD deviCount;
WORD modeCount;
WORD funcCount;
/* request type */
int recType;
int funcNumber;
/* scan and update data */
DWORD NWFAR *sequence;
char NWFAR *newName;
/* form data */
char NWFAR *formName;
WORD formNumber;
WORD formWidth;
WORD formLength;
WORD alignmentPad;
/* device data */
char NWFAR *deviName;
/* mode data */
char NWFAR *modeName;
/* function Data */
char NWFAR *funcName;
WORD funcDataOffset;
WORD funcDataSize;
BYTE NWFAR *funcData;
} CallInfo_T;
typedef struct EngineInfo {
char recName[NWPS_DEVI_NAME_SIZE + 1]; /*used for device and mode*/
WORD recNameLen;
WORD devNameLen;
WORD tempWord;
DWORD entryOffset;
DWORD deviOffset;
DWORD modeOffset;
DWORD funcOffset;
DWORD tempOffset;
DWORD maxEntries;
DWORD pdfScanIndex; /* table index returned to the caller */
WORD deviNumber; /* temp for device number */
WORD deviModeNumber; /* temp for mode number */
WORD modeNumber; /* mode number */
WORD funcNumber; /* function number */
WORD index, index2; /* internal temporary indexes */
/* bit array for used form numbers */
BYTE usedForms[(NWPS_MAX_FORMS + 7) / 8];
WORD formNumber;
WORD formWidth;
WORD formLength;
WORD funcSize;
WORD bytesSkipped;
WORD bufferedBytes;
WORD readSize;
/* version variable */
DWORD version;
/* add option variables */
DWORD recSize;
DWORD recOffset;
WORD *indexList;
/* delete option variables */
DWORD *offsetList;
/* Modify option variables */
DWORD newRecSize;
WORD newNameLen;
} EngineInfo_T;
/*********************************************************************/
/*
Globals
*/
#ifdef DEBUG
extern BYTE pdfDebugFlag;
#endif
extern int pdfGlobalFileHandle;
/*********************************************************************/
/*
Functions
*/
NWCCODE NWFAR NWPASCAL _PdfGetCallInfo(
WORD connType,
DWORD connID,
CallInfo_T NWFAR *info);
void NWFAR NWPASCAL _PdfCloseFile( void );
NWCCODE NWFAR NWPASCAL _PdfModify(
CallInfo_T NWFAR *info);
NWCCODE NWFAR NWPASCAL _PdfSaveHeader(
CallInfo_T NWFAR *info);
NWCCODE NWFAR NWPASCAL _PdfShift(
CallInfo_T NWFAR *info,
unsigned long start,
long change);
NWCCODE NWFAR NWPASCAL _PdfSeek(
long int offset,
int mode);
NWCCODE NWFAR NWPASCAL _PdfRead(
void NWFAR *buffer,
WORD size);
NWCCODE NWFAR NWPASCAL _PdfWrite(
void NWFAR *buffer,
WORD size);
/*---------------------------------------------------------------*/
/* Import/Export Local data */
#define HEADER_STRINGS 105L
#define HEADER_DATE ((long)(6 * sizeof(WORD)))
int NWFAR NWPASCAL _PdfFixFileName(
char *name);
int NWFAR NWPASCAL _PdfReadImptName(
int handle,
long offset,
char *name);
int NWFAR NWPASCAL _PdfFindNameOffset(
int handle,
DWORD startOffset,
char *searchName,
DWORD *offset);
/*---------------------------------------------------------------*/
NWCCODE NWFAR NWPASCAL _PdfAddRecord(
CallInfo_T NWFAR *info,
EngineInfo_T NWFAR *engineInfo);
NWCCODE NWFAR NWPASCAL _PdfDeleteRecord(
CallInfo_T NWFAR *info,
EngineInfo_T NWFAR *engineInfo);
NWCCODE NWFAR NWPASCAL _PdfFindDevice(
CallInfo_T NWFAR *info,
EngineInfo_T NWFAR *engineInfo,
int NWFAR *finished);
NWCCODE NWFAR NWPASCAL _PdfFindForm(
CallInfo_T NWFAR *info,
EngineInfo_T NWFAR *engineInfo,
int NWFAR *finished);
NWCCODE NWFAR NWPASCAL _PdfFindFunction(
CallInfo_T NWFAR *info,
EngineInfo_T NWFAR *engineInfo,
int NWFAR *finished);
NWCCODE NWFAR NWPASCAL _PdfFindMode(
CallInfo_T NWFAR *info,
EngineInfo_T NWFAR *engineInfo,
int NWFAR *finished);
NWCCODE NWFAR NWPASCAL _PdfFindModeFunction(
CallInfo_T NWFAR *info,
EngineInfo_T NWFAR *engineInfo,
int NWFAR *finished);
NWCCODE NWFAR NWPASCAL _PdfFindFunctionMode(
CallInfo_T NWFAR *info,
EngineInfo_T NWFAR *engineInfo);
NWCCODE NWFAR NWPASCAL _PdfGetMainOffsets(
CallInfo_T NWFAR *info,
EngineInfo_T NWFAR *engineInfo);
NWCCODE NWFAR NWPASCAL _PdfInitVariables(
CallInfo_T NWFAR *info,
EngineInfo_T NWFAR **engineInfo);
NWCCODE NWFAR NWPASCAL _PdfPositionToDevice(
CallInfo_T NWFAR *info,
EngineInfo_T NWFAR *engineInfo);
NWCCODE NWFAR NWPASCAL _PdfPositionToMode(
CallInfo_T NWFAR *info,
EngineInfo_T NWFAR *engineInfo);
NWCCODE NWFAR NWPASCAL _PdfUpdateRecord(
CallInfo_T NWFAR *info,
EngineInfo_T NWFAR *engineInfo);
NWCCODE NWFAR NWPASCAL _PdfVersion(
CallInfo_T NWFAR *info,
EngineInfo_T NWFAR *engineInfo);
/*---------------------------------------------------------------*/
#ifdef DEBUG
long NWFAR NWPASCAL _PdfDSeek(
int fd,
long position,
int whence);
int NWFAR NWPASCAL _PdfDRead(
int fd,
void NWFAR *buffer,
unsigned size);
int NWFAR NWPASCAL _PdfDWrite(
int fd,
void NWFAR *buffer,
unsigned size);
void NWFAR NWPASCAL _PdfOd(
unsigned int,
BYTE NWFAR *);
#endif /* DEBUG */
#endif /* PDF_INTERNALS_H */