文章目录

  • 1.概述
  • 2.Adobe插件组件体系结构(PICA)
  • 3.作者答疑


1.概述

  Illustrator插件是一个动态链接库,在windows中,就是dll文件。Illustrator插件架构非常优秀。在Illustrato体系内,你可以创建插件,添加新的工具到工具栏中或者菜单栏中。同时也可以创建新的窗口,嵌入执行流程中,或者创建面板,漂浮在Illustrator框架内。提供特定的工具链。

  Illustrator内所有的插件都由插件管理器管理。在Illustrator启动时,由插件管理器加载和运行插件模块,并与插件进行消息通信。在不需要插件时,也可将其卸载。一般是在Illustrator退出时,先卸载所加载的插件。

Illustrator java开发API illustrator插件开发教程_第一小节 概述

2.Adobe插件组件体系结构(PICA)

  PICA是Adobe应用程序的插件管理器,它提供了插件基础设施,以及用于处理功能套件和与文件系统交互的基本工具和实用工具。

SPAccessSuite
SPAdaptersSuite
SPBasicSuite
SPBlockDebugSuite
SPBlocksSuite
SPCachesSuite
SPFilesSuite
SPInterfaceSuite
SPPluginsSuite
SPPropertiesSuite
SPRuntimeSuite
SPStringsSuite
SPSuitesSuite

  PICA插件必须具有有效的插件属性列表(’ PiPL ‘)资源,并且必须具有PiPL描述的代码入口点。’ PiPL '资源包含关于插件类型和如何调用插件的信息。PICA只将带有PiPL资源的文件视为潜在的插件。插件代码的入口点在PiPL资源中指定。使用各种消息调用入口点,告诉它要采取的操作。按照约定,插件入口点是一个名为PluginMain的C函数。例如:

extern "C" ASErr ASAPI PluginMain(char* caller, char* selector, void* message)
{
        ASErr error = kNoErr;
        SPMessageData *msgData = (SPMessageData *)message;
        // Plug-in code goes here
        return error;
}

  三个参数被传递到插件入口点,它们共同组成一条消息。前两个参数是C风格字符串,用于标识消息操作,描述插件应该做什么,请参阅插件调用器和插件选择器。第三个参数是一个指向数据结构的指针,该结构根据消息操作的不同而不同。函数完成时返回一个错误代码。
  应用程序的API由组织成套件的回调函数组成。在插件可以使用作为套件一部分的函数之前,必须首先获取包含该函数的套件。函数套件是一个充满函数指针的结构体(C结构体),当插件获得一个套件时,将返回一个指向该结构体的指针。当不再需要该功能套件时,将释放所获取的套件。这样做非常重要,这样才能使PICA管理器最佳地运行。例如,PICA跟踪一个套件被请求的次数。如果插件添加的套件不再使用(其引用计数为0),插件可能会被卸载以释放内存。有关更多信息,请参阅SPBasicSuite。

3.作者答疑


  如有疑问,请留言。