/* $Xorg: Printstr.h,v 1.3 2000/08/18 04:05:44 coskrey Exp $ */ /****************************************************************************** ****************************************************************************** ** ** File: Printstr.h ** ** Description: Definitions needed by the server and library, but ** not clients. ** ** Print.h for server, library and clients. ** ****************************************************************************** ** ** (c) Copyright 1996 Hewlett-Packard Company ** (c) Copyright 1996 International Business Machines Corp. ** (c) Copyright 1996, Oracle and/or its affiliates. All rights reserved. ** (c) Copyright 1996 Novell, Inc. ** (c) Copyright 1996 Digital Equipment Corp. ** (c) Copyright 1996 Fujitsu Limited ** (c) Copyright 1996 Hitachi, Ltd. ** ** Permission is hereby granted, free of charge, to any person obtaining a copy ** of this software and associated documentation files (the "Software"), to deal ** in the Software without restriction, including without limitation the rights ** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ** copies of the Software, and to permit persons to whom the Software is ** furnished to do so, subject to the following conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ** COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER ** IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN ** CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ** ** Except as contained in this notice, the names of the copyright holders shall ** not be used in advertising or otherwise to promote the sale, use or other ** dealings in this Software without prior written authorization from said ** copyright holders. ** ****************************************************************************** *****************************************************************************/ /* $XFree86: xc/include/extensions/Printstr.h,v 1.5 2001/08/01 00:44:35 tsi Exp $ */ #ifndef _XpPrintstr_H_ #define _XpPrintstr_H_ /* * NEED_EVENTS and NEED_REPLIES are hacks to limit the linker symbol-table * size. When function prototypes are needed from Print.h, this sets up * a cascading dependency on Printstr.h and eventually Xproto.h to provide * the event and reply struct definitions. */ #ifndef NEED_EVENTS #define NEED_EVENTS #endif /* NEED_EVENTS */ #define NEED_REPLIES #include #ifndef _XP_PRINT_SERVER_ #include #endif /* _XP_PRINT_SERVER_ */ /* * Pull in other definitions. Print.h will hide some things if we're * doing server side work. */ #include #include _XFUNCPROTOBEGIN /****************************************************************************** * * Protocol requests constants and alignment values * * Note: Xlib macro's expect X_ABC where ABC is the name of the * protocol request. */ #define X_PrintQueryVersion 0 #define X_PrintGetPrinterList 1 #define X_PrintCreateContext 2 #define X_PrintSetContext 3 #define X_PrintGetContext 4 #define X_PrintDestroyContext 5 #define X_PrintGetContextScreen 6 #define X_PrintStartJob 7 #define X_PrintEndJob 8 #define X_PrintStartDoc 9 #define X_PrintEndDoc 10 #define X_PrintPutDocumentData 11 #define X_PrintGetDocumentData 12 #define X_PrintStartPage 13 #define X_PrintEndPage 14 #define X_PrintSelectInput 15 #define X_PrintInputSelected 16 #define X_PrintGetAttributes 17 #define X_PrintSetAttributes 18 #define X_PrintGetOneAttribute 19 #define X_PrintRehashPrinterList 20 #define X_PrintGetPageDimensions 21 #define X_PrintQueryScreens 22 #define X_PrintSetImageResolution 23 #define X_PrintGetImageResolution 24 /******************************************************************** * * Protocol data types */ #define PCONTEXT CARD32 #define WINDOW CARD32 #define DRAWABLE CARD32 #define BITMASK CARD32 /****************************************************************************** * * Event wire struct definitions * * Note: Xlib macro's expect xABC struct names and sz_xABC size * constants where ABC is the name of the protocol request. */ /********************************************************************* * * Events. * * See Print.h for the protocol "type" values. */ typedef struct _xPrintPrintEvent { BYTE type; /* XPPrintNotify + extEntry->eventBase */ BYTE detail; /* XPStartJobNotify, XPEndJobNotify, XPStartDocNotify, XPEndDocNotify, XPStartPageNotify, XPEndPageNotify */ CARD16 sequenceNumber B16; PCONTEXT printContext B32; /* print context */ BOOL cancel; /* canceled flag */ CARD8 pad1; /* rest is unused */ CARD16 pad2 B16; CARD32 pad3 B32; CARD32 pad4 B32; CARD32 pad5 B32; CARD32 pad6 B32; CARD32 pad7 B32; } xPrintPrintEvent; #define sz_xPrintPrintEvent 32; typedef struct _xPrintAttributeEvent { BYTE type; /* XPAttributeNotify + extEntry->eventBase */ BYTE detail; /* XPJobAttr, XPDocAttr, XPPageAttr, XPPrinterAttr, XPSpoolerAttr, XPMediumAttr, XPServerAttr */ CARD16 sequenceNumber B16; PCONTEXT printContext B32; /* print context */ CARD32 pad1 B32; CARD32 pad2 B32; CARD32 pad3 B32; CARD32 pad4 B32; CARD32 pad5 B32; CARD32 pad6 B32; } xPrintAttributeEvent; #define sz_xPrintAttributeEvent 32; /********************************************************************* * * Requests */ typedef struct _PrintQueryVersion { CARD8 reqType; /* always PrintReqCode */ CARD8 printReqType; /* always X_PrintQueryVersion */ CARD16 length B16; } xPrintQueryVersionReq; #define sz_xPrintQueryVersionReq 4 typedef struct { BYTE type; /* X_Reply */ CARD8 unused; /* not used */ CARD16 sequenceNumber B16; CARD32 length B32; CARD16 majorVersion B16; /* major version of Xp protocol */ CARD16 minorVersion B16; /* minor version of Xp protocol */ CARD32 pad1 B32; CARD32 pad2 B32; CARD32 pad3 B32; CARD32 pad4 B32; CARD32 pad5 B32; } xPrintQueryVersionReply; #define sz_xPrintQueryVersionReply 32 typedef struct _PrintGetPrinterList { CARD8 reqType; /* always PrintReqCode */ CARD8 printReqType; /* always X_PrintGetPrinterList */ CARD16 length B16; CARD32 printerNameLen B32; /* length of printer name */ CARD32 localeLen B32; /* length of locale string */ /* variable portion ***************************************** STRING8 printerName; * printer name * BYTE pad(printerNameLen) * unused * STRING8 locale; * locale * BYTE pad(localeLen) * unused * ************************************************************/ } xPrintGetPrinterListReq; #define sz_xPrintGetPrinterListReq 12 typedef struct { BYTE type; /* X_Reply */ CARD8 unused; /* not used */ CARD16 sequenceNumber B16; CARD32 length B32; CARD32 listCount B32; /* of PRINTER recs below */ CARD32 pad1 B32; CARD32 pad2 B32; CARD32 pad3 B32; CARD32 pad4 B32; CARD32 pad5 B32; /* variable portion ***************************************** CARD32 nameLen B32; * length of name in bytes * STRING8 name; * name * BYTE pad(nameLen) * unused * CARD32 descLen B32; * length of desc in bytes * STRING8 desc; * localized description * BYTE pad(descLen) * unused * ************************************************************/ } xPrintGetPrinterListReply; #define sz_xPrintGetPrinterListReply 32 typedef struct _PrintRehashPrinterList { CARD8 reqType; /* always PrintReqCode */ CARD8 printReqType; /* always X_PrintRehashPrinterList */ CARD16 length B16; } xPrintRehashPrinterListReq; #define sz_xPrintRehashPrinterListReq 4 typedef struct _PrintCreateContext { CARD8 reqType; /* always PrintReqCode */ CARD8 printReqType; /* always X_PrintInitSetContext */ CARD16 length B16; CARD32 contextID B32; /* ID for context */ CARD32 printerNameLen B32; /* length of printerName in bytes */ CARD32 localeLen B32; /* length of locale in bytes */ /* variable portion ***************************************** STRING8 printerName * printer name * BYTE pad(printerNameLen) * unused * STRING8 locale * locale * BYTE pad(locale) * unused * ************************************************************/ } xPrintCreateContextReq; #define sz_xPrintCreateContextReq 16 typedef struct _PrintSetContext { CARD8 reqType; /* always PrintReqCode */ CARD8 printReqType; /* always X_PrintSetContext */ CARD16 length B16; PCONTEXT printContext B32; /* print context */ } xPrintSetContextReq; #define sz_xPrintSetContextReq 8 typedef struct _PrintGetContext { CARD8 reqType; /* always PrintReqCode */ CARD8 printReqType; /* always X_PrintGetContext */ CARD16 length B16; } xPrintGetContextReq; #define sz_xPrintGetContextReq 4 typedef struct { BYTE type; /* X_Reply */ CARD8 unused; /* not used */ CARD16 sequenceNumber B16; CARD32 length B32; PCONTEXT printContext B32; /* print context */ CARD32 pad1 B32; CARD32 pad2 B32; CARD32 pad3 B32; CARD32 pad4 B32; CARD32 pad5 B32; } xPrintGetContextReply; #define sz_xPrintGetContextReply 32 typedef struct _PrintDestroyContext { CARD8 reqType; /* always PrintReqCode */ CARD8 printReqType; /* always X_PrintDestroyContext */ CARD16 length B16; PCONTEXT printContext B32; /* print context */ } xPrintDestroyContextReq; #define sz_xPrintDestroyContextReq 8 typedef struct _PrintGetContextScreen { CARD8 reqType; /* always PrintReqCode */ CARD8 printReqType; /* always X_PrintGetContextScreen */ CARD16 length B16; PCONTEXT printContext B32; /* print context */ } xPrintGetContextScreenReq; #define sz_xPrintGetContextScreenReq 8 typedef struct { BYTE type; /* X_Reply */ CARD8 unused; /* not used */ CARD16 sequenceNumber B16; CARD32 length B32; WINDOW rootWindow; /* screenPtr represented as rootWin */ CARD32 pad1 B32; CARD32 pad2 B32; CARD32 pad3 B32; CARD32 pad4 B32; CARD32 pad5 B32; } xPrintGetContextScreenReply; #define sz_xPrintGetContextScreenReply 32 typedef struct _PrintStartJob { CARD8 reqType; /* always PrintReqCode */ CARD8 printReqType; /* always X_PrintStartJob */ CARD16 length B16; CARD8 saveData; /* save data boolean */ CARD8 pad1; CARD16 pad2 B16; } xPrintStartJobReq; #define sz_xPrintStartJobReq 8 typedef struct _PrintEndJob { CARD8 reqType; /* always PrintReqCode */ CARD8 printReqType; /* always X_PrintEndJob */ CARD16 length B16; BOOL cancel; /* cancel boolean */ CARD8 pad1; CARD16 pad2 B16; } xPrintEndJobReq; #define sz_xPrintEndJobReq 8 typedef struct _PrintStartDoc { CARD8 reqType; /* always PrintReqCode */ CARD8 printReqType; /* always X_PrintStartDoc */ CARD16 length B16; CARD8 type; /* type for document */ CARD8 pad1; CARD16 pad2 B16; } xPrintStartDocReq; #define sz_xPrintStartDocReq 8 typedef struct _PrintEndDoc { CARD8 reqType; /* always PrintReqCode */ CARD8 printReqType; /* always X_PrintEndDoc */ CARD16 length B16; BOOL cancel; /* cancel boolean */ CARD8 pad1; CARD16 pad2 B16; } xPrintEndDocReq; #define sz_xPrintEndDocReq 8 typedef struct _PrintPutDocumentData { CARD8 reqType; /* always PrintReqCode */ CARD8 printReqType; /* always X_PrintPutDocumentData */ CARD16 length B16; DRAWABLE drawable B32; /* target drawable */ CARD32 len_data B32; /* big len in bytes */ CARD16 len_fmt; /* len in bytes */ CARD16 len_options; /* len in bytes */ /* variable portion ***************************************** LISTofBYTE data; * data * BYTE pad(len_data) * unused * STRING8 doc_fmt; * ISO compliant desc of data type * BYTE pad(len_fmt) * unused * STRING8 options; * additional device-dependent desc * BYTE pad(len_options) * unused * ************************************************************/ } xPrintPutDocumentDataReq; #define sz_xPrintPutDocumentDataReq 16 typedef struct _PrintGetDocumentData { CARD8 reqType; /* always PrintReqCode */ CARD8 printReqType; /* always X_PrintGetDocumentData */ CARD16 length B16; PCONTEXT printContext B32; /* print context */ CARD32 maxBufferSize B32; /* maximum buffer size requested */ } xPrintGetDocumentDataReq; #define sz_xPrintGetDocumentDataReq 12 typedef struct { BYTE type; /* X_Reply */ CARD8 unused; /* not used */ CARD16 sequenceNumber B16; CARD32 length B32; CARD32 statusCode B32; /* status code for reply */ CARD32 finishedFlag B32; /* is this the last reply */ CARD32 dataLen B32; /* data length */ CARD32 pad1 B32; CARD32 pad2 B32; CARD32 pad3 B32; /* variable portion ***************************************** LISTofBYTE data; * data * BYTE pad(count) * unused * ************************************************************/ } xPrintGetDocumentDataReply; #define sz_xPrintGetDocumentDataReply 32 typedef struct _PrintStartPage { CARD8 reqType; /* always PrintReqCode */ CARD8 printReqType; /* always X_PrintStartPage */ CARD16 length B16; WINDOW window B32; /* window */ } xPrintStartPageReq; #define sz_xPrintStartPageReq 8 typedef struct _PrintEndPage { CARD8 reqType; /* always PrintReqCode */ CARD8 printReqType; /* always X_PrintEndPage */ CARD16 length B16; BOOL cancel; /* cancel boolean */ CARD8 pad1; CARD16 pad2 B16; } xPrintEndPageReq; #define sz_xPrintEndPageReq 8 typedef struct _PrintSelectInput { CARD8 reqType; /* always PrintReqCode */ CARD8 printReqType; /* always X_PrintSelectInput */ CARD16 length B16; PCONTEXT printContext B32; /* print context */ BITMASK eventMask B32; } xPrintSelectInputReq; #define sz_xPrintSelectInputReq 12 typedef struct _PrintInputSelected { CARD8 reqType; /* always PrintReqCode */ CARD8 printReqType; /* always X_PrintInputSelected */ CARD16 length B16; PCONTEXT printContext B32; /* print context */ } xPrintInputSelectedReq; #define sz_xPrintInputSelectedReq 8 typedef struct { BYTE type; /* X_Reply */ CARD8 unused; /* not used */ CARD16 sequenceNumber B16; CARD32 length B32; BITMASK eventMask B32; /* your event mask */ BITMASK allEventsMask B32; /* all event mask */ CARD32 pad1 B32; CARD32 pad2 B32; CARD32 pad3 B32; CARD32 pad4 B32; } xPrintInputSelectedReply; #define sz_xPrintInputSelectedReply 32 typedef struct _PrintGetAttributes { CARD8 reqType; /* always PrintReqCode */ CARD8 printReqType; /* always X_PrintGetAttributes */ CARD16 length B16; PCONTEXT printContext B32; /* print context */ CARD8 type; /* type */ CARD8 pad1; /* unused */ CARD16 pad2 B16; /* unused */ } xPrintGetAttributesReq; #define sz_xPrintGetAttributesReq 12 typedef struct { BYTE type; /* X_Reply */ CARD8 unused; /* not used */ CARD16 sequenceNumber B16; CARD32 length B32; CARD32 stringLen B32; /* length of xrm db string */ CARD32 pad1 B32; CARD32 pad2 B32; CARD32 pad3 B32; CARD32 pad4 B32; CARD32 pad5 B32; /* variable portion ***************************************** STRING8 string; * xrm db as a string * BYTE pad(stringLen) * unused * ************************************************************/ } xPrintGetAttributesReply; #define sz_xPrintGetAttributesReply 32 typedef struct _PrintSetAttributes { CARD8 reqType; /* always PrintReqCode */ CARD8 printReqType; /* always X_PrintSetAttributes */ CARD16 length B16; PCONTEXT printContext B32; /* print context */ CARD32 stringLen B32; /* length of xrm db string */ CARD8 type; /* type */ CARD8 rule; /* replacement rule */ CARD16 pad1 B16; /* unused */ /* variable portion ***************************************** STRING8 string; * xrm db as a string * BYTE pad(stringLen) * unused * ************************************************************/ } xPrintSetAttributesReq; #define sz_xPrintSetAttributesReq 16 typedef struct _PrintGetOneAttribute { CARD8 reqType; /* always PrintReqCode */ CARD8 printReqType; /* always X_PrintGetOneAttribute */ CARD16 length B16; PCONTEXT printContext B32; /* print context */ CARD32 nameLen; /* length of name string */ CARD8 type; /* type */ CARD8 pad1; /* unused */ CARD16 pad2 B16; /* unused */ /* variable portion ***************************************** STRING8 name; * name as a string * BYTE pad(name) * unused * ************************************************************/ } xPrintGetOneAttributeReq; #define sz_xPrintGetOneAttributeReq 16 typedef struct { BYTE type; /* X_Reply */ CARD8 unused; /* not used */ CARD16 sequenceNumber B16; CARD32 length B32; CARD32 valueLen B32; /* length of value string */ CARD32 pad1 B32; CARD32 pad2 B32; CARD32 pad3 B32; CARD32 pad4 B32; CARD32 pad5 B32; /* variable portion ***************************************** STRING8 value; * value as a string * BYTE pad(value) * unused * ************************************************************/ } xPrintGetOneAttributeReply; #define sz_xPrintGetOneAttributeReply 32 typedef struct _PrintGetPageDimensions { CARD8 reqType; /* always PrintReqCode */ CARD8 printReqType; /* always X_PrintGetPageDimensions */ CARD16 length B16; PCONTEXT printContext B32; /* print context */ } xPrintGetPageDimensionsReq; #define sz_xPrintGetPageDimensionsReq 8 typedef struct { BYTE type; /* X_Reply */ CARD8 unused; /* not used */ CARD16 sequenceNumber B16; CARD32 length B32; CARD16 width; /* total pixel width */ CARD16 height; /* total pixel height */ CARD16 rx; /* reproducable x pixel offset */ CARD16 ry; /* reproducable y pixel offset */ CARD16 rwidth; /* reproducable x pixel width */ CARD16 rheight; /* reproducable y pixel width */ CARD32 pad1 B32; CARD32 pad2 B32; CARD32 pad3 B32; } xPrintGetPageDimensionsReply; #define sz_xPrintGetPageDimensionsReply 32 typedef struct _PrintQueryScreens { CARD8 reqType; /* always PrintReqCode */ CARD8 printReqType; /* always X_PrintQueryScreens */ CARD16 length B16; } xPrintQueryScreensReq; #define sz_xPrintQueryScreensReq 4 typedef struct { BYTE type; /* X_Reply */ CARD8 unused; /* not used */ CARD16 sequenceNumber B16; CARD32 length B32; CARD32 listCount; /* number of screens following */ CARD32 pad1 B32; CARD32 pad2 B32; CARD32 pad3 B32; CARD32 pad4 B32; CARD32 pad5 B32; /* variable portion ***************************************** WINDOW rootWindow; * root window of screen * ************************************************************/ } xPrintQueryScreensReply; #define sz_xPrintQueryScreensReply 32 typedef struct _PrintSetImageResolution { CARD8 reqType; /* always PrintReqCode */ CARD8 printReqType; /* always X_PrintSetImageResolution */ CARD16 length B16; PCONTEXT printContext B32; /* print context */ CARD16 imageRes B16; /* image resolution */ CARD16 pad1 B16; } xPrintSetImageResolutionReq; #define sz_xPrintSetImageResolutionReq 12 typedef struct { BYTE type; /* X_Reply */ BOOL status; /* accepted or not */ CARD16 sequenceNumber B16; CARD32 length B32; CARD16 prevRes B16; /* previous resolution */ CARD16 pad1 B32; CARD32 pad2 B32; CARD32 pad3 B32; CARD32 pad4 B32; CARD32 pad5 B32; CARD32 pad6 B32; } xPrintSetImageResolutionReply; #define sz_xPrintSetImageResolutionReply 32 typedef struct _PrintGetImageResolution { CARD8 reqType; /* always PrintReqCode */ CARD8 printReqType; /* always X_PrintGetImageResolution */ CARD16 length B16; PCONTEXT printContext B32; /* print context */ } xPrintGetImageResolutionReq; #define sz_xPrintGetImageResolutionReq 8 typedef struct { BYTE type; /* X_Reply */ CARD8 unused; CARD16 sequenceNumber B16; CARD32 length B32; CARD16 imageRes B16; /* image resolution */ CARD16 pad1 B32; CARD32 pad2 B32; CARD32 pad3 B32; CARD32 pad4 B32; CARD32 pad5 B32; CARD32 pad6 B32; } xPrintGetImageResolutionReply; #define sz_xPrintGetImageResolutionReply 32 #ifndef _XP_PRINT_SERVER_ /*********************************************************************** * * Library-only definitions. */ extern XPHinterProc _xp_hinter_proc; extern char *_xp_hinter_desc; extern int _xp_hinter_init; #else /* _XP_PRINT_SERVER_ */ /*********************************************************************** * * Server-only definitions shared between the extension and DDX layers. * */ /* * Internal return code used to indicate that the requesting * client has been suspended. */ #define Suspended 84 struct _XpContext; extern void XpRegisterPrinterScreen( ScreenPtr pScreen, int (*CreateContext)(struct _XpContext *)); typedef struct _xpprintFuncs { int (*StartJob)( struct _XpContext * /* pContext */, Bool /* sendClientData */, ClientPtr /* client */); int (*EndJob)(struct _XpContext *, int); int (*StartDoc)( struct _XpContext * /* pContext */, XPDocumentType /* type */); int (*EndDoc)(struct _XpContext *, int); int (*StartPage)( struct _XpContext * /* pContext */, WindowPtr /* pWin */); int (*EndPage)( struct _XpContext * /* pContext */, WindowPtr /* pWin */); int (*PutDocumentData)( struct _XpContext * /* pContext */, DrawablePtr /* pDraw */, char * /* pData */, int /* len_data */, char * /* pDoc_fmt */, int /* len_fmt */, char * /* pOptions */, int /* len_options */, ClientPtr /* client */); int (*GetDocumentData)( struct _XpContext * /* pContext */, ClientPtr /* client */, int /* maxBufferSize */); int (*DestroyContext)( struct _XpContext *); /* pContext */ char *(*GetAttributes)( struct _XpContext *, XPAttributes /* pool */); char *(*GetOneAttribute)( struct _XpContext * /* pContext */, XPAttributes /* pool */, char * /* attrs */); int (*SetAttributes)( struct _XpContext * /* pContext */, XPAttributes /* pool */, char * /* attrs */); int (*AugmentAttributes)( struct _XpContext * /* pContext */, XPAttributes /* pool */, char * /* attrs */); int (*GetMediumDimensions)( struct _XpContext * /* pPrintContext */, CARD16 * /* pWidth */, CARD16 * /* pHeight */); int (*GetReproducibleArea)( struct _XpContext * /* pPrintContext */, xRectangle * /* pRect */); int (*SetImageResolution)( struct _XpContext * /* pPrintContext */, int /* imageRes */, Bool * /* pStatus */); } XpDriverFuncs, *XpDriverFuncsPtr; /* * Each print context is represented by one of the following structs * associated with a resource ID of type RTcontext . A pointer to * the context is placed in the Xp extension's devPrivates * element in each client * which establishes a context via * either initContext or setContext. * The context pointer is also placed in the struct indicated by the * RTpage resource associated with each StartPage'd window. */ typedef struct _XpContext { XID contextID; char *printerName; int screenNum; /* screen containing the printer */ struct _XpClient *clientHead; /* list of clients */ CARD32 state; VisualID pageWin; PrivateRec *devPrivates; XpDriverFuncs funcs; ClientPtr clientSlept; int imageRes; } XpContextRec, *XpContextPtr; #include /* FontResolutionPtr */ extern FontResolutionPtr XpGetClientResolutions(ClientPtr, int *); extern XpContextPtr XpContextOfClient(ClientPtr); extern XpContextPtr XpGetPrintContext(ClientPtr); extern int XpRehashPrinterList(void); extern void XpSetFontResFunc(ClientPtr); extern void XpUnsetFontResFunc(ClientPtr); extern void XpRegisterInitFunc(ScreenPtr, char *, int (*)(struct _XpContext *)); #endif /* _XP_PRINT_SERVER_ */ _XFUNCPROTOEND #endif /* _XpPrintstr_H_ */