PIGeneral.h File Reference

This file contains the public definitions and structures used by all plug-ins. More...

#include "PITypes.h"
#include "PIResDefines.h"

Go to the source code of this file.


Data Structures

struct  PIProperty
 Definition of a PiPL property. More...
struct  PIPropertyList
 The plug-in property list structure has a version number and a count followed by one or more property structures. More...
struct  PI68KCodeDesc
 Structure for 'm68k' PI68kCodeProperty (DEPRECATED). More...
struct  PICFMCodeDesc
 Structure for 'pwpc' PIPowerPCCodeProperty, and 'ppcb' PIPowerPCCarbonCodeProperty. More...
struct  PIMachOCodeDesc
 Structure for 'mach' PIPowerPCMachOCodeProperty. More...
struct  PIMacIntelCodeDesc
struct  PIFragmentCodeDesc
 Structure for 'frag' PICodeFragmentProperty and 'frgc' PICarbonCodeFragmentProperty. More...
struct  PIWin64X86CodeDesc
 The entry point name for 64 bit windows, used to lookup the function which is called to invoke the plug-in. More...
struct  PIWin32X86CodeDesc
 The entry point name for 32 bit windows, used to lookup the function which is called to invoke the plug-in. More...
struct  PIWin16X86CodeDesc
 DEPRECATED Win16 Intel code descriptor. More...
struct  TypeCreatorPair
 Mac OS structure for file formats comprised of { 'type', 'crea' }. More...
struct  PlugInInfo
 Information about the Plug-in. More...
struct  PIBlendMode
 Blend Mode Information. More...
struct  PlugInMonitor
 Monitor setup information. More...
struct  PSPixelMask
 Pixel mask Information. More...
struct  PSPixelOverlay
 Pixel Overlay Information. More...
struct  PSPixelMap
 Describes a block of pixels for display purposes. More...
struct  PSPlatformContext
 Describes the platformContext used in DisplayPixeldProc. More...
struct  ColorServicesInfo
 This data structure is used in the ColorServicesProc callback function. More...
struct  PSImagePlane
 Describes the 8-bit plane of pixel data used by the image services callback functions. More...
struct  PSImageMultiPlane
 Describes multiple 8-bit planes of pixel data used by the image services callback functions. More...
struct  PSImageMultiPlane32
 Describes multiple planes of pixel data used by the image services callback functions. More...
struct  PixelMemoryDesc
 Describes an area of memory as pixels. More...
struct  PSScaling
 Provide a scaling through a rectangle in source space and a corresponding rectangle in destination space. More...
struct  WriteChannelDesc
 The channel to write a selection to. More...
struct  ReadChannelDesc
 A channel to read from. More...
struct  ReadLayerDesc
 A layer to read. More...
struct  ReadImageDocumentDesc
 The document information, used by the Export, Filter, and Selection module parameter blocks. More...
struct  BufferProcs
 The set of routines available in the Buffer Procs. More...
struct  ResourceProcs
 The set of routines available in the Resource suite. More...
struct  HandleProcs
 The set of routines available in the Handle suite. More...
struct  ImageServicesProcs
 The set of routines available in the Image Services suite. More...
struct  PropertyProcs
 The set of routines available in the Property Suite. More...
struct  ChannelPortProcs
 The set of routines available for teh Channel Ports Suite. More...
struct  PSMatrixMathProcs
 The set of routines available for the Matrix Math Suite. More...
struct  PIInterfaceColor
 Interface color definition used with Property Suite property propInterfaceColor. More...

General Error Codes

#define errPlugInHostInsufficient   -30900
 Indicates that the plug-in requires services not provided by this host.
#define errPlugInPropertyUndefined   -30901
 Indicates that a requested property could not be found.
#define errHostDoesNotSupportColStep   -30902
 Indicates that an image processing operation does not support colBytes values other than 1.
#define errInvalidSamplePoint   -30903
 For the Color Services callback, during the operation plugIncolorServicesSamplePoint, indicates that the is not in the image window.
#define errReportString   -30904
 When a plug-in returns with result=errReportString, the host reports the errorString value from the plug-in's parameter block.
#define errHostVersionIncompatible   -30905
 Indicates that the plug-in is not compatible with this version of Photoshop.

Channel Port Error Codes

#define errUnknownPort   -30910
 Unknown Channel Port.
#define errUnsupportedRowBits   -30911
 Host does not support value provided in PixelMemoryDesc::rowBits.
#define errUnsupportedColBits   -30912
 Host does not support value provided in PixelMemoryDesc::colBits.
#define errUnsupportedBitOffset   -30913
 Host does not support value provided in PixelMemoryDesc::bitOffset.
#define errUnsupportedDepth   -30914
 Host does not support value provided in PixelMemoryDesc::depth.
#define errUnsupportedDepthConversion   -30915
 Host does not provide conversion for the depth provided in PixelMemoryDesc::depth.

Scripting System Error Code

#define errWrongPlatformFilePath   -30916
 Alias Handle is invalid.
#define errIllegalCharInID   -30917
 Non-alphanum in key, class, etc.
#define errMissingParameter   -1715
 A requierd parameter is missing, same as errAEParamMissed.

Image Modes

#define plugInModeBitmap   0
#define plugInModeGrayScale   1
#define plugInModeIndexedColor   2
#define plugInModeRGBColor   3
#define plugInModeCMYKColor   4
#define plugInModeHSLColor   5
#define plugInModeHSBColor   6
#define plugInModeMultichannel   7
#define plugInModeDuotone   8
#define plugInModeLabColor   9
#define plugInModeGray16   10
#define plugInModeRGB48   11
#define plugInModeLab48   12
#define plugInModeCMYK64   13
#define plugInModeDeepMultichannel   14
#define plugInModeDuotone16   15
#define plugInModeRGB96   16
#define plugInModeGray32   17

Blend Modes

#define PIBlendNormal   'norm'
#define PIBlendDarken   'dark'
#define PIBlendLighten   'lite'
#define PIBlendHue   'hue '
#define PIBlendSaturation   'sat '
#define PIBlendColor   'colr'
#define PIBlendLuminosity   'lum '
#define PIBlendMultiply   'mul '
#define PIBlendScreen   'scrn'
#define PIBlendDissolve   'diss'
#define PIBlendOverlay   'over'
#define PIBlendHardLight   'hLit'
#define PIBlendSoftLight   'sLit'
#define PIBlendDifference   'diff'
#define PIBlendExclusion   'smud'
#define PIBlendColorDodge   'div '
#define PIBlendColorBurn   'idiv'
#define PIBlendLinearDodge   'lddg'
#define PIBlendLinearBurn   'lbrn'
#define PIBlendLinearLight   'lLit'
#define PIBlendVividLight   'vLit'
#define PIBlendPinLight   'pLit'
#define PIBlendHardMix   'hMix'

Mask Description Constants



#define kSimplePSMask   0
#define kBlackMatPSMask   1
#define kGrayMatPSMask   2
#define kWhiteMatPSMask   3
#define kInvertPSMask   4

Overlay Algorithms



#define kStandardAlphaOverlay   0
 Alpha overlay algorithm.
#define kInvertedAlphaOverlay   1
 Inverted alpha overlay algorithm.

Color Management Options



#define kViewAsMask   0xF
 Low 4 bits are only used.
#define kViewAsStandardRGB   0
 View with the Photoshop default color handling.
#define kViewAsMacRGB   1
 View as if using AppleRGB.
#define kViewAsWindowsRGB   2
 View as if using sRGB.
#define kViewAsUncompensated   3
 Perform no compensation.

Color Service Selectors

#define plugIncolorServicesChooseColor   0
 Choose a color using the user's preferred color picker.
#define plugIncolorServicesConvertColor   1
 Convert color values fro one color space to another.
#define plugIncolorServicesSamplePoint   2
 Return the current sample point.
#define plugIncolorServicesGetSpecialColor   3
 Return either the foreground or background color.

Color Space Constants

#define plugIncolorServicesRGBSpace   0
 RGB color space.
#define plugIncolorServicesHSBSpace   1
 HSB color space.
#define plugIncolorServicesCMYKSpace   2
 CMYK color space.
#define plugIncolorServicesLabSpace   3
 Lab color space.
#define plugIncolorServicesGraySpace   4
 Gray color space.
#define plugIncolorServicesHSLSpace   5
 HSL color space.
#define plugIncolorServicesXYZSpace   6
 XYZ color space.
#define plugIncolorServicesChosenSpace   -1
 Leaves the color in the space the user chose, returning resultSpace as the user chosen space.

Channel Types



#define ctUnspecified   0
 Unspecified channel.
#define ctRed   1
 Red of RGB.
#define ctGreen   2
 Green of RGB.
#define ctBlue   3
 Blue of RGB.
#define ctCyan   4
 Cyan of CMYK.
#define ctMagenta   5
 Magenta of CMYK.
#define ctYellow   6
 Yellow of CMYK.
#define ctBlack   7
 Black of CMYK.
#define ctL   8
 L of LAB.
#define ctA   9
 A of LAB.
#define ctB   10
 B of LAB.
#define ctDuotone   11
 Duotone.
#define ctIndex   12
 Index.
#define ctBitmap   13
 Bitmap.
#define ctColorSelected   14
 Selected color.
#define ctColorProtected   15
 Protected color.
#define ctTransparency   16
 Transparent color.
#define ctLayerMask   17
 Layer mask (alpha channel).
#define ctInvertedLayerMask   18
 Inverted layer mask (inverted alpha channel).
#define ctSelectionMask   19
 Mask/alpha for selection.
#define ctSpotColor   20
 Spot Color.
#define ctVectorMask   21
#define ctSmartFilterMask   22

Document Types



#define dtImageDocument   0
 Standard image document.
#define dtImageScrap   1
 Scrap or clipboard document.

Filter Padding Constants



#define plugInWantsEdgeReplication   -1
#define plugInDoesNotWantPadding   -2
 Data should be left random.
#define plugInWantsErrorOnBoundsException   -3
 Error should be signaled for out-of-bounds request.

Sampling Flag Constants

#define hostDoesNotSupportSampling   0
 Host does not support sampling.
#define hostSupportsIntegralSampling   1
 Host supports integral sampling.
#define hostSupportsFractionalSampling   2
 Host supports non-integral sampling steps.

Layout Constants for filters and export modules



#define piLayoutTraditional   0
#define piLayoutRowsColumnsPlanes   1
#define piLayoutRowsPlanesColumns   2
#define piLayoutColumnsRowsPlanes   3
#define piLayoutColumnsPlanesRows   4
#define piLayoutPlanesRowsColumns   5
#define piLayoutPlanesColumnsRows   6

Interface Color Index for propInterfaceColor



#define kPIInterfaceButtonUpFill   1
#define kPIInterfaceBevelShadow   2
#define kPIInterfaceIconFillActive   3
#define kPIInterfaceIconFillDimmed   4
#define kPIInterfacePaletteFill   5
#define kPIInterfaceIconFrameDimmed   6
#define kPIInterfaceIconFrameActive   7
#define kPIInterfaceBevelHighlight   8
#define kPIInterfaceButtonDownFill   9
#define kPIInterfaceIconFillSelected   10
#define kPIInterfaceBorder   11
#define kPIInterfaceButtonDarkShadow   12
#define kPIInterfaceIconFrameSelected   13
#define kPIInterfaceRed   14

Automation Module Caller and Selector

#define kPSPhotoshopCaller   "PS Photoshop"
 Caller portion of message action sent to an Automation plug-in entry point.
#define kPSDoIt   "Do It"
 Selector portion of message action sent to an Automation plug-in entry point.

Non-Suite Callbacks

typedef MACPASCAL Boolean(*) TestAbortProc (void)
 Provides a mechanism to allow the user to abort the operation of the plug-in.
typedef MACPASCAL void(*) ProgressProc (int32 done, int32 total)
 Provides a mechanism for the plug-in to update progress indicators.
typedef MACPASCAL void(*) HostProc (int16 selector, intptr_t *data)
 Contains a pointer to a host-defined function.
typedef MACPASCAL int32(*) SpaceProc (void)
 Examines imageMode, imageSize, depth, and planes and determines the number of bytes required to hold the image.
typedef MACPASCAL void(*) ProcessEventProc (void *event)
 Allows Mac OS plug-in modules to pass standard EventRecord pointers to Photoshop.
typedef MACPASCAL OSErr(*) DisplayPixelsProc (const PSPixelMap *source, const VRect *srcRect, int32 dstRow, int32 dstCol, void *platformContext)
 Displays pixels in various image modes given a block of pixels to display.
typedef MACPASCAL OSErr(*) AdvanceStateProc (void)
 Allows the plug-in to ask the host to update, i.e., "advance the state of", the various data structures used for communicating between the host and the plug-in.
typedef MACPASCAL OSErr(*) ColorServicesProc (ColorServicesInfo *info)
 Provides a plug-in module with access to common color services within Photoshop.

Handle Suite Callbacks

typedef MACPASCAL Handle(*) NewPIHandleProc (int32 size)
 Allocates a handle of the indicated size.
typedef MACPASCAL void(*) DisposePIHandleProc (Handle h)
 Disposes of the indicated handle.
typedef MACPASCAL void(*) DisposeRegularHandlePIHandleProc (Handle h)
 Disposes of the indicated handle.
typedef MACPASCAL int32(*) GetPIHandleSizeProc (Handle h)
 Gets the size of the indicated handle.
typedef MACPASCAL OSErr(*) SetPIHandleSizeProc (Handle h, int32 newSize)
 Attempts to resize the indicated handle.
typedef MACPASCAL Ptr(*) LockPIHandleProc (Handle h, Boolean moveHigh)
 Locks and dereferences the handle.
typedef MACPASCAL void(*) UnlockPIHandleProc (Handle h)
 Unlocks the handle.
typedef MACPASCAL void(*) RecoverSpaceProc (int32 size)
 Recovers space from disposed handles not disposed of by invoking the DisposePIHandleProc callback.

Buffer Suite Callbacks

typedef MACPASCAL OSErr(*) AllocateBufferProc (int32 size, BufferID *bufferID)
 Sets bufferID to be the ID for a buffer of the requested size.
typedef MACPASCAL OSErr(*) AllocateBufferProc64 (int64 size, BufferID *bufferID)
 Sets bufferID to be the ID for a buffer of the requested size.
typedef MACPASCAL Ptr(*) LockBufferProc (BufferID bufferID, Boolean moveHigh)
 Returns a pointer to the beginning of the buffer.
typedef MACPASCAL void(*) UnlockBufferProc (BufferID bufferID)
 Has no effect.
typedef MACPASCAL void(*) FreeBufferProc (BufferID bufferID)
 Releases the storage associated with a buffer.
typedef MACPASCAL int32(*) BufferSpaceProc (void)
 Returns the amount of space available for buffers.
typedef MACPASCAL int64(*) BufferSpaceProc64 (void)
 Returns the amount of space available for buffers.
typedef MACPASCAL OSErr(*) ReserveSpaceProc (int32 size)
 Attempts to insure that the requested amount of space is available as a single contiguous block in the address space.

Pseudo-Resource Suite Callbacks

typedef MACPASCAL int16(*) CountPIResourcesProc (ResType type)
 Counts the number of resources of a given type.
typedef MACPASCAL Handle(*) GetPIResourceProc (ResType type, int16 index)
 Gets the indicated resource for the current document.
typedef MACPASCAL void(*) DeletePIResourceProc (ResType type, int16 index)
 Deletes the indicated resource in the current document.
typedef MACPASCAL OSErr(*) AddPIResourceProc (ResType type, Handle data)
 Adds a resource of the given type at the end of the list for that type.

Property Suite Callbacks

typedef MACPASCAL OSErr(*) GetPropertyProc (PIType signature, PIType key, int32 index, intptr_t *simpleProperty, Handle *complexProperty)
 Gets information about the document currently being processed.
typedef MACPASCAL OSErr(*) SetPropertyProc (PIType signature, PIType key, int32 index, intptr_t simpleProperty, Handle complexProperty)
 Updates information in the plug-in host about the document currently being processed.

Image Services Suite Callbacks

typedef MACPASCAL OSErr(*) PIResampleProc (PSImagePlane *source, PSImagePlane *destination, Rect *area, Fixed *coords, int16 method)
 Provides 1D or 2D image interpolation, depending on the value passed in the coords parameter.
typedef MACPASCAL OSErr(*) PIResampleMultiProc (PSImageMultiPlane *source, PSImageMultiPlane *destination, Rect *area, Fixed *coords, int16 method)
typedef MACPASCAL OSErr(*) PIResampleMulti32Proc (PSImageMultiPlane32 *source, PSImageMultiPlane32 *destination, VRect *area, int64 *coords, int16 method)

Channel Ports Suite Callbacks

typedef MACPASCAL OSErr(*) ReadPixelsProc (ChannelReadPort port, const PSScaling *scaling, const VRect *writeRect, const PixelMemoryDesc *destination, VRect *wroteRect)
 Reads a rectangular area (tile) of pixels from a read port, and writes them to a destination buffer, based on a scaling and a description of the memory to write.
typedef MACPASCAL OSErr(*) WriteBasePixelsProc (ChannelWritePort port, const VRect *writeRect, const PixelMemoryDesc *source)
 Writes a rectangular area (tile) of pixels to a given port based on a memory description.
typedef MACPASCAL OSErr(*) ReadPortForWritePortProc (ChannelReadPort *readPort, ChannelWritePort writePort)
 Returns the read port corresponding to a write port.

Defines

#define kPhotoshopSignature   0x3842494d
 The Photoshop signature, '8BIM'.
#define kGeneralPiPLPropertiesDefined
 Only define general PiPL properties once.
#define kCurrentPiPLVersion   0
 Current Plug-in Property List version.
#define PIKindProperty   0x6b696e64L
 Type or kind of plug-in; key value is 'kind'.
#define PIPowerPCCodeProperty   0x70777063L
#define PIPowerPCCarbonCodeProperty   'ppcb'
#define PIPowerPCMachOCodeProperty   'mach'
 PowerPC Mach-O code descriptor.
#define PICodeMacIntel32Property   'mi32'
#define PICodeMacIntel64Property   'mi64'
#define PICodeFragmentProperty   'frag'
 PowerPC fragment descriptor.
#define PICarbonCodeFragmentProperty   'frgc'
 PowerPC CARBON fragment descriptor.
#define PIWin64X86CodeProperty   0x38363634L
#define PIWin32X86CodeProperty   0x77783836L
#define PIWin16X86CodeProperty   0x66783836L
#define PIVersionProperty   0x76657273L
 Major and minor version number indicating which revision of the plug-in interface this plug-in was written for; key value is 'vers'.
#define PIPriorityProperty   0x70727479L
 Plug-in load order; key value is 'prty'.
#define PIComponentProperty   0x636d7074L
 Component and Version ids; key value is 'cmpt'.
#define PIImageModesProperty   0x6d6f6465L
 Image modes that the plug-in supports; key value is 'mode'.
#define PIEnableInfoProperty   0x656e626cL
 A string of modula-like expressions that, upon evaluation, must all be true for the plug-in to be enabled in the menu; key value is 'enbl'.
#define PIWantsScrapProperty   0x776E7363L
 The plug-in wants the host to export image scrap; key value is 'wnsc'.
#define PICocoaProperty   0x636F636FL
 The plug-in wants the host to keep it loaded as unloading Cocoa plug-ins could result in objective-c messages going to no where This property key reflects the Cocoa property in the PiPL resource file.
#define PIFileBrowserAwareProperty   0x66626177L
 The plug-in wants in the File Browser menu; key value is 'fbaw'.
#define PINoAboutBoxProperty   0x6E61626FL
 The plug-in does not want an about box menu entry; key value is 'nabo'.
#define PILegacyFilterGalleryMenuItemProperty   0x6C46476DL
 The plug-in is a Filter Gallery plugin and its menu should be hidden by the preference.
#define PIFilterLayerSupport   0x666c6c79L
 Plug-in filter layer properties; key value is 'flly'.
#define PIRequiredHostProperty   0x686f7374L
 Creator code of required host; key value is 'host'.
#define PICategoryProperty   0x63617467L
 In the Filter menu, what sub-menu to list this plug-in; key value is 'catg'.
#define PIZCategoryProperty   0x7A636174L
 In the Filter menu, what sub-menu to list this plug-in; key value is 'zcat'.
#define PINameProperty   0x6e616d65L
 Plug-in menu name for module in PICategoryProperty sub-menu; key value is 'name'.
#define PIZNameProperty   0x7A6E616DL
 Plug-in menu name for module in PICategoryProperty sub-menu; key value is 'znam'.
#define PIProgressTextProperty   0x70726f67
 Plug-in handles all progress bar updates.
#define PIZProgressTextProperty   0x7A70726F
 Plug-in handles all progress bar updates.
#define PIPickerIDProperty   0x706e6d65L
 A unique string (UUID or your own TM/© string) that differentiates one color picker from another; key value is 'pnme'.
#define PI68KFPUCodeProperty   0x36386670L
 A 68k code resource with FPU.
#define PIUnixSPARCV7CodeProperty   0x75737037
 A SPARC version 7 code descriptor.
#define PIUnixSPARCV8CodeProperty   0x75737038
 A SPARC version 8 code descriptor.
#define PIUnixSPARCV9CodeProperty   0x75737039
 A SPARC version 9 code descriptor.
#define PIUnixSPARCCodeProperty   PIUnixSPARCV7CodeProperty
 A SPARC version 7 code descriptor.
#define PIUnixMIPSR3000CodeProperty   0x756d7233
 A MIPS R3000 code descriptor.
#define PIUnixMIPSR4000CodeProperty   0x756d7234
 A MIPS R4000 code descriptor.
#define PIUnixMIPSR400064BitCodeProperty   0x756d3477
 A MIPS R4000 code descriptor, can be 64 bit.
#define PIUnixMIPSR8000CodeProperty   0x756d7238
 A MIPS R8000 code descriptor, always 64 bit.
#define PIUnixMIPSCodeProperty   PIUnixMIPSR3000CodeProperty
 A MIPS R3000 code descriptor.
#define PILoadUnloadProperty   0x70694c55
 Plug-in supports load/unload selectors; key is 'piLU'.
#define PIPreferencesProperty   0x70695046
 Plug-in supports preferences dialog selectors; key is 'piPF'.
#define PIFeatureEnabledProperty   0x6665656e
#define PIPositionDependentProperty   0x706f7364
#define kPIGeneralInfoSize   16
#define kPIHostBlendModeSignature   '8BIM'
#define PSmovableDBoxProc   (128*16+5)
#define plugIncolorServicesForegroundColor   0
 Selects foreground color when ColorServices operation is plugIncolorServicesGetSpecialColor.
#define plugIncolorServicesBackgroundColor   1
 Selects background color when ColorServices operation is plugIncolorServicesGetSpecialColor.
#define PIFilteryLayersSupported   0
#define kCurrentMinVersWriteChannelDesc   0
 Current minimum version of WriteChannelDesc.
#define kCurrentMaxVersWriteChannelDesc   1
 Current maximum version of WriteChannelDesc.
#define kCurrentMinVersReadChannelDesc   0
 Current minimum version of ReadChannelDesc.
#define kCurrentMaxVersReadChannelDesc   5
 Current maximum version of ReadChannelDesc.
#define kCurrentMinVersReadLayerDesc   0
 Current minimum version of ReadLayerDesc.
#define kCurrentMaxVersReadLayerDesc   3
 Current maximum version of ReadLayerDesc.
#define kCurrentMinVersReadImageDocDesc   0
 Current minimum version of the ReadImageDocumentDesc.
#define kCurrentMaxVersReadImageDocDesc   5
 Current maximum version of the ReadImageDocumentDesc.
#define kCurrentBufferProcsVersion   2
 Current version of the Buffer Procs.
#define kPIBufferSuite   "Photoshop Buffer Procs for Plug-ins"
 Unique identifier for the buffer procs.
#define kPIBufferSuiteVersion   kCurrentBufferProcsVersion
 The version of the Buffer Procs.
#define kCurrentBufferProcsCount   ((sizeof(BufferProcs) - offsetof(BufferProcs, allocateProc)) / sizeof(void *))
 Current number of routines in the Buffer Procs.
#define kCurrentResourceProcsVersion   3
 The current version of the resource suite.
#define kPIResourceSuite   "Photoshop Resource Suite for Plug-ins"
 Unique identifier for the Resource suite.
#define kPIResourceSuiteVersion   kCurrentResourceProcsVersion
 Version number for the Resource suite.
#define kCurrentResourceProcsCount   ((sizeof(ResourceProcs) - offsetof(ResourceProcs, countProc)) / sizeof(void *))
 Current number of routines in the Resource Suite.
#define kDayStarColorMatchingResource   'DCSR'
#define kPhotoDeluxeResource   'PHUT'
#define kCurrentHandleProcsVersion   1
 The current version of the handle suite.
#define kPIHandleSuite   "Photoshop Handle Suite for Plug-ins"
 Unique identifier for the Handle suite.
#define kPIHandleSuiteVersion   kCurrentHandleProcsVersion
 The version of the Handle suite.
#define kCurrentHandleProcsCount   ((sizeof(HandleProcs) - offsetof(HandleProcs, newProc)) / sizeof(void *))
 Current number of routines in the Handle Suite.
#define kCurrentImageServicesProcsVersion   1
 Current version for the Image Services Suite.
#define kPIImageServicesSuite   "Photoshop Image Services Suite for Plug-ins"
 Unique identifier for the Image Services suite.
#define kPIImageServicesSuiteVersion   kCurrentImageServicesProcsVersion
 Version of the Image Services suite.
#define kCurrentImageServicesProcsCount   ((sizeof(ImageServicesProcs) - offsetof(ImageServicesProcs, interpolate1DProc)) / sizeof(void *))
 Current number of routines in the Images Services Suite.
#define kCurrentPropertyProcsVersion   1
 Current version of the Property Suite.
#define kPIPropertySuite   "Photoshop Property Suite for Plug-ins"
 Unique identifier for the Property Suite.
#define kPIPropertySuiteVersion   kCurrentPropertyProcsVersion
 Version number for the Property Suite.
#define kCurrentPropertyProcsCount   ((sizeof(PropertyProcs) - offsetof(PropertyProcs, getPropertyProc)) / sizeof(void *))
 Current number of routines in the Property Suite.
#define kCurrentChannelPortProcsVersion   1
 Current version of the Channel Ports Suite.
#define kPIChannelPortSuite   "Photoshop Channel Ports Suite for Plug-ins"
 Unique identifier for the Channel Ports Suite.
#define kPIChannelPortSuiteVersion   kCurrentChannelPortProcsVersion
 Version number for the Channel Ports Suite.
#define kCurrentChannelPortProcsCount   ((sizeof(ChannelPortProcs) - offsetof(ChannelPortProcs, readPixelsProc)) / sizeof(void *))
 Current number of routines in the Channel Ports Suite.
#define kPSMatrixMathSuite   "9cfaa249-e6f1-11d2-b8eb-0060b0c1f95d"
 Unique identifier for the Matrix Math suite.
#define kPSMatrixMathSuiteVersion   1
 Current version of the Matrix Math Suite.
#define PIPersistentProperty   0x70727374L
 Indicates whether the plug-in should always stay loaded; key value is 'prst'.
#define PIReentrantProperty   0x7265656EL
 Indicates whether the plug-in can be reentrant; key value is 'reen'.
#define kPIAnnotMajorVersion   0x0002
#define kPIAnnotMinorVersion   0x0001
#define PIAnnotTextPopup   'txtA'
#define PIAnnotSound   'sndA'
#define PIAnnotTextContent   'txtC'
#define PIAnnotSoundFile   'sndF'
#define PIAnnotSoundMem   'sndM'
#define PIFilterFlate   'fltD'
#define PIFilterLZW   'lzwD'
#define PIFilterNone   'none'
#define PIFilterUndef   ' '
#define PIMaxSize32Property   'ms32'
#define PIMinSize32Property   'mn32'
#define PIStackRendererProperty   'sRnd'
 Identifies the plug-in as a Stack Renderer.
#define PIEditInPluginProperty   'ediP'
 Indicates whether the plug-in edits files or stacks.
#define PIPluginLaunchesEditorProperty   'piLe'
 Indicates whether the plug-in launches an editor.

Typedefs

typedef uint32 PIType
 A property type signature or key.
typedef PIPropertyList ** PIPropertyListHandle
 Even though PICA may define PIPropertyList, it does not define the handle form of it.
typedef PSBuffer * BufferID
typedef int16 PlaneMap [16]
 For transposing one plane location to another on pre- or post-processing.
typedef _PIChannelPortDesc * PIChannelPort
 Access to internal channels though abstract types.
typedef PIChannelPort ChannelReadPort
 Channel read port.
typedef PIChannelPort ChannelWritePort
 Channel write port.

Detailed Description

This file contains the public definitions and structures used by all plug-ins.

Distribution: PUBLIC

This file must be included to correctly compile resources on Windows; it is included by all the plug-in headers.


Define Documentation

#define kPhotoshopSignature   0x3842494d

The Photoshop signature, '8BIM'.

#define errPlugInHostInsufficient   -30900

Indicates that the plug-in requires services not provided by this host.

#define errPlugInPropertyUndefined   -30901

Indicates that a requested property could not be found.

#define errHostDoesNotSupportColStep   -30902

Indicates that an image processing operation does not support colBytes values other than 1.

Message is "The plug-in requires services not provided by this host."

#define errInvalidSamplePoint   -30903

For the Color Services callback, during the operation plugIncolorServicesSamplePoint, indicates that the is not in the image window.

#define errReportString   -30904

When a plug-in returns with result=errReportString, the host reports the errorString value from the plug-in's parameter block.

#define errHostVersionIncompatible   -30905

Indicates that the plug-in is not compatible with this version of Photoshop.

(Version 8.0+)

#define errUnknownPort   -30910

Unknown Channel Port.

#define errUnsupportedRowBits   -30911

Host does not support value provided in PixelMemoryDesc::rowBits.

#define errUnsupportedColBits   -30912

Host does not support value provided in PixelMemoryDesc::colBits.

#define errUnsupportedBitOffset   -30913

Host does not support value provided in PixelMemoryDesc::bitOffset.

#define errUnsupportedDepth   -30914

Host does not support value provided in PixelMemoryDesc::depth.

#define errUnsupportedDepthConversion   -30915

Host does not provide conversion for the depth provided in PixelMemoryDesc::depth.

#define errWrongPlatformFilePath   -30916

Alias Handle is invalid.

#define errIllegalCharInID   -30917

Non-alphanum in key, class, etc.

#define errMissingParameter   -1715

A requierd parameter is missing, same as errAEParamMissed.

#define kGeneralPiPLPropertiesDefined

Only define general PiPL properties once.

#define kCurrentPiPLVersion   0

Current Plug-in Property List version.

#define PIPowerPCCodeProperty   0x70777063L

#define PIPowerPCCarbonCodeProperty   'ppcb'

#define PICodeMacIntel32Property   'mi32'

#define PICodeMacIntel64Property   'mi64'

#define PIWin64X86CodeProperty   0x38363634L

#define PIWin32X86CodeProperty   0x77783836L

#define PIWin16X86CodeProperty   0x66783836L

#define PIFeatureEnabledProperty   0x6665656e

#define PIPositionDependentProperty   0x706f7364

#define kPIGeneralInfoSize   16

#define kPIHostBlendModeSignature   '8BIM'

#define PIBlendNormal   'norm'

#define PIBlendDarken   'dark'

#define PIBlendLighten   'lite'

#define PIBlendHue   'hue '

#define PIBlendSaturation   'sat '

#define PIBlendColor   'colr'

#define PIBlendLuminosity   'lum '

#define PIBlendMultiply   'mul '

#define PIBlendScreen   'scrn'

#define PIBlendDissolve   'diss'

#define PIBlendOverlay   'over'

#define PIBlendHardLight   'hLit'

#define PIBlendSoftLight   'sLit'

#define PIBlendDifference   'diff'

#define PIBlendExclusion   'smud'

#define PIBlendColorDodge   'div '

#define PIBlendColorBurn   'idiv'

#define PIBlendLinearDodge   'lddg'

#define PIBlendLinearBurn   'lbrn'

#define PIBlendLinearLight   'lLit'

#define PIBlendVividLight   'vLit'

#define PIBlendPinLight   'pLit'

#define PIBlendHardMix   'hMix'

#define PSmovableDBoxProc   (128*16+5)

#define kSimplePSMask   0

#define kBlackMatPSMask   1

#define kGrayMatPSMask   2

#define kWhiteMatPSMask   3

#define kInvertPSMask   4

#define kStandardAlphaOverlay   0

Alpha overlay algorithm.

#define kInvertedAlphaOverlay   1

Inverted alpha overlay algorithm.

#define kViewAsMask   0xF

Low 4 bits are only used.

#define kViewAsStandardRGB   0

View with the Photoshop default color handling.

#define kViewAsMacRGB   1

View as if using AppleRGB.

#define kViewAsWindowsRGB   2

View as if using sRGB.

#define kViewAsUncompensated   3

Perform no compensation.

#define plugIncolorServicesForegroundColor   0

Selects foreground color when ColorServices operation is plugIncolorServicesGetSpecialColor.

#define plugIncolorServicesBackgroundColor   1

Selects background color when ColorServices operation is plugIncolorServicesGetSpecialColor.

#define PIFilteryLayersSupported   0

#define ctUnspecified   0

Unspecified channel.

#define ctRed   1

Red of RGB.

#define ctGreen   2

Green of RGB.

#define ctBlue   3

Blue of RGB.

#define ctCyan   4

Cyan of CMYK.

#define ctMagenta   5

Magenta of CMYK.

#define ctYellow   6

Yellow of CMYK.

#define ctBlack   7

Black of CMYK.

#define ctL   8

L of LAB.

#define ctA   9

A of LAB.

#define ctB   10

B of LAB.

#define ctDuotone   11

Duotone.

#define ctIndex   12

Index.

#define ctBitmap   13

Bitmap.

#define ctColorSelected   14

Selected color.

#define ctColorProtected   15

Protected color.

#define ctTransparency   16

Transparent color.

#define ctLayerMask   17

Layer mask (alpha channel).

White = transparent, Black = mask.

#define ctInvertedLayerMask   18

Inverted layer mask (inverted alpha channel).

#define ctSelectionMask   19

Mask/alpha for selection.

#define ctSpotColor   20

Spot Color.

#define ctVectorMask   21

#define ctSmartFilterMask   22

#define dtImageDocument   0

Standard image document.

#define dtImageScrap   1

Scrap or clipboard document.

#define kCurrentBufferProcsVersion   2

Current version of the Buffer Procs.

#define kPIBufferSuite   "Photoshop Buffer Procs for Plug-ins"

Unique identifier for the buffer procs.

#define kPIBufferSuiteVersion   kCurrentBufferProcsVersion

The version of the Buffer Procs.

#define kCurrentBufferProcsCount   ((sizeof(BufferProcs) - offsetof(BufferProcs, allocateProc)) / sizeof(void *))

Current number of routines in the Buffer Procs.

#define kPIResourceSuite   "Photoshop Resource Suite for Plug-ins"

Unique identifier for the Resource suite.

#define kPIResourceSuiteVersion   kCurrentResourceProcsVersion

Version number for the Resource suite.

#define kDayStarColorMatchingResource   'DCSR'

#define kPhotoDeluxeResource   'PHUT'

#define kPIHandleSuite   "Photoshop Handle Suite for Plug-ins"

Unique identifier for the Handle suite.

#define kPIHandleSuiteVersion   kCurrentHandleProcsVersion

The version of the Handle suite.

#define kPIImageServicesSuite   "Photoshop Image Services Suite for Plug-ins"

Unique identifier for the Image Services suite.

#define kPIImageServicesSuiteVersion   kCurrentImageServicesProcsVersion

Version of the Image Services suite.

#define plugInWantsEdgeReplication   -1

#define plugInDoesNotWantPadding   -2

Data should be left random.

#define plugInWantsErrorOnBoundsException   -3

Error should be signaled for out-of-bounds request.

#define hostDoesNotSupportSampling   0

Host does not support sampling.

#define hostSupportsIntegralSampling   1

Host supports integral sampling.

#define hostSupportsFractionalSampling   2

Host supports non-integral sampling steps.

#define piLayoutTraditional   0

#define piLayoutRowsColumnsPlanes   1

#define piLayoutRowsPlanesColumns   2

#define piLayoutColumnsRowsPlanes   3

#define piLayoutColumnsPlanesRows   4

#define piLayoutPlanesRowsColumns   5

#define piLayoutPlanesColumnsRows   6

#define kPIInterfaceButtonUpFill   1

#define kPIInterfaceBevelShadow   2

#define kPIInterfaceIconFillActive   3

#define kPIInterfaceIconFillDimmed   4

#define kPIInterfacePaletteFill   5

#define kPIInterfaceIconFrameDimmed   6

#define kPIInterfaceIconFrameActive   7

#define kPIInterfaceBevelHighlight   8

#define kPIInterfaceButtonDownFill   9

#define kPIInterfaceIconFillSelected   10

#define kPIInterfaceBorder   11

#define kPIInterfaceButtonDarkShadow   12

#define kPIInterfaceIconFrameSelected   13

#define kPIInterfaceRed   14

#define kPIAnnotMajorVersion   0x0002

#define kPIAnnotMinorVersion   0x0001

#define PIAnnotTextPopup   'txtA'

#define PIAnnotSound   'sndA'

#define PIAnnotTextContent   'txtC'

#define PIAnnotSoundFile   'sndF'

#define PIAnnotSoundMem   'sndM'

#define PIFilterFlate   'fltD'

#define PIFilterLZW   'lzwD'

#define PIFilterNone   'none'

#define PIFilterUndef   ' '

#define PIMaxSize32Property   'ms32'

#define PIMinSize32Property   'mn32'


Typedef Documentation

typedef uint32 PIType

A property type signature or key.

This original came from OSType on the Mac.

Even though PICA may define PIPropertyList, it does not define the handle form of it.

typedef struct PSBuffer* BufferID

typedef int16 PlaneMap[16]

For transposing one plane location to another on pre- or post-processing.