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 defined(MAC_ENV)
00061         #define kSPPluginsSuiteVersion          kSPPluginsSuiteVersion4
00062 #elif defined(LINUX_ENV)
00063         #define kSPPluginsSuiteVersion          kSPPluginsSuiteVersion4
00064 #endif
00065 
00068 #define kSPRuntimePluginList            ((SPPluginListRef)NULL)
00069 
00070 
00071 /*******************************************************************************
00072  **
00073  ** Types
00074  **
00075  **/
00076 
00078 typedef struct SPPlugin *SPPluginRef;
00082 typedef struct SPPluginList *SPPluginListRef;
00085 typedef struct SPPluginListIterator *SPPluginListIteratorRef;
00086 
00088 typedef struct _SPErrorData
00089 {
00091         SPPlatformFileReference mErrorFile;
00093         SPErr                                           mErrorCode;
00094 } SPErrorData, *SPErrorDataPtr;
00095 
00097 typedef SPAPI SPErr (*SPPluginEntryFunc)( const char *caller, const char *selector, void *message );
00098 
00099 /*******************************************************************************
00100  **
00101  ** Suite
00102  **
00103  **/
00104 
00120 typedef struct SPPluginsSuite {
00121 
00127         SPAPI SPErr (*AllocatePluginList)( SPStringPoolRef strings, SPPluginListRef *pluginList );
00132         SPAPI SPErr (*FreePluginList)( SPPluginListRef pluginList );
00133 
00146         SPAPI SPErr (*AddPlugin)( SPPluginListRef pluginList, const SPPlatformFileReference *fileSpec,
00147                                 PIPropertyList *PiPL, const char *adapterName, void *adapterInfo, SPPluginRef *plugin );
00148 
00156         SPAPI SPErr (*NewPluginListIterator)( SPPluginListRef pluginList, SPPluginListIteratorRef *iter );
00163         SPAPI SPErr (*NextPlugin)( SPPluginListIteratorRef iter, SPPluginRef *plugin );
00168         SPAPI SPErr (*DeletePluginListIterator)( SPPluginListIteratorRef iter );
00175         SPAPI SPErr (*GetPluginListNeededSuiteAvailable)( SPPluginListRef pluginList, SPBoolean *available );
00176 
00181         SPAPI SPErr (*GetPluginHostEntry)( SPPluginRef plugin, SPPluginEntryFunc *host );
00187         SPAPI SPErr (*GetPluginFileReference)( SPPluginRef plugin, SPPlatformFileReference *fileSpec );
00193         SPAPI SPErr (*GetPluginPropertyList)( SPPluginRef plugin, SPPropertyListRef *propertList );
00199         SPAPI SPErr (*GetPluginGlobals)( SPPluginRef plugin, void **globals );
00205         SPAPI SPErr (*SetPluginGlobals)( SPPluginRef plugin, void *globals );
00211         SPAPI SPErr (*GetPluginStarted)( SPPluginRef plugin, ai::int32 *started );
00216         SPAPI SPErr (*SetPluginStarted)( SPPluginRef plugin, ai::int32 started );
00222         SPAPI SPErr (*GetPluginSkipShutdown)( SPPluginRef plugin, ai::int32 *skipShutdown );
00228         SPAPI SPErr (*SetPluginSkipShutdown)( SPPluginRef plugin, ai::int32 skipShutdown );
00234         SPAPI SPErr (*GetPluginBroken)( SPPluginRef plugin, ai::int32 *broken );
00241         SPAPI SPErr (*SetPluginBroken)( SPPluginRef plugin, ai::int32 broken );
00247         SPAPI SPErr (*GetPluginAdapter)( SPPluginRef plugin, SPAdapterRef *adapter );
00256         SPAPI SPErr (*GetPluginAdapterInfo)( SPPluginRef plugin, void **adapterInfo );
00264         SPAPI SPErr (*SetPluginAdapterInfo)( SPPluginRef plugin, void *adapterInfo );
00265 
00279         SPAPI SPErr (*FindPluginProperty)( SPPluginRef plugin, PIType vendorID, PIType propertyKey, ai::int32 propertyID, PIProperty **p );
00280 
00285         SPAPI SPErr (*GetPluginName)( SPPluginRef plugin, const char **name );
00290         SPAPI SPErr (*SetPluginName)( SPPluginRef plugin, const char *name );
00295         SPAPI SPErr (*GetNamedPlugin)( const char *name, SPPluginRef *plugin);
00296 
00301         SPAPI SPErr (*SetPluginPropertyList)( SPPluginRef plugin, SPFileRef file );
00302 
00303         // Plug-ins suite version 5
00304         /* This attribute frees the adapterInfo field for private data for adapters. */
00310         SPAPI SPErr (*GetPluginHostInfo)( SPPluginRef plugin, void **hostInfo );
00315         SPAPI SPErr (*SetPluginHostInfo)( SPPluginRef plugin, void *hostInfo );
00316 
00317 } SPPluginsSuite;
00318 
00319 
00321 SPAPI SPErr SPAllocatePluginList( SPStringPoolRef strings, SPPluginListRef *pluginList );
00323 SPAPI SPErr SPFreePluginList( SPPluginListRef pluginList );
00325 SPAPI SPErr SPGetPluginListNeededSuiteAvailable( SPPluginListRef pluginList, SPBoolean *available );
00326 
00328 SPAPI SPErr SPAddPlugin( SPPluginListRef pluginList, const SPPlatformFileReference *fileSpec,
00329                         PIPropertyList *PiPL, const char *adapterName, void *adapterInfo, SPPluginRef *plugin );
00330 
00332 SPAPI SPErr SPNewPluginListIterator( SPPluginListRef pluginList, SPPluginListIteratorRef *iter );
00334 SPAPI SPErr SPNextPlugin( SPPluginListIteratorRef iter, SPPluginRef *plugin );
00336 SPAPI SPErr SPDeletePluginListIterator( SPPluginListIteratorRef iter );
00337 
00339 SPAPI SPErr SPGetHostPluginEntry( SPPluginRef plugin, SPPluginEntryFunc *host );
00341 SPAPI SPErr SPGetPluginFileReference( SPPluginRef plugin, SPPlatformFileReference *fileSpec );
00343 SPAPI SPErr SPGetPluginPropertyList( SPPluginRef plugin, SPPropertyListRef *propertyList );
00345 SPAPI SPErr SPGetPluginGlobals( SPPluginRef plugin, void **globals );
00347 SPAPI SPErr SPSetPluginGlobals( SPPluginRef plugin, void *globals );
00349 SPAPI SPErr SPGetPluginStarted( SPPluginRef plugin, ai::int32 *started );
00351 SPAPI SPErr SPSetPluginStarted( SPPluginRef plugin, ai::int32 started );
00353 SPAPI SPErr SPGetPluginSkipShutdown( SPPluginRef plugin, ai::int32 *skipShutdown );
00355 SPAPI SPErr SPSetPluginSkipShutdown( SPPluginRef plugin, ai::int32 skipShutdown );
00357 SPAPI SPErr SPGetPluginBroken( SPPluginRef plugin, ai::int32 *broken );
00359 SPAPI SPErr SPSetPluginBroken( SPPluginRef plugin, ai::int32 broken );
00361 SPAPI SPErr SPGetPluginAdapter( SPPluginRef plugin, SPAdapterRef *adapter );
00363 SPAPI SPErr SPGetPluginAdapterInfo( SPPluginRef plugin, void **adapterInfo );
00365 SPAPI SPErr SPSetPluginAdapterInfo( SPPluginRef plugin, void *adapterInfo );
00366 
00368 SPAPI SPErr SPFindPluginProperty( SPPluginRef plugin, PIType vendorID, PIType propertyKey,
00369                         ai::int32 propertyID, PIProperty **p );
00370 
00372 SPAPI SPErr SPGetPluginName( SPPluginRef plugin, const char **name );
00374 SPAPI SPErr SPSetPluginName( SPPluginRef plugin, const char *name );
00376 SPAPI SPErr SPGetNamedPlugin( const char *name, SPPluginRef *plugin);
00377 
00379 SPAPI SPErr SPSetPluginPropertyList( SPPluginRef plugin, SPFileRef file );
00380 
00382 SPErr SPAddHostPlugin( SPPluginListRef pluginList, SPPluginEntryFunc entry, void *access, const char *adapterName,
00383                         void *adapterInfo, SPPluginRef *plugin, const char *name);
00384                                                                                                                                   /* access is SPPlatformAccessRef */
00385 
00386 
00387 // Plug-ins suite version 5
00388 /* This attribute frees the adapterInfo field for private data for adapters. */
00390 SPAPI SPErr SPGetPluginHostInfo( SPPluginRef plugin, void **hostInfo );
00392 SPAPI SPErr SPSetPluginHostInfo( SPPluginRef plugin, void *hostInfo );
00393 
00394 #ifdef WIN_ENV
00395 
00396         SPAPI SPErr SPAddPlugin_v4_v5( SPPluginListRef pluginList, const SPPlatformFileSpecification *fileSpec,
00397                 PIPropertyList *PiPL, const char *adapterName, void *adapterInfo, SPPluginRef *plugin );
00398 
00400         SPAPI SPErr SPGetPluginFileReference_v4_v5( SPPluginRef plugin, SPPlatformFileSpecification *fileSpec );
00401 #endif
00402 /*******************************************************************************
00403  **
00404  ** Errors
00405  **
00406  **/
00407 
00408 #include "SPErrorCodes.h"
00409 
00410 #ifdef __cplusplus
00411 }
00412 #endif
00413 
00414 #include "SPHeaderEnd.h"
00415 
00416 #endif


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