Format Plugin - Recent specs

Is there an extensibility point for a format plugin for the recent specs menu?

I don't believe its documented but you can change the format plugins for the MRU dropdown at the top of the application. 
For example here are some GSM specific items:
   <Plugin name="MRU.ObjectCaption.GSM.GSMSpec" FactoryURL="Class:Xeno.Web.UI.Common.Plugins.ObjectHeader.GSM.GsmSpecNameAndEquivalentObjectIdentityModelFormatPluginFactory,WebCommon$NameValuePair:NameMaxLength=50&NumberMaxLength=12"/>
   <Plugin name="MRU.ObjectStatus.GSM" FactoryURL="Class:Xeno.Prodika.GSMLib.Utils.Plugins.GSMItemStatusFormatPluginFactory,GSMLib" MaxSizeUI="25"/>
   <Plugin name="MRU.ObjectTypeNameOverride.GSM" FactoryURL="Class:Xeno.Prodika.GSMLib.Utils.Plugins.GSMMruObjectTypeSubheaderPluginFactory,GSMLib"/>
ObjectCaption = Spec name and number pairing
ObjectStatus = Status
ObjectTypeNameOverride = Object Type
Let me know what specific areas you are interested in and I can share the plugin names with you here.   Support should also be able to provide a copy of the Core/PluginExtensions.xml file you can use as a reference.   Just submit an SR with the request and version number and we can send a copy over.
Thanks
Kelly

Similar Messages

  • File Format Plugin - "Save As" vs "Save"....

    I have a format plugin that I would like to have triggered with File->SAVE.
    With only one layer in the document, Ctrl-S (Save) *does* call my plugin. So far so good.
    BUT if the document has more than one layer, then Ctrl-S pops up a dialog, with .PSD as the default file type. i.e., "Save" behaves like "Save As". Thats not what I want.
    Lets say that my own file format plugin can handle multiple layers.
    Any ideas on how I can get "Save" to save, without popping up a dialog each time? I looked through the documentation, for a way to specify my custom file format as a multi-layer file format. No luck. Any clues are appreciated.
    Thanks.

    Might You have set »Append File Extension« to »Never« in Preferences - File Handling by any Chance?

  • How to set alpha channel names in a format plugin?

    I am writing a format plugin with 6 color planes for CMYK mode. I want to set the apha channel names for planes 5 and 6 to "White" and "Clear" instead of "Alpha 1" and "Alpha 2" when I read the color data from my file. How do I set the alpha channel names?
    Thanks!

    I am still trying to find a solution to this.  The propChannelName is read only and the documentInfo structure is NULL when reading.  Any suggestions?

  • Setting the layer name from a format plugin with CS2 and before

    Hello,
    I wrote a new format plugin and the name of the layer shown in PS , when I read a file, does not seem to be consistent on all computers for versions CS2 and before :  some times I get "Background" and some times I get "Layer 0" .
    When the layer is named is "Background",  it is locked. If I double click on the layer, I get a panel to rename it and the name suggested is "Layer 0" (and not "Background").
    Somehow, it seems that my plugin is not doing exactly the right thing or there is a setting in PS options (or in the registry) that controls/causes that behavior. My understanding is that we can't name layers from the plugin before version CS3 (setting the layerName field in the FormatRecord makes no difference for CS2 and before).
    I do not care much about the actual layer name as long as that name is consistent for all installations. Does anybody know what is going on?
    Thank you!
    Gilbert

    If it has transparency, it has to be a layer ("Layer0").
    If it doesn't have transparency, it is treated as a background.
    And yes, changing the background to a layer does normally rename it to "layer X".

  • Alpha channel data with layered format plugin

    I have a layered format plugin and I am trying to write the alpha channel information separately. I have set up channelPortProcs and I am attempting to read the pixel data with readPixelsProc. The issue is that even though the readPixelsProc function doesn't return any errors the rectangle that is supposed to store the rectangle that was actually read is a 0x0 rectangle. I can't seem to find why this would be or what I might be doing wrong. Here's what I have so far:
    // set up the pixel buffer
    int32 bufferSize = imSize.h*imSize.v;
    Ptr pixelData = sPSBuffer->New( &bufferSize, bufferSize );
    if (pixelData == NULL)
         *gResult = memFullErr;
         return;
    // Define the source and destination rectangles
    ReadChannelDesc *alphaChannel = gFormatRecord->documentInfo->alphaChannels;
    PIChannelPort port = alphaChannel->port;
    PSScaling scale;
    scale.sourceRect = scale.destinationRect = alphaChannel->bounds;
    VRect destRect = scale.sourceRect;
    // Set up the descriptor for reading pixel data
    VRect wroteRect = {0};
    PixelMemoryDesc dest = {0};
    dest.rowBits = imSize.h*alphaChannel->depth;
    dest.colBits = alphaChannel->depth;
    dest.depth = alphaChannel->depth;
    dest.data = pixelData;
    // Put the pixel data into the buffer
    *gResult = gFormatRecord->channelPortProcs->readPixelsProc(port,&scale, &destRect, &dest, &wroteRect);
    if(*gResult != noErr)
         return;
    The alpha channel gives me the proper name, but I just can't get the data associated with it. Thanks.

    I am still trying to find a solution to this.  The propChannelName is read only and the documentInfo structure is NULL when reading.  Any suggestions?

  • PS Custom Format Plugin - Issue Reading Files 2GB & 4GB

    Is this issue fixable within our format plugin code, or is it  a photoshop limitation?
    I am new to Photoshop & Photoshop Plugins.  I have reviewed the sdk photoshop documentation & searched web on this subject.
    I am working with a photoshop format plugin written by my predecessor who is no longer here.
    The plugin is modeled after the simpleFormat plugin.
    The plugin is being used on systems running Photoshop CS6 & CC on 64bit Windows 7 with 8GB or more memory.
    The plugin allows a file of our format to be opened, read and written.
    ISSUE:
    The plugin works fine reading  files < 2GB or > 4GB.  For files between 2GB and 4GB, the call to allocate memory fails.
    In the plugin's PIPL structure:   the FormatMaxSize {32767, 32767} and PluginMaxSize {PlugInMaxSize { 2147483647, 2147483647 }
    In the plugin code;  the DoReadStart() method opens the file and reads the file header information.  This works fine.
    Next, in the DoReadContinue() method: SPsBuffer->New(&bufferSize, buffersize) is returning NULL.     see below.
    void PluginMain (const int16 selector,
                                                                             FormatRecordPtr formatParamBlock,
                                                                             intptr_t * data,
                                                                             int16 * result)
        gFormatRecord = reinterpret_cast<FormatRecordPtr>(formatParamBlock);
              gPluginRef = reinterpret_cast<SPPluginRef>(gFormatRecord->plugInRef);
              gResult = result;
              gDataHandle = data;
    sSPBasic = ((FormatRecordPtr)formatParamBlock)->sSPBasic;
    if (gCountResources == NULL ||
                gGetResources == NULL ||
                gAddResource == NULL ||
    gFormatRecord->advanceState == NULL)
    *gResult = errPlugInHostInsufficient;
    return;
    // new for Photoshop 8, big documents, rows and columns are now > 30000 pixels
    if (gFormatRecord->HostSupports32BitCoordinates)
            gFormatRecord->PluginUsing32BitCoordinates = true;
    static void DoReadPrepare()
         gFormatRecord->maxData = 0
    static void DoReadContinue (void)
              int32 done;
              int32 total;
              int32 row;
              VPoint imageSize = GetFormatImageSize();
              /* Set up the buffer & progress variables. */
              done = 0;
              total = imageSize.v;
        Ptr pixelData        = NULL;
        Ptr rawData          = NULL;
        Ptr uncompressedData = NULL;
        int64* offsetTable   = NULL;
    /* allocate the pixel buffer. */
              unsigned32 bufferSize = gFormatRecord->planes * imageSize.v * imageSize.h;
              pixelData = sPSBuffer->New( &bufferSize, bufferSize );            <======   This allocation fails for file sizes > 2GB & < 4GB.
              if (pixelData == NULL)
                        *gResult = memFullErr;
                        //return;
                        if(*gResult == memFullErr) { goto ReadContinueCleanUp; }

    Some examples of files that are successfully read and files that are not successfully read are shown below:
    Filenames that contain "nok" as part of the name, would not open and an out of RAM error occurs.
    in the ReadContinue method, shown in an earlier post on this thread.
    Filenames
    12x12ok
    12x24ok
    ok
    nok
    nok
    nok
    ok
    hdots
    17280
    17280
    23160
    23180
    30001
    32768
    32768
    vdots
    8640
    17280
    23160
    23180
    30001
    32768
    32768
    hdots * vdots
    149299200
    298598400
    536385600
    537312400
    900060001
    1.074E+09
    1.074E+09
    hdots  + vdots
    25920
    34560
    46320
    46360
    60002
    65536
    65536
    hdpi,vdpi
    1440:720
    1440:720
    1440:720
    1440:720
    1440:720
    1440:720
    1440:720
    #channels
    4
    4
    4
    4
    4
    4
    5
    #bpp
    2
    2
    2
    2
    2
    2
    2
    compression
    Packbits
    Packbits
    Packbits
    Packbits
    Packbits
    fileLength(bytes)
    8593776
    8647536
    14365054
    17063936
    21258240
    filesize (MB)
    356
    712
    8.19
    8.24
    13.7
    16.27
    20.27
    filesize (GB)
    0.348
    0.69
    0.008
    0.008
    0.0134
    0.016
    0.0198

  • Is there a 2GB file size limit on saving a custom format plugin for a custom file type?

    I have resolved issues on reading files > 2GB. Now when I save files >2GB, I get a popup that states there is a 2GB limit for plugins.
    I an using photoshop CS6 on a MAC OSX 10.9 with 16 GB RAM.
    The custom file type is what should be selected when the Save As Dialogue is visible. 
    I looked for a setting in the Photoshop preferences for Files & setting to PSB, but did not see one.
    I tried modifying values in the PiPL for formatmaxSize and PluginMaxSize, but the only values that the code will compile in with:
    32767 & 2147483647.
    I saw a posting in previous years that custom plugins were limited to 2 GB. 

    I would like to rephrase my question, now that I have worked a little more with my code.
    Is there a 2GB limit per channel and 4GB limit for total file size for a custom photoshop format plugin?

  • Format Plugin Issue

    Dear Experts,
    I develop "Custom Format Plugin" using sample sdk's code. It is working fine for Grey as well as RGB images. But it is creating problems for Indexed images. When I filled the redLUT,greenLUT and blueLUT member of FormatRecord strcture, It showed me image with only red color. As far as I understand , it is not setting the other colors table properly.Thats why it is displaying image with only red color rest image is displayed with black color. if I don't fill the blue and green table , result remain the same. So it is confirmed that after filling all the three tables , it has effect only for red color rest remain unchanged. I won't be able to break where actually the problem is coming. Kindly help me in this regard, if somebody had done work similar to that in their project.
    Thanks;
    Vikas

    Dear Experts,<br />             Kindly find the code given below:-<br /><br />SimpleFormat.cpp<br /><br />SPBasicSuite * sSPBasic = NULL;<br />SPPluginRef gPluginRef = NULL;<br /><br />FormatRecord * gFormatRecord = NULL;<br />int32 * gDataHandle = NULL;<br />Data * gData = NULL;<br />int16 * gResult = NULL;<br /><br />#define gCountResources gFormatRecord->resourceProcs->countProc<br />#define gGetResources   gFormatRecord->resourceProcs->getProc<br />#define gAddResource     gFormatRecord->resourceProcs->addProc<br /><br />static void DoReadStart (void)<br />{<br />     <br />     // If you add fmtCanCreateThumbnail to the FormatFlags PiPL property<br />     // you will get called to create a thumbnail. The only way to tell<br />     // that you are processing a thumbnail is to check openForPreview in the<br />     // FormatRecord. You do not need to parse the entire file. You need to<br />     // process enough for a thumbnail view and you need to do it quickly.<br />     <br />     <br />     ReadScriptParamsOnRead (); // override params here<br />     <br />     /* Exit if we have already encountered an error. */<br /><br />    if (*gResult != noErr) return;<br />          <br />     /* If we have not encountered an error, then we want to read<br />        the file header. */<br />        <br />     *gResult = SetFPos (gFormatRecord->dataFork, fsFromStart, 0);<br />     if (*gResult != noErr) return;<br />     <br />     ReadSome (sizeof (header.manufacturer), &header.manufacturer);<br />     if(header.manufacturer != manufacturer_flag)<br />          return;<br />     <br />     ReadSome(sizeof(header.version), &header.version);<br />     if(header.version != version_0 && header.version != version_2 && header.version != version_3 && header.version != version_4 && header.version != version_5)<br />          return;<br /><br />     ReadSome(sizeof(header.encoding), &header.encoding);<br />     if(header.encoding != uncompressed)<br />          return;<br /><br />     ReadSome(sizeof(header.bits_per_sample), &header.bits_per_sample);<br />     if(header.bits_per_sample != bits_1 && header.bits_per_sample != bits_2 && header.bits_per_sample != bits_4 <br />          && header.bits_per_sample != bits_8)<br />          return;<br /><br />     for (int i=0;i< window_size;i++)<br />          ReadSome(sizeof(header.window[i]), &(header.window[i]));<br /><br />     header.image_height = header.window[3] - header.window[1] + 1;<br />     header.image_width = header.window[2] - header.window[0] + 1;<br /><br />     ReadSome(sizeof(header.hdpi), &header.hdpi);<br />     ReadSome(sizeof(header.vdpi), &header.vdpi);<br /><br />     for(int i= 0; i<default_palette_size; i++)<br />     ReadSome(sizeof(header.palette[i]), &header.palette[i]);<br /><br />     ReadSome(sizeof(header.reserved), &header.reserved);<br />     <br />     ReadSome(sizeof(header.nplanes), &header.nplanes);<br />     if (header.nplanes != index_gray && header.nplanes != rgb && header.nplanes != rgba)<br />          return;<br /><br />     ReadSome(sizeof(header.bytes_per_line), &header.bytes_per_line);<br />     ReadSome(sizeof(header.palette_info), &header.palette_info);<br /><br />     ReadSome(sizeof(header.hscreen_size), &header.hscreen_size);<br />     ReadSome(sizeof(header.vscreen_size), &header.vscreen_size);<br />     <br />     //header.filler.resize(filler_size);<br />     for(int i= 0; i<filler_size; i++)<br />     ReadSome(sizeof(header.filler[i]), &header.filler[i]);<br />     <br /><br />     // read gray/index/bitmap type<br />     if (header.nplanes == index_gray){<br />          if(header.palette_info == palette_info_type  && header.version <= version_3)<br />               gFormatRecord->imageMode = plugInModeGrayScale;<br />          else if(header.bits_per_sample > bits_1)<br />               gFormatRecord->imageMode = plugInModeIndexedColor;<br />          else if(header.bits_per_sample == bits_1)<br />                gFormatRecord->imageMode = plugInModeBitmap;<br />     }<br />     else if (header.nplanes == rgb) {<br />          gFormatRecord->imageMode = plugInModeRGBColor;<br />     }<br />     else if (header.nplanes == rgba) {<br />          gFormatRecord->imageMode = plugInModeCMYKColor;<br />     }<br />  <br />     VPoint imageSize;<br />     <br />     imageSize.h = header.image_width;<br />     imageSize.v = header.image_height;<br />     SetFormatImageSize(imageSize);<br />     gFormatRecord->depth = header.bits_per_sample;<br />     gFormatRecord->planes = header.nplanes;<br />     gFormatRecord->transparencyPlane = 0;<br />     gFormatRecord->canTranspose = TRUE;<br />     gFormatRecord->transparencyMatting = DESIREDMATTING;<br /><br />     if (sPSHandle->New != NULL)<br />          gFormatRecord->imageRsrcData = sPSHandle->New(0);<br />     gFormatRecord->imageRsrcSize = 0;<br />          <br />     /* Next, we will will read the lookup tables if in indexed color mode. */<br />     <br />     if (gFormatRecord->imageMode == plugInModeIndexedColor)<br />     {<br />          LONG data_size = header.bytes_per_line * header.image_height;<br /><br />          long data_moved = SetFilePointer ((HANDLE)gFormatRecord->dataFork,data_size, NULL,FILE_CURRENT);<br />          if (data_moved != 128 + data_size)<br />               return;<br />     <br />          int8 color_marker;<br />          ReadSome (1, &color_marker);<br />          if (*gResult != noErr) return;<br /><br />          if(color_marker == 12){<br />               ReadSome (sizeof (LookUpTable), &gFormatRecord->redLUT);<br />               ReadSome (sizeof (LookUpTable), &gFormatRecord->greenLUT);<br />               ReadSome (sizeof (LookUpTable), &gFormatRecord->blueLUT);<br />               if (*gResult != noErr)<br />                    goto CleanUp;<br />          }<br />          data_moved = SetFilePointer ((HANDLE)gFormatRecord->dataFork,128, NULL,FILE_BEGIN);<br />          if(data_moved != 128)<br />               return;<br />          <br />     }<br />          <br />     return;<br />          <br />     /* The following code does any clean-up work in the event of an error. */<br />     <br />CleanUp:<br />     <br />     DisposeImageResources ();   <br />}<br /><br />/*****************************************************************************/<br /><br />static void DoReadContinue (void)<br />{<br />     <br />     int32 done;<br />     int32 total;<br />     int16 plane;<br />     int32 row;<br />     <br />     /* Dispose of the image resource data if it exists. */<br />     <br />     DisposeImageResources ();<br />     <br />     /* Set up the progress variables. */<br />     <br />     done = 0;<br />     VPoint imageSize = GetFormatImageSize();<br />     total = imageSize.v * gFormatRecord->planes;<br />          <br />     /* Next, we will allocate the pixel buffer. */<br /><br />     uint32 bufferSize = header.bytes_per_line;//RowBytes();<br />     Ptr pixelData = sPSBuffer->New( &bufferSize, bufferSize );<br />     <br />     if (pixelData == NULL)<br />     {<br />          *gResult = memFullErr;<br />          return;<br />     }<br />     <br />     /* Set up to start returning chunks of data. */<br />     <br />     VRect theRect;<br /><br />     theRect.left = 0;<br />     theRect.right = imageSize.h;<br />     gFormatRecord->colBytes = (gFormatRecord->depth + 7) >> 3;<br />     gFormatRecord->rowBytes =/* header.bytes_per_line;//*/RowBytes();<br />     gFormatRecord->planeBytes = 0;<br />     gFormatRecord->data = pixelData;<br /><br />          <br />     for (row = 0; *gResult == noErr && row < imageSize.v; ++row)<br />     {<br />          for (plane = 0; *gResult == noErr && plane < gFormatRecord->planes; ++plane)<br />          {<br />               gFormatRecord->loPlane = gFormatRecord->hiPlane = plane;<br />               theRect.top = row;<br />               theRect.bottom = row + 1;<br />               SetFormatTheRect(theRect);<br />               ReadSome (header.bytes_per_line/*header.image_width*/, pixelData);<br />               <br />               if(*gResult == noErr)<br />                    *gResult = gFormatRecord->advanceState();<br />               <br />               gFormatRecord->progressProc(++done, total);<br />          }<br />          <br />     }<br /><br />     if (*gResult != noErr) return;<br />     <br />     gFormatRecord->data = NULL;<br />     <br />     sPSBuffer->Dispose(&pixelData);<br /><br />     DoReadICCProfile ();<br />}<br /><br />/*****************************************************************************/<br /><br />static void DoReadFinish (void)<br />{<br />     /* Test the ability to create the file inside a smart object */<br />     /* This flag also tells you which menu item was selected */<br /><br />     // if openAsSmartObject is already true then you cannot turn it off<br />     gFormatRecord->openAsSmartObject = gData->openAsSmartObject;<br />     <br />     // every other time we open as smart, that should be confusing enough for a user!<br />     gData->openAsSmartObject = !gData->openAsSmartObject;<br />     <br />     /* Dispose of the image resource data if it exists. */<br />     DisposeImageResources ();<br />     WriteScriptParamsOnRead (); // should be different for read/write<br />     //AddComment (); // write a history comment<br /><br />}

  • Global variables in a format plugin

    Hello,
    I developped a format plugin under Windows and I am now porting it to the Macinstosh. I found that the global variables dont seem to behave as they do in windows. In windows, they are real global variables that keep they value as long as Photoshop runs. Under the Macintosh, the variables get reset once in a while. It seems that the plugin gets reloaded, probably after each set of events ( ex: if loading a file requires a ReadStart, ReadContinue and ReadFinish event, then the global variables keep their value for these events. On the next file loaded, they are reinitialised to their default value).
    This is a bit annoying because I like keeping a few basic states in memory to save time (ex: load an INI file only once) but that does not work on the Mac. Is there something to do to have the same behavior as we have under windows (have the plugin loaded only once or some other way to have global variables keep their values?
    Thanks,
    Gilbert

    Plugins get unloaded when they're done being used - that is pretty well documented in the SDK.
    You can't assume that globals will remain valid on any platform.
    That's why the example plugins save their globals in a structure and save that via the plugin API.

  • How do you assign profile in a format plugin read sequence

    I have a format plugin that will read various image formats.  I know what the source colorspace or profile  (i.e. ProPhoto RGB, sRGB, AdobeRGB, whatever) is.  I haven't figured out how to do the equivalent to Assign Profile from with my Read sequence in my Format Plugin.
    Surely there is a way to do this.  ACR does it.
    Any clues will be greatly appreciated!

    Well, it appears that you just fill in the iCCprofileData/iCCprofileSize fields with an ICC profile.
    You can read the ICC profile for a filter plugin and you can specify an ICC profile for a format plugin read sequence.

  • How to retrieve alpha channel data in format plugin

    I want to ask how to get the alpha channel 's data that describle the document's transparent info, in a format plugin.
    for example , when open a PNG file in Photoshop, the photoshop set FormatRecord:: planes to 3 (not 4),
    in this case i can only request the RGB data.
    then how can i get if the pixel is transparent in document ?  (that is 0 - completely transparent, 255 - completely opaque)
    Thanks~

    i have resolved this problem, it's maybe i didnot set the fmtCanWriteTransparency flag in the pipl.
    thanks.

  • Custom Format Plugin Problem

    Hello Experts,
    I am new in the field of plugin development. I used sample application available in SDK and tried to implement my own Format Plugin . I changed pcx file's extension with .PBZ and try to parse it as new file and open it using sdk sample code availble. I read pcx file by following the pcx file format specification. It is opening grey image properly. But when i tried to open rgb or indexed image ,then color information is lost. I filled the redLUT,greenLUT and blueLUT member of FormatRecord with red green and blue data .Still color is not displayed . In case of RGB it display image as grey image and in case of Indexed image is not display properly. I don't know where I made the mistake. If anybody can help me in this regard. I am really thankful.
    Thanks
    Vikas

    Thankx for replying to my query. Actually if you saw in SDK sample code it was mentioned in Simple format code that in doReadStart function we are reading and filling color table ,if it is an indexed image. But as I am trying to read PCX file in which index image contain color table only after the data. So I fill the redLUT,greenLUT and blueLUT in the DoReadContinue functon , after readng the data, read color information in the order first red ,green and then blue .
    eg...
    ReadSome (sizeof (LookUpTable), &gFormatRecord->redLUT);
    ReadSome (sizeof (LookUpTable), &gFormatRecord->greenLUT);
    ReadSome (sizeof (LookUpTable), &gFormatRecord->blueLUT);
    if (*gResult != noErr)
    But as I saw these structure need to be filled in DoReadStart function as I not done so far. Is this might be the reason or anyother problem is there, where I made the mistake. Today I am able to open RGB image ,But in case of Indexed Image color data is not displayed.Kindly help me in this regards
    Thanks;
    Vikas

  • Asking PS for HDR Toning from format plugin

    Hi,
    In order to save HDR file in my own format I need to have 8bit tonepapped version of it as well as original HDR data.
    Is there any way to cal PS "HDR Toning" from my format plugin and get result of it?
    I appreciate any ideas...

    No, that data is not available.  The only time it would be available is when recording the toning command.
    In 32 bit, there is no toning.
    In 8 bit, the toning has already been applied.

  • Write Format Plugin

    Hello Experts,
    I would like to know if there exist any good tutorial that can help me in learning Plugin devlopment. I would like to develop "Custom Format Plugin". I saw sample sdk containing such code. I changed the ouput file genrated to .8bf extension. But when I copy the file to location "Program Files\Adobe\Adobe Photoshop CS3\Plug-Ins (for Windows) or
    Applications\Adobe Photoshop CS3\Plug-Ins (for Mac OS).
    " and then open adobe photoshop , there was not any change I saw in photoshop. Please I never devlop plugin. So if anybody have any good tutorial for the same , then please help me in this regard.

    First step is determining where to find relevant help.
    For some reason the InDesign Windows user's forum doesn't spring to mind as a first choice.

  • How to detect the occasion on which my file format plugin has been called

    Howdi!
    I got following problem. I've implemented a file filter plugin, which merely overrides the native psd fileformat reads the psd structure and acts on it. Additionally I need the user to provide some additional information during this process, but only during a file read triggered by an actual open event. Now to the problem: When opening the file chooser and selecting a psd (even without opening it, just selecting it) my fileformat plugin gets invocation.
    Is there a way to distinguish the context of invocation of my plugin? I reckon there is a preview flag in the data structure passed to the file format plugin, but this one is always set to false regardlass of the context.
    Any ideas?
    Regards,
    Mike

    Hi thanks for the advice, but I don't even have this types registered. Here's my list:
    EnableInfo { "true" },
    FmtFileType { '8BPS', '8BIM' }, 
    FilteredTypes { { '8BPS', '8BIM' } }, 
    FilteredExtensions { { 'PSD ' } },
    Is there maybe anything else I can do detect if I'm not called during document open?

Maybe you are looking for