Adobe.com
Contents Suites Classes Class Index Member Index

SPPlugs.h

Go to the documentation of this file.
00001 /***********************************************************************/
00002 /*                                                                     */
00003 /* SPPlugs.h                                                           */
00004 /*                                                                     */
00005 /* ADOBE SYSTEMS INCORPORATED                                          */
00006 /* Copyright 1995-2007 Adobe Systems Incorporated.                     */
00007 /* All Rights Reserved.                                                */
00008 /*                                                                     */
00009 /* NOTICE:  Adobe permits you to use, modify, and distribute this file */
00010 /* in accordance with the terms of the Adobe license agreement         */
00011 /* accompanying it. If you have received this file from a source other */
00012 /* than Adobe, then your use, modification, or distribution of it      */
00013 /* requires the prior written permission of Adobe.                     */
00014 /*                                                                     */
00015 /* Patents Pending                                                     */
00016 /*                                                                     */
00017 /*                                                                     */
00018 /***********************************************************************/
00019 
00020 #ifndef __SPPlugins__
00021 #define __SPPlugins__
00022 
00023 
00024 /*******************************************************************************
00025  **
00026  **     Imports
00027  **
00028  **/
00029 
00030 #include "SPTypes.h"
00031 #include "SPFiles.h"
00032 #include "SPAdapts.h"
00033 #include "SPProps.h"
00034 #include "SPStrngs.h"
00035 
00036 #include "SPHeaderBegin.h"
00037 
00038 #ifdef __cplusplus
00039 extern "C" {
00040 #endif
00041 
00042 
00043 /*******************************************************************************
00044  **
00045  ** Constants
00046  **
00047  **/
00049 #define kSPPluginsSuite                         "SP Plug-ins Suite"
00050 
00051 #define kSPPluginsSuiteVersion4         4
00052 
00053 #define kSPPluginsSuiteVersion5         5
00054 
00055 #ifdef WIN_ENV
00056 
00057         #define kSPPluginsSuiteVersion6         6
00058 
00059         #define kSPPluginsSuiteVersion          kSPPluginsSuiteVersion6
00060 #elif MAC_ENV
00061         #define kSPPluginsSuiteVersion          kSPPluginsSuiteVersion4
00062 #endif
00063 
00066 #define kSPRuntimePluginList            ((SPPluginListRef)NULL)
00067 
00068 
00069 /*******************************************************************************
00070  **
00071  ** Types
00072  **
00073  **/
00074 
00076 typedef struct SPPlugin *SPPluginRef;
00080 typedef struct SPPluginList *SPPluginListRef;
00083 typedef struct SPPluginListIterator *SPPluginListIteratorRef;
00084 
00086 typedef struct _SPErrorData
00087 {
00089         SPPlatformFileReference mErrorFile;
00091         SPErr                                           mErrorCode;
00092 } SPErrorData, *SPErrorDataPtr;
00093 
00095 typedef SPAPI SPErr (*SPPluginEntryFunc)( const char *caller, const char *selector, void *message );
00096 
00097 /*******************************************************************************
00098  **
00099  ** Suite
00100  **
00101  **/
00102 
00118 typedef struct SPPluginsSuite {
00119 
00125         SPAPI SPErr (*AllocatePluginList)( SPStringPoolRef strings, SPPluginListRef *pluginList );
00130         SPAPI SPErr (*FreePluginList)( SPPluginListRef pluginList );
00131 
00144         SPAPI SPErr (*AddPlugin)( SPPluginListRef pluginList, const SPPlatformFileReference *fileSpec,
00145                                 PIPropertyList *PiPL, const char *adapterName, void *adapterInfo, SPPluginRef *plugin );
00146 
00154         SPAPI SPErr (*NewPluginListIterator)( SPPluginListRef pluginList, SPPluginListIteratorRef *iter );
00161         SPAPI SPErr (*NextPlugin)( SPPluginListIteratorRef iter, SPPluginRef *plugin );
00166         SPAPI SPErr (*DeletePluginListIterator)( SPPluginListIteratorRef iter );
00173         SPAPI SPErr (*GetPluginListNeededSuiteAvailable)( SPPluginListRef pluginList, SPBoolean *available );
00174 
00179         SPAPI SPErr (*GetPluginHostEntry)( SPPluginRef plugin, SPPluginEntryFunc *host );
00185         SPAPI SPErr (*GetPluginFileReference)( SPPluginRef plugin, SPPlatformFileReference *fileSpec );
00191         SPAPI SPErr (*GetPluginPropertyList)( SPPluginRef plugin, SPPropertyListRef *propertList );
00197         SPAPI SPErr (*GetPluginGlobals)( SPPluginRef plugin, void **globals );
00203         SPAPI SPErr (*SetPluginGlobals)( SPPluginRef plugin, void *globals );
00209         SPAPI SPErr (*GetPluginStarted)( SPPluginRef plugin, ai::int32 *started );
00214         SPAPI SPErr (*SetPluginStarted)( SPPluginRef plugin, ai::int32 started );
00220         SPAPI SPErr (*GetPluginSkipShutdown)( SPPluginRef plugin, ai::int32 *skipShutdown );
00226         SPAPI SPErr (*SetPluginSkipShutdown)( SPPluginRef plugin, ai::int32 skipShutdown );
00232         SPAPI SPErr (*GetPluginBroken)( SPPluginRef plugin, ai::int32 *broken );
00239         SPAPI SPErr (*SetPluginBroken)( SPPluginRef plugin, ai::int32 broken );
00245         SPAPI SPErr (*GetPluginAdapter)( SPPluginRef plugin, SPAdapterRef *adapter );
00254         SPAPI SPErr (*GetPluginAdapterInfo)( SPPluginRef plugin, void **adapterInfo );
00262         SPAPI SPErr (*SetPluginAdapterInfo)( SPPluginRef plugin, void *adapterInfo );
00263 
00277         SPAPI SPErr (*FindPluginProperty)( SPPluginRef plugin, PIType vendorID, PIType propertyKey, ai::int32 propertyID, PIProperty **p );
00278 
00283         SPAPI SPErr (*GetPluginName)( SPPluginRef plugin, const char **name );
00288         SPAPI SPErr (*SetPluginName)( SPPluginRef plugin, const char *name );
00293         SPAPI SPErr (*GetNamedPlugin)( const char *name, SPPluginRef *plugin);
00294 
00299         SPAPI SPErr (*SetPluginPropertyList)( SPPluginRef plugin, SPFileRef file );
00300 
00301         // Plug-ins suite version 5
00302         /* This attribute frees the adapterInfo field for private data for adapters. */
00308         SPAPI SPErr (*GetPluginHostInfo)( SPPluginRef plugin, void **hostInfo );
00313         SPAPI SPErr (*SetPluginHostInfo)( SPPluginRef plugin, void *hostInfo );
00314 
00315 } SPPluginsSuite;
00316 
00317 
00319 SPAPI SPErr SPAllocatePluginList( SPStringPoolRef strings, SPPluginListRef *pluginList );
00321 SPAPI SPErr SPFreePluginList( SPPluginListRef pluginList );
00323 SPAPI SPErr SPGetPluginListNeededSuiteAvailable( SPPluginListRef pluginList, SPBoolean *available );
00324 
00326 SPAPI SPErr SPAddPlugin( SPPluginListRef pluginList, const SPPlatformFileReference *fileSpec,
00327                         PIPropertyList *PiPL, const char *adapterName, void *adapterInfo, SPPluginRef *plugin );
00328 
00330 SPAPI SPErr SPNewPluginListIterator( SPPluginListRef pluginList, SPPluginListIteratorRef *iter );
00332 SPAPI SPErr SPNextPlugin( SPPluginListIteratorRef iter, SPPluginRef *plugin );
00334 SPAPI SPErr SPDeletePluginListIterator( SPPluginListIteratorRef iter );
00335 
00337 SPAPI SPErr SPGetHostPluginEntry( SPPluginRef plugin, SPPluginEntryFunc *host );
00339 SPAPI SPErr SPGetPluginFileReference( SPPluginRef plugin, SPPlatformFileReference *fileSpec );
00341 SPAPI SPErr SPGetPluginPropertyList( SPPluginRef plugin, SPPropertyListRef *propertyList );
00343 SPAPI SPErr SPGetPluginGlobals( SPPluginRef plugin, void **globals );
00345 SPAPI SPErr SPSetPluginGlobals( SPPluginRef plugin, void *globals );
00347 SPAPI SPErr SPGetPluginStarted( SPPluginRef plugin, ai::int32 *started );
00349 SPAPI SPErr SPSetPluginStarted( SPPluginRef plugin, ai::int32 started );
00351 SPAPI SPErr SPGetPluginSkipShutdown( SPPluginRef plugin, ai::int32 *skipShutdown );
00353 SPAPI SPErr SPSetPluginSkipShutdown( SPPluginRef plugin, ai::int32 skipShutdown );
00355 SPAPI SPErr SPGetPluginBroken( SPPluginRef plugin, ai::int32 *broken );
00357 SPAPI SPErr SPSetPluginBroken( SPPluginRef plugin, ai::int32 broken );
00359 SPAPI SPErr SPGetPluginAdapter( SPPluginRef plugin, SPAdapterRef *adapter );
00361 SPAPI SPErr SPGetPluginAdapterInfo( SPPluginRef plugin, void **adapterInfo );
00363 SPAPI SPErr SPSetPluginAdapterInfo( SPPluginRef plugin, void *adapterInfo );
00364 
00366 SPAPI SPErr SPFindPluginProperty( SPPluginRef plugin, PIType vendorID, PIType propertyKey,
00367                         ai::int32 propertyID, PIProperty **p );
00368 
00370 SPAPI SPErr SPGetPluginName( SPPluginRef plugin, const char **name );
00372 SPAPI SPErr SPSetPluginName( SPPluginRef plugin, const char *name );
00374 SPAPI SPErr SPGetNamedPlugin( const char *name, SPPluginRef *plugin);
00375 
00377 SPAPI SPErr SPSetPluginPropertyList( SPPluginRef plugin, SPFileRef file );
00378 
00380 SPErr SPAddHostPlugin( SPPluginListRef pluginList, SPPluginEntryFunc entry, void *access, const char *adapterName,
00381                         void *adapterInfo, SPPluginRef *plugin, const char *name);
00382                                                                                                                                   /* access is SPPlatformAccessRef */
00383 
00384 
00385 // Plug-ins suite version 5
00386 /* This attribute frees the adapterInfo field for private data for adapters. */
00388 SPAPI SPErr SPGetPluginHostInfo( SPPluginRef plugin, void **hostInfo );
00390 SPAPI SPErr SPSetPluginHostInfo( SPPluginRef plugin, void *hostInfo );
00391 
00392 #ifdef WIN_ENV
00393 
00394         SPAPI SPErr SPAddPlugin_v4_v5( SPPluginListRef pluginList, const SPPlatformFileSpecification *fileSpec,
00395                 PIPropertyList *PiPL, const char *adapterName, void *adapterInfo, SPPluginRef *plugin );
00396 
00398         SPAPI SPErr SPGetPluginFileReference_v4_v5( SPPluginRef plugin, SPPlatformFileSpecification *fileSpec );
00399 #endif
00400 /*******************************************************************************
00401  **
00402  ** Errors
00403  **
00404  **/
00405 
00406 #include "SPErrorCodes.h"
00407 
00408 #ifdef __cplusplus
00409 }
00410 #endif
00411 
00412 #include "SPHeaderEnd.h"
00413 
00414 #endif


Contents Suites Classes Class Index Member Index
Adobe Solutions Network
 
Copyright © 2016 Adobe Systems Incorporated. All rights reserved.
Terms of Use Online Privacy Policy Adobe and accessibility Avoid software piracy Permissions and Trademarks