FormatRecord Struct Reference

This structure is passed to the plug-in module through the parameter block. More...

#include <PIFormat.h>

Data Fields

int32 serialNumber
TestAbortProc abortProc
 A pointer to the TestAbortProc callback.
ProgressProc progressProc
 A pointer the the ProgressProc callback.
int32 maxData
 The maximum number of bytes Photoshop can free up for a plug-in to use.
int32 minDataBytes
 The minimum bytes needed in the data fork space to write the file.
int32 maxDataBytes
 The maximum bytes allocated in the data fork space to write the file.
int32 minRsrcBytes
 The minimum bytes needed in resource fork space to write the file.
int32 maxRsrcBytes
 The maximum bytes allocated in resource fork space to write the file.
intptr_t dataFork
intptr_t rsrcFork
FSSpec * fileSpec
 Full file specification.
int16 imageMode
 This is nil under Mac 64, since FSSpecs are not supported.
Point imageSize
int16 depth
 The resolution of the image in bits per pixel per plane.
int16 planes
 The number of channels in the image.
Fixed imageHRes
 The horizontal resolution of the image in terms of pixels per inch.
Fixed imageVRes
 The vertical resolution of the image in terms of pixels per inch.
LookUpTable redLUT
 The image's red color table.
LookUpTable greenLUT
 The image's green color table.
LookUpTable blueLUT
 The image's blue color table.
void * data
 The buffer where image data is or will be stored.
Rect theRect
int16 loPlane
 The first plane covered by the buffer specified in data.
int16 hiPlane
 The first and last planes covered by the buffer specified in FormatRecord::data.
int16 colBytes
 The offset in bytes between columns of data in the buffer.
int32 rowBytes
 The offset in bytes between rows of data in the buffer.
int32 planeBytes
 The offset in bytes between planes of data in the buffers.
PlaneMap planeMap
 Maps plug-in plane (channel) numbers to host plane numbers.
Boolean canTranspose
 Indicates whether the host supports transposing images during or after reading or before or during writing.
Boolean needTranspose
 Indicates whether the plug-in needs the image transposed.
OSType hostSig
 The signature of the host, provided by the host.
HostProc hostProc
 A pointer to a host-defined callback procedure.
int16 hostModes
 The image modes supported by the host.
Handle revertInfo
 Information kept with the document for reverting or saving; where possible this handle should be used to avoid bringing up an options dialog.
NewPIHandleProc hostNewHdl
 A pointer to the NewPIHandleProc callback.
DisposePIHandleProc hostDisposeHdl
 A pointer to the DisposePIHandleProc callback.
Handle imageRsrcData
 A handle to a block of data to be stored in the file as image resource data.
int32 imageRsrcSize
 The size of the handle imageRsrcData.
PlugInMonitor monitor
 Monitor setup information for the host.
void * platformData
 A pointer to platform specific data.
BufferProcsbufferProcs
 A pointer to the Buffer suite if it is supported by the host, otherwise NULL.
ResourceProcsresourceProcs
 A pointer to the Pseudo-Resource suite if it is supported by the host, otherwise NULL.
ProcessEventProc processEvent
 A pointer to the ProcessEventProc callback if it is supported by the host, otherwise NULL.
DisplayPixelsProc displayPixels
 A pointer to the DisplayPixelsProc callback if it is supported by the host, otherwise NULL.
HandleProcshandleProcs
 A pointer to the Handle callback suite if it is supported by the host, otherwise NULL.
OSType fileType
 file type for filtering
ColorServicesProc colorServices
 A pointer to the ColorServices callback if it is supported by the host, otherwise NULL.
AdvanceStateProc advanceState
 A pointer to the AdvanceState callback.
PropertyProcspropertyProcs
 Property callback suite.
ImageServicesProcsimageServicesProcs
 Image Services callback suite.
int16 tileWidth
 The width of the tiles provided by the host.
int16 tileHeight
 The height of the tiles provided by the host.
Point tileOrigin
 The origin point of the tiling system.
PIDescriptorParametersdescriptorParameters
 Descriptor callback suite.
Str255 * errorString
 An error reporting string to return to Photoshop.
int32 maxValue
 Used for read with 16-bit depth only.
SPBasicSuite * sSPBasic
 PICA basic suite.
void * plugInRef
 Plug-in reference used by PICA.
int32 transparentIndex
 If IndexedColor, and < 256, this is the index of the transparent color (for GIF).
Handle iCCprofileData
 Handle containing the ICC profile for the image; NULL if none.
int32 iCCprofileSize
 Size of iCCprofileData.
int32 canUseICCProfiles
 Indicates if the host uses ICC Profiles.
int32 lutCount
 Number of entries in the indexed color table.
int32 preferredColorModes
 A bitmask indicating which color modes are preferred by the host This will be zero if not set.
int32 convertMode
 Indicates whether the host supports conversion after reading; 0 if it does not, -1 if it does.
VPoint preferredSize
 The preferred size for the image; 0,0 if not set.
int32 imageIndex
 The index of the image; 0 if not set.
int32 transparencyPlane
 Index of the plane containing transparency information.
int32 transparencyMatting
 Transparency matting information; 0: no matte, 1: black matte, 2: gray matte, 3: white matte When reading files, indicates how the transparency data should be interpreted with respect to color matting.
ChannelPortProcschannelPortProcs
 Suite for passing pixels through channel ports.
ReadImageDocumentDescdocumentInfo
 The document info for the document being written.
Boolean openForPreview
 Indicates whether the document is open for preview.
int32 browserRotation
 Rotation or flip applied to the image.
int32 HostSupports32BitCoordinates
 Indicates whether the host supports 32 bit plug-in API.
int32 PluginUsing32BitCoordinates
 Indicates whether the plug-in is using the 32-bit fields; set to nonzero by the plug-in if it is.
VPoint imageSize32
 Size of image in 32 bit coordinates, replaces FormatRecord::imageSize.
VRect theRect32
 Rectangle being returned in 32 bit coordinates, replaces FormatRecord::theRect.
uint32 requestedFileProperty
 Set to a valid format file property to request the value for that property.
uint32 filePropertyValue
 The requested property value is returned in this field.
uint32 fileCount
 Count of files for bulk settings selector.
Handle xmp
 XMP handle for read and write, only valid when using formatSelectorXMPRead and formatSelectorXMPWrite.
int32 supportsSkipFile
 Indicates whether the formatSkipFile error code is supported.
Boolean extractQuickThumbnail
 When this flag is set, Read protocol should return an extracted thumbnail without reading the entire file.
Boolean hostInSecondaryThread
 Indicates if the host calling this from a non-UI thread.
uint32 bulkMask
 Tells the plug-in which features of the bulkFlags array are supported.
uint32 * bulkFlags
 Pointer to an array of fileCount 32-bit flags, used for two way information transfer when using the bulk settings and bulk open APIs.
uint32 presetCount
 Number of settings presets found.
Handle presetNames
 Handle holding array of UTF-8 encoded preset name handles.
Handle presetData
 Handle holding array of XMP preset data handles.
uint32 settingsChecksum
 Checksum of raw conversion settings.
SPPlatformFileSpecificationW * fileSpec2
 Unicode/FSRef replacement for fileSpec.
uint32 layerData
 On read: Set by plugin in Start to tell host how many layers are in the document.
uint16 * layerName
 A utf16 encoded string that contains the name of the layer On read, this should be set by the plugin before leaving ReadLayerFinish On write, this will be set by the host before calling WriteLayerStart.
void * renderRecord
 Data for Plugin Rendered Layers.
Handle * bulkParams
 Pointer to an array of handles used to pass parameter blocks between the bulk settings and bulk open calls and the corresponding open calls.
Boolean openAsSmartObject
 Set this to true and the new document will be placed as a smart object.
PIDescriptorParameterslayerMetaData
 For per-layer meta data.
uint16 * finalSpec
 A utf16 encoded string that contains the location of the final file.
Boolean isTextLayer
 On read: Set by plug-in to indiate that this layer is a text layer, plug-in must also set textDescriptor On write: Set by host to indiate that this layer is a text layer, host must also set textDescriptor.
PIDescriptorHandletextDescriptor
 On read: Set by plug-in to describe the text, only valid if isTextLayer is true On write: Set by host to describe the text, only valid if isTextLayer is true.
Boolean isGroupDivider
 On read: Set by plug-in to tell that this is a divider On write: Set by host to indicate that this is a group divider If true the type is either start or end, see isGroupStart.
Boolean isGroupStart
 On read: Set by plug-in to tell that this is a group start layer (true) or end (false) On write: Set by host to indicate that this is a group start layer (true) or end (false) Only valid if isGroupDivider is true.
Boolean isVisible
 On read: Set by plug-in to tell that this is a visible layer On write: Set by host to indicate that this is a visible layer.
Boolean isLocked
 On read: Set by plug-in to tell that this is a locked layer On write: Set by host to indicate that this is a locked layer.
PIType blendMode
 Layer blend mode, as 4 character keys.
unsigned8 opacity
 Layer opacity; range from 0 to 255, where opaque = 255.
Handle bulkExtraData
 Handle that may be allocated by bulkSettings/blukOpen call.
XPlatFileSpec * fileSpecX
 Unicode, cross-platform-friendly file specification This is an array when using the formatSelectorBulkSettings.
int16 hostSupportsPOSIXIO
 Indicates whether the host supports POSIX file IO plug-in API.
int16 pluginUsingPOSIXIO
 Indicates whether the plug-in is using the POSIX file IO fields; set to nonzero by the plug-in if it is.
int32 posixFileDescriptor
 POSIX file descriptor from an open call by Photoshop; for reading and writing.
Boolean hostSupportsPluginOpeningFile
 Indicates whether the host is letting the plug-in open and close the file for itself.
Boolean hostSupportsSingleOpenToBulkSwitch
 Set by host to true before a formatSelectorReadStart call to let plug-in know the pluginWantsSingleOpenToBulkSwitch field is supported.
Boolean pluginWantsSingleOpenToBulkSwitch
 Set by plug-in during a formatSelectorReadStart call telling the host to process the results as if the host had called formatSelectorBulkSettings instead.
Reserved Space for Expansion
char reserved [50]
 Reserved for future use.

Detailed Description

This structure is passed to the plug-in module through the parameter block.

See Plug-in Entry Point for an explanation of how the host calls a plug-in.


Field Documentation

Deprecated:
  • Formerly the host serial number.

The host now reports zero for the serialNumber. Plug-ins should use the Property Suite Callbacks through the FormatRecord::propertyProcs field and specify propSerialString2 to get the serial string.

A pointer to the TestAbortProc callback.

A pointer the the ProgressProc callback.

The maximum number of bytes Photoshop can free up for a plug-in to use.

The plug-in can reduce this value during in the handlers for the Format prepare selectors. The continue handlers should process the image in pieces no larger than maxData, less the size of any large tables or scratch areas it has allocated.

The minimum bytes needed in the data fork space to write the file.

The plug-in should set this during the estimate sequence of selector calls. See formatSelectorEstimateStart.

The maximum bytes allocated in the data fork space to write the file.

The plug-in should set this during the estimate sequence of selector calls. See formatSelectorEstimateStart.

The minimum bytes needed in resource fork space to write the file.

The plug-in should set this during the estimate sequence of selector calls.

The maximum bytes allocated in resource fork space to write the file.

The plug-in should set this during the estimate sequence of selector calls.

Deprecated:
Use posixFileDescriptor below.

The reference number for the data fork of the file to be read during the read sequence or written during the write sequence. During the options and estimate selector sequences, this field is undefined. In Windows, this is the file handle of the file returned by OpenFile().

Deprecated:
The reference number for the resource fork of the file to be read during the read sequence or written during the write sequence.

During the options and estimate selector sequences, this field is undefined. In Windows, this field is undefined.

Full file specification.

This is an array when using the formatSelectorBulkSettings. See fileSpec2.

This is nil under Mac 64, since FSSpecs are not supported.

use fileSpec2 instead, which is supported on all platforms The mode of the image being imported (grayscale, RGB Color, and so on). The plug-in should set this field during the formatSelectorReadStart handler. Photoshop sets this field before it calls formatSelectorOptionsStart, formatSelectorEstimateStart, or formatSelectorWriteStart.

See Image Modes for possible values.

The resolution of the image in bits per pixel per plane.

The plug-in should set this field in the formatSelectorReadStart handler. Valid settings are 1, 8, 16, and 32.

The number of channels in the image.

For example, if an RGB image without alpha channels is being returned, this field should be set to 3. The plug-in should set this field in the formatSelectorReadStart handler. Photoshop sets this field before it calls formatSelectorOptionsStart, formatSelectorEstimateStart, or formatSelectorWriteStart.

Because of the implementation of the plane map, Format and Import modules should never try to work with more than 16 planes at a time. Doing so yields unpredictable results.

The horizontal resolution of the image in terms of pixels per inch.

This is a fixed point number (16 binary digits). Photoshop initializes this field to 72 pixels per inch. The plug-in should set this field in the formatSelectorReadStart handler. Photoshop sets this field before it calls formatSelectorOptionsStart, formatSelectorEstimateStart, or formatSelectorWriteStart.

The vertical resolution of the image in terms of pixels per inch.

This is a fixed point number (16 binary digits). Photoshop initializes this field to 72 pixels per inch. The plug-in should set this field in the formatSelectorReadStart handler. Photoshop sets this field before it calls formatSelectorOptionsStart, formatSelectorEstimateStart, or formatSelectorWriteStart.

Note:
The current version of Photoshop only supports square pixels, so it ignores the imageVRes field. Plug-ins should set both imageHRes and imageVRes anyway in case future versions of Photoshop support non-square pixels.

The image's red color table.

If an indexed color mode image is being returned, the plug-in should set this field in the formatSelectorReadStart handler. If an indexed color document is being written, Photoshop sets these fields before it calls formatSelectorOptionsStart, formatSelectorEstimateStart, or formatSelectorWriteStart.

The image's green color table.

If an indexed color mode image is being returned, the plug-in should set this field in the formatSelectorReadStart handler. If an indexed color document is being written, Photoshop sets these fields before it calls formatSelectorOptionsStart, formatSelectorEstimateStart, or formatSelectorWriteStart.

The image's blue color table.

If an indexed color mode image is being returned, the plug-in should set this field in the formatSelectorReadStart handler. If an indexed color document is being written, Photoshop sets these fields before it calls formatSelectorOptionsStart, formatSelectorEstimateStart, or formatSelectorWriteStart.

The buffer where image data is or will be stored.

The plug-in should return a pointer to this buffer in the start and continue handlers. After the entire image has been processed, the continue selector handlers should set this field to NULL.

The plug-in is responsible for freeing any memory pointed to by this field.

The first plane covered by the buffer specified in data.

The start and continue selector handlers should set this field. For example, if interleaved RGB data is being used, it should be set to 0.

The first and last planes covered by the buffer specified in FormatRecord::data.

The start and continue selector handlers should set this field. For example, if interleaved RGB data is being used, it should be set to 2.

The offset in bytes between columns of data in the buffer.

The start and continue selector handlers should set this field. This is usually 1 for non-interleaved data, or hiPlane-loPlane+1 for interleaved data.

The offset in bytes between rows of data in the buffer.

The start and continue selector handlers should set this field.

The offset in bytes between planes of data in the buffers.

The start and continue selector handlers should set this field. This field is ignored if loPlane=hiPlane. It should be set to 1 for interleaved data.

Maps plug-in plane (channel) numbers to host plane numbers.

The host initializes it to a linear map: planeMap[i]=i. The plug-in may change this mapping if it sees the data in a different order.

For example, Photoshop stores RGB images with an alpha channel in the order RGBA, whereas most frame buffers store the data in ARGB order. To work with the data in this order, the plug-in should set planeMap[0]=3, planeMap[1]=0, planeMap[2]=1, and planeMap[3]=2.

Indicates whether the host supports transposing images during or after reading or before or during writing.

When TRUE, the host supports transposing. Photoshop always sets this field to TRUE.

Indicates whether the plug-in needs the image transposed.

Initialized by the host to FALSE. If the plug-in wishes to transpose the image, and canTranspose=TRUE, it should set this field to TRUE in the start selector handlers.

The signature of the host, provided by the host.

The signature for Photoshop is signature is 8BIM.

A pointer to a host-defined callback procedure.

May be NULL.

The image modes supported by the host.

If the corresponding bit is 1, (where LSB = bit 0), the mode is supported. This field can be used by plug-ins to disable reading unsupported file formats. See Image Modes for supported current modes.

Information kept with the document for reverting or saving; where possible this handle should be used to avoid bringing up an options dialog.

Photoshop sets this field to NULL when a format for a file is first created. If this field is defined on a formatSelectorReadStart call, then treat the call as a revert and do not query the user. If it is NULL on the formatSelectorReadStart call, then query the user as appropriate and set up this field to store a handle containing the information necessary to read the file without querying the user for additional parameters (essential for reverting the file) and if possible to write the file without querying the user. The contents of this field are sticky to a document and are duplicated when we duplicate the image format information for a document. On all options selector calls, make sure revertInfo contains enough information to revert the document.

Photoshop disposes of this field when it disposes of the document, hence, the plug-in must call on Photoshop to allocate the data as well using the FormatRecord::hostNewHdl and FormatRecord::hostDisposeHdl callbacks or the callbacks provided in the Handle Suite Callbacks.

A pointer to the NewPIHandleProc callback.

A pointer to the DisposePIHandleProc callback.

A handle to a block of data to be stored in the file as image resource data.

Photoshop documents can have other properties associated with them besides pixel data. For example, documents typically contain page setup information and pen tool paths.

Photoshop supports this through a block of data known as the image resources for a file. Format plug-in modules can store and retrieve this information if the file format definition allows for a place to put such an arbitrary block of data (e.g., a TIFF tag or a PicComment).

Since this handle is allocated before the write sequence of selector calls begins, plug-ins must add any resources they want saved to the document during the options or estimate sequences. Since Photoshop does not always call the options sequence, the best time to add resources is during the estimate sequence. This field is checked after each call to formatSelectorRead and formatSelectorContinue. As soon as this field is not NULL, Photoshop parses the handle as a block of image resource data for the current document.

The size of the handle imageRsrcData.

It is only relevant during the estimate sequence when it is provided instead of the actual resource data.

Monitor setup information for the host.

A pointer to platform specific data.

Not used under Mac OS. See PlatformData in PITypes.h.

A pointer to the Buffer suite if it is supported by the host, otherwise NULL.

See Buffer Suite Callbacks (deprecated Standard Suite).

A pointer to the Pseudo-Resource suite if it is supported by the host, otherwise NULL.

See Resource Suite Callbacks.

A pointer to the ProcessEventProc callback if it is supported by the host, otherwise NULL.

A pointer to the DisplayPixelsProc callback if it is supported by the host, otherwise NULL.

A pointer to the Handle callback suite if it is supported by the host, otherwise NULL.

See Handle Suite Callbacks (deprecated Standard Suite).

file type for filtering

A pointer to the ColorServices callback if it is supported by the host, otherwise NULL.

A pointer to the AdvanceState callback.

Valid from continue selector handlers. The advanceState callback allows you to drive the interaction through the inner formatSelectorOptionsContinue loop without actually returning from the plug-in. If it returns an error, then the plug-in generally should treat this as an error formatSelectorOptionsContinue and pass it on when it returns.

Property callback suite.

The plug-in needs to dispose of the handle returned for complex properties. The plug-in also maintains ownership of handles for set properties.

Image Services callback suite.

The width of the tiles provided by the host.

This is the best unit to work with, if possible. Zero if not set.

The height of the tiles provided by the host.

This is the best unit to work with, if possible. Zero if not set.

The origin point of the tiling system.

An error reporting string to return to Photoshop.

If the plug-in returns with result=errReportString then this string is displayed as: "Cannot complete operation because " + errorString.

Used for read with 16-bit depth only.

SPBasicSuite* FormatRecord::sSPBasic

PICA basic suite.

Provides the mechanism to access all PICA suites.

Plug-in reference used by PICA.

If IndexedColor, and < 256, this is the index of the transparent color (for GIF).

Handle containing the ICC profile for the image; NULL if none.


For reads:
The handle must be allocated using the Photoshop handle suite. Photoshop uses the data after the Finish call and then frees the handle.
For writes:
Photoshop allocates the handle using Photoshop's handle suite The handle is unlocked while calling the plug-in The handle is valid from Start to Finish Photoshop frees the handle after Finish.

Size of iCCprofileData.

Indicates if the host uses ICC Profiles.

Non-zero if the host can accept or export ICC profiles. If this is zero, don't set or dereference iCCprofileData.

Number of entries in the indexed color table.

This should include the transparent index if any. Plug-ins should pad out the color table with black for backward compatibility.

A bitmask indicating which color modes are preferred by the host This will be zero if not set.

The plug-in is free to ignore the hint (though it is wise to obey the hostModes information). This is an int32 rather than an int16 to allow for future expansion.

Indicates whether the host supports conversion after reading; 0 if it does not, -1 if it does.

The plug-in can set this field to the index of a color mode and this is treated by the host as a request to automatically convert to that mode. Hosts can ignore this request but they will make the host+plug-in combination appear broken.

The preferred size for the image; 0,0 if not set.

This is a hint about how big an image the wants. This field uses 32-bit coordinates rather than 16-bit coordinates, to allow for future expansion.

The index of the image; 0 if not set.

One indicates the first image, etc. Currently only used for PDF Image extractor.

Index of the plane containing transparency information.

When writing files:
Set to zero by hosts that do not support transparency or there is no transparency. Set to the index of the plane containing transparency information if the host does support transparency. Any alpha channels after this index are pushed down by one. The interpretation of zero is chosen for compatibility with old hosts, but it also means that the transparency plane is never the first plane.
When reading files:
This is set to zero by hosts that do not support transparency. This is set to -1 by hosts that support transparency. The plug-in should set it to the index of the plane containing transparency information if there is one.

Transparency matting information; 0: no matte, 1: black matte, 2: gray matte, 3: white matte When reading files, indicates how the transparency data should be interpreted with respect to color matting.


When writing, set by the plug-in to indicate whether the host should be premultiplied with a chosen color. The default value is no matting (unassociated).

Suite for passing pixels through channel ports.

The document info for the document being written.

Indicates whether the document is open for preview.

Set by the host, the plug-in should make the smallest previewable size if it can.

Rotation or flip applied to the image.

When reading files, this field lets the plug-in know what rotation and/or flip is applied to the image after opening. This lets the plug-in display any preview images correctly. Lowest two bits are number of 90 degree CW rotations. See Bit masks for the browserRotation field for other flags. This field is also used when requesting a value for the PIFmtPRotate property and when calling the formatSelectorLosslessRotate selector.

Indicates whether the host supports 32 bit plug-in API.

Indicates whether the plug-in is using the 32-bit fields; set to nonzero by the plug-in if it is.

Size of image in 32 bit coordinates, replaces FormatRecord::imageSize.

The plug-in should should set this field in the formatSelectorReadStart handler to inform Photoshop of the width and height of the image in pixels. Photoshop sets this field before it calls formatSelectorOptionsStart, formatSelectorEstimateStart, or formatSelectorWriteStart.

Rectangle being returned in 32 bit coordinates, replaces FormatRecord::theRect.

The area of the image covered by the buffer specified in FormatRecord::data. The plug-in should set this field.

Set to a valid format file property to request the value for that property.

The requested property value is returned in this field.

See requestedFileProperty.

Count of files for bulk settings selector.

If the bulkMask has the PIFmtBulkModifyListMask bit set, then this field is read/write. Otherwise it is read only.

XMP handle for read and write, only valid when using formatSelectorXMPRead and formatSelectorXMPWrite.

Note:
Use the FormatRecord::propertyProcs and propXMP to read and write the XMP data during normal reads and writes.
For reads:
The handle must be allocated using Photoshop's handle suite. Photoshop uses the data after the call and then frees the handle. For writes:
Photoshop allocates the handle using its handle suite. The handle is unlocked while calling the plug-in The handle is valid only during formatSelectorXMPWrite Photoshop frees the handle.

Indicates whether the formatSkipFile error code is supported.

This error code tells the host to skip this file when processing multiple files.

When this flag is set, Read protocol should return an extracted thumbnail without reading the entire file.

Indicates if the host calling this from a non-UI thread.

Set to TRUE, if so.

Tells the plug-in which features of the bulkFlags array are supported.

See Bit masks for bulkMask and bulkFlags fields.

Pointer to an array of fileCount 32-bit flags, used for two way information transfer when using the bulk settings and bulk open APIs.

See Bit masks for bulkMask and bulkFlags fields.

Number of settings presets found.

Handle holding array of UTF-8 encoded preset name handles.

Handle holding array of XMP preset data handles.

Checksum of raw conversion settings.

SPPlatformFileSpecificationW* FormatRecord::fileSpec2

Unicode/FSRef replacement for fileSpec.

On read: Set by plugin in Start to tell host how many layers are in the document.

Set by the host prior to calling ReadLayerStart to tell the plugin which layer it is requesting data for.

On write: Set by host prior to calling Start to tell plugin how many layers are in the document. Set by the host prior to calling WriteLayerStart to tell the plugin which layer it is sending data for.

A utf16 encoded string that contains the name of the layer On read, this should be set by the plugin before leaving ReadLayerFinish On write, this will be set by the host before calling WriteLayerStart.

Data for Plugin Rendered Layers.

Pointer to an array of handles used to pass parameter blocks between the bulk settings and bulk open calls and the corresponding open calls.

Before calling the bulk settings or bulk open call, the host should initialize this field to a pointer to a list of "fileCount" NULL Handles.

During the bulk settings or bulk open call, if the plug-in decides to request that a file be opened it may allocate a handle to hold some parameters for that file, and set the bulkParams array entry to that handle.

When the host then opens the requested files using open calls, it should pass back the parameter block in this same file. (Since only open file is being opened at a time, this is just a pointer to a single handle during this phase).

The host is required to free all the parameter block handles.

Set this to true and the new document will be placed as a smart object.

A utf16 encoded string that contains the location of the final file.

Use this for reference only. This will give you the parent folder and the name of the final file. Read and write via the fileSpec2 only and not this value.

On read: Set by plug-in to indiate that this layer is a text layer, plug-in must also set textDescriptor On write: Set by host to indiate that this layer is a text layer, host must also set textDescriptor.

On read: Set by plug-in to describe the text, only valid if isTextLayer is true On write: Set by host to describe the text, only valid if isTextLayer is true.

On read: Set by plug-in to tell that this is a divider On write: Set by host to indicate that this is a group divider If true the type is either start or end, see isGroupStart.

On read: Set by plug-in to tell that this is a group start layer (true) or end (false) On write: Set by host to indicate that this is a group start layer (true) or end (false) Only valid if isGroupDivider is true.

On read: Set by plug-in to tell that this is a visible layer On write: Set by host to indicate that this is a visible layer.

On read: Set by plug-in to tell that this is a locked layer On write: Set by host to indicate that this is a locked layer.

Layer blend mode, as 4 character keys.

Layer opacity; range from 0 to 255, where opaque = 255.

Handle that may be allocated by bulkSettings/blukOpen call.

Should be freed by host after processing the bulk results.

XPlatFileSpec* FormatRecord::fileSpecX

Unicode, cross-platform-friendly file specification This is an array when using the formatSelectorBulkSettings.

Indicates whether the host supports POSIX file IO plug-in API.

Indicates whether the plug-in is using the POSIX file IO fields; set to nonzero by the plug-in if it is.

POSIX file descriptor from an open call by Photoshop; for reading and writing.

Indicates whether the host is letting the plug-in open and close the file for itself.

The dataFork, rsrcFork, and posixFileDescriptor fields are undefined.

Set by host to true before a formatSelectorReadStart call to let plug-in know the pluginWantsSingleOpenToBulkSwitch field is supported.

Set by plug-in during a formatSelectorReadStart call telling the host to process the results as if the host had called formatSelectorBulkSettings instead.

Reserved for future use.

Set to zero.


The documentation for this struct was generated from the following file: