home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 1 / BBS in a box - Trilogy I.iso / Files / Publish / Photoshop / Plug-in Modules / Code / PIExport.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-04-26  |  4.0 KB  |  113 lines  |  [TEXT/MPS ]

  1. /*
  2.     File: PIExport.h
  3.  
  4.     Copyright 1990-91 by Thomas Knoll.    Copyright 1992 by Adobe Systems, Inc..
  5.     All rights reserved.
  6.  
  7.     This file describes version 4.0 of Photoshop's Export module interface.
  8. */
  9.  
  10. #ifndef __PIExport__
  11. #define __PIExport__
  12.  
  13. #include "PIGeneral.h"
  14.  
  15. /* Operation selectors */
  16.  
  17. #define exportSelectorAbout    0
  18. #define exportSelectorStart    1
  19. #define exportSelectorContinue 2
  20. #define exportSelectorFinish   3
  21. #define exportSelectorPrepare  4
  22.  
  23. /* Error return values. The plug-in module may also return standard Macintosh
  24.    operating system error codes, or report its own errors, in which case it
  25.    can return any positive integer. */
  26.  
  27. #define exportBadParameters -30200    /* "a problem with the export module interface" */
  28. #define exportBadMode        -30201    /* "the export module does not support <mode> images" */
  29.  
  30. typedef struct ExportRecord
  31.     {
  32.  
  33.     long                serialNumber;    /* Host's serial number, to allow
  34.                                            copy protected plug-in modules. */
  35.  
  36.     TestAbortProc        abortProc;        /* The plug-in module may call this no-argument
  37.                                            BOOLEAN function (using Pascal calling
  38.                                            conventions) several times a second during long
  39.                                            operations to allow the user to abort the operation.
  40.                                            If it returns TRUE, the operation should be aborted
  41.                                            (and a positive error code returned). */
  42.  
  43.     ProgressProc        progressProc;    /* The plug-in module may call this two-argument
  44.                                            procedure (using Pascal calling conventions)
  45.                                            periodically to update a progress indicator.
  46.                                            The first parameter (type LONGINT) is the number
  47.                                            of operations completed; the second (type LONGINT)
  48.                                            is the total number of operations. */
  49.  
  50.     long                maxData;        /* Maximum number of bytes that should be
  51.                                            requested at once (the plug-in should reduce
  52.                                            its requests by the size any large buffers
  53.                                            it allocates). The plug-in may reduce this
  54.                                            value in the exportSelectorPrepare routine. */
  55.  
  56.     short                imageMode;        /* Image mode */
  57.     Point                imageSize;        /* Size of image */
  58.     short                depth;            /* Bits per sample, currently will be 1 or 8 */
  59.     short                planes;         /* Samples per pixel */
  60.  
  61.     Fixed                imageHRes;        /* Pixels per inch */
  62.     Fixed                imageVRes;        /* Pixels per inch */
  63.  
  64.     LookUpTable            redLUT;         /* Red LUT, only used for Indexed Color images */
  65.     LookUpTable            greenLUT;        /* Green LUT, only used for Indexed Color images */
  66.     LookUpTable            blueLUT;        /* Blue LUT, only used for Indexed Color images */
  67.  
  68.     Rect                theRect;        /* Rectangle requested, set to empty rect when done */
  69.     short                loPlane;        /* First plane requested */
  70.     short                hiPlane;        /* Last plane requested */
  71.  
  72.     void *                data;            /* A pointer to the requested image data */
  73.     long                rowBytes;        /* Spacing between rows */
  74.  
  75.     Str255                 filename;        /* Document file name */
  76.     short                vRefNum;        /* Volume reference number, or zero if none */
  77.     Boolean             dirty;            /* Changes since last saved flag. The plug-in may clear
  78.                                            this field to prevent prompting the user when
  79.                                            closing the document. */
  80.  
  81.     Rect                selectBBox;     /* Bounding box of current selection, or an empty
  82.                                            rect if there is no current selection. */
  83.  
  84.     OSType                hostSig;        /* Creator code for host application */
  85.     HostProc            hostProc;        /* Host specific callback procedure */
  86.  
  87.     Handle                duotoneInfo;    /* Handle to duotone information. */
  88.  
  89.     short                thePlane;        /* Currently selected channel,
  90.                                            or -1 if a composite color channel,
  91.                                            or -2 if all channels. */
  92.  
  93.     PlugInMonitor        monitor;        /* Information on current monitor */
  94.  
  95.     void *                platformData;    /* Platform specific hook. */
  96.  
  97.     BufferProcs         *bufferProcs;    /* Host buffer maintenance procedures. */
  98.     
  99.     ResourceProcs         *resourceProcs;    /* Host plug-in resource procedures. */
  100.     
  101.     ProcessEventProc    processEvent;    /* Pass events to the application. */
  102.     
  103.     DisplayPixelsProc    displayPixels;    /* Display dithered pixels. */
  104.  
  105.     HandleProcs            *handleProcs;    /* Platform independent handle manipulation. */
  106.  
  107.     char                reserved [232]; /* Set to zero */
  108.  
  109.     }
  110. ExportRecord, *ExportRecordPtr;
  111.  
  112. #endif
  113.