PIExport.h

Go to the documentation of this file.
00001 // ADOBE SYSTEMS INCORPORATED
00002 // Copyright  1993 - 2005 Adobe Systems Incorporated
00003 // All Rights Reserved
00004 //
00005 // NOTICE:  Adobe permits you to use, modify, and distribute this 
00006 // file in accordance with the terms of the Adobe license agreement
00007 // accompanying it.  If you have received this file from a source
00008 // other than Adobe, then your use, modification, or distribution
00009 // of it requires the prior written permission of Adobe.
00010 //-------------------------------------------------------------------
00034 #ifndef __PIExport__
00035 #define __PIExport__
00036 
00037 #if PRAGMA_ONCE
00038 #pragma once
00039 #endif
00040 
00041 #include "PIActions.h"
00042 #include "PIGeneral.h"
00043 #include "SPBasic.h"
00044 
00045 /* Operation selectors */
00047 
00048 
00058 #define exportSelectorAbout    0
00059 
00072 #define exportSelectorStart    1
00073 
00090 #define exportSelectorContinue 2
00091 
00105 #define exportSelectorFinish   3
00106 
00111 #define exportSelectorPrepare  4
00112   // end ingroup
00116 
00118 
00119 
00120 
00122 
00123 
00128 /* Error return values. The plug-in module may also return standard Macintosh
00129    operating system error codes, or report its own errors, in which case it
00130    can return any positive integer. */
00131 
00132 #define exportBadParameters -30200  
00133 #define exportBadMode       -30201    // end ingroup
00138 
00140 
00141 /******************************************************************************/
00142 
00144 
00154 #define PIExpFlagsProperty      0x65787066 /* 'expf' <Set> Export flags */
00155 
00156 /******************************************************************************/
00157 
00158 /* Export flag indices. */
00159 
00160 #define PIExpSupportsTransparency 0   
00163 /******************************************************************************/
00164 /* Pragma to byte align structures; only for Borland C */
00165 
00166 #if defined(__BORLANDC__)
00167 #pragma option -a-
00168 #endif
00169 
00170 /******************************************************************************/
00171 
00172 #if PRAGMA_STRUCT_ALIGN
00173 #pragma options align=mac68k
00174 #endif
00175 
00182 typedef struct ExportRecord
00183     {
00184 
00185     int32           serialNumber;   
00192     TestAbortProc   abortProc;      
00194     ProgressProc    progressProc;   
00196     int32           maxData;        
00204     int16           imageMode;      
00209     Point           imageSize;      
00212     int16           depth;          
00214     int16           planes;         
00218     Fixed           imageHRes;      
00220     Fixed           imageVRes;      
00223     LookUpTable     redLUT;         
00225     LookUpTable     greenLUT;       
00227     LookUpTable     blueLUT;        
00230     Rect            theRect;        
00236     int16           loPlane;        
00239     int16           hiPlane;        
00243     void *          data;           
00246     int32           rowBytes;       
00248     Str255          filename;       
00250     int16           vRefNum;        
00252     Boolean         dirty;          
00259     Rect            selectBBox;     
00263     OSType          hostSig;        
00265     HostProc        hostProc;       
00267     Handle          duotoneInfo;    
00272     int16           thePlane;       
00275     PlugInMonitor   monitor;        
00277     void *          platformData;   
00280     BufferProcs *   bufferProcs;    
00282     ResourceProcs * resourceProcs;  
00284     ProcessEventProc processEvent;  
00286     DisplayPixelsProc displayPixels;
00288     HandleProcs     *handleProcs;   
00290 
00291 
00292     ColorServicesProc colorServices; 
00294     GetPropertyProc getPropertyObsolete; 
00298     AdvanceStateProc advanceState;      
00305     int16           layerPlanes;          
00308     int16           transparencyMask;     
00310     int16           layerMasks;           
00315     int16           invertedLayerMasks;   
00320     int16           nonLayerPlanes;       
00327     /* Note that the layer mask fields are necessarily zero in 3.0.4 since
00328        the export module receives the merged data and the merged data doesn't
00329        really have a layer mask associated with it. */
00331 
00332 
00333     ImageServicesProcs *imageServicesProcs;
00336     int16               tileWidth;      
00341     int16               tileHeight;     
00346     Point               tileOrigin;     
00348     PropertyProcs   *propertyProcs;     
00353 
00354 
00355     PIDescriptorParameters  *descriptorParameters;  
00356     Str255                  *errorString;           
00361     ChannelPortProcs *channelPortProcs;     
00363     ReadImageDocumentDesc *documentInfo;    
00366 
00367 
00368     SPBasicSuite    *sSPBasic;      
00369     void            *plugInRef;     
00371     int32           transparentIndex;   
00374     Handle          iCCprofileData;     
00380     int32           iCCprofileSize;     
00382     int32           canUseICCProfiles;  
00387 
00388 
00389     int32           lutCount;           
00393 
00394 
00395     int32       HostSupports32BitCoordinates;   
00397     int32       PluginUsing32BitCoordinates;    
00400     VPoint      imageSize32;                    
00403     VRect       theRect32;                      
00406     VRect       selectBBox32;                   
00411     /* Reserved Space for Expansion -- decrement when you add stuff */
00412     
00414 
00415     char            reserved [106]; 
00417 
00418     }
00419 ExportRecord, *ExportRecordPtr;
00420 
00421 #if PRAGMA_STRUCT_ALIGN
00422 #pragma options align=reset
00423 #endif
00424 
00425 /******************************************************************************/
00426 /* turn off the byte align pragma back to its original state; only for Borland C */
00427 
00428 #if defined(__BORLANDC__)
00429 #pragma option -a.
00430 #endif
00431 
00432 /******************************************************************************/
00433 
00434 #endif // __PIExport_h__