Adobe.com
Contents Suites Classes Class Index Member Index

SPProps.h

Go to the documentation of this file.
00001 /***********************************************************************/
00002 /*                                                                     */
00003 /* SPProps.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 __SPProperties__
00021 #define __SPProperties__
00022 
00023 
00024 /*******************************************************************************
00025  **
00026  **     Imports
00027  **
00028  **/
00029 
00030 #include "SPTypes.h"
00031 #include "SPMdata.h"
00032 #include "SPPiPL.h"
00033 #include "AiBasicTypes.h"
00034 
00035 #include "SPHeaderBegin.h"
00036 
00037 #ifdef __cplusplus
00038 extern "C" {
00039 #endif
00040 
00041 
00042 /*******************************************************************************
00043  **
00044  ** Constants
00045  **
00046  **/
00047 
00049 #define kSPPropertiesSuite                              "SP Properties Suite"
00050 
00051 #define kSPPropertiesSuiteVersion2              2
00052 
00053 #define kSPPropertiesSuiteVersion               kSPPropertiesSuiteVersion2      // minimal is default
00054 
00055 #define kSPPropertiesSuiteVersion3              3
00056 
00060 #define kSPPropertiesCaller                             "SP Properties"
00061 
00064 #define kSPPropertiesAcquireSelector    "Acquire"
00065 
00068 #define kSPPropertiesReleaseSelector    "Release"
00069 
00070 
00071 /*******************************************************************************
00072  **
00073  ** Types
00074  **
00075  **/
00077 typedef struct SPProperty *SPPropertyRef;
00079 typedef struct SPPropertyList *SPPropertyListRef;
00081 typedef struct SPPropertyListIterator *SPPropertyListIteratorRef;
00082 
00084 typedef struct SPPropertiesMessage {
00086         SPMessageData d;
00087 
00093         PIType vendorID;
00095         PIType propertyKey;
00098         ai::int32 propertyID;
00099 
00101         void *property;
00104         ai::int32 refCon;
00108         ai::int32 cacheable;
00109 
00110 } SPPropertiesMessage;
00111 
00112 
00113 /*******************************************************************************
00114  **
00115  ** Suite
00116  **
00117  **/
00129 typedef struct SPPropertiesSuite {
00130 
00135         SPAPI SPErr (*AllocatePropertyList)( SPPropertyListRef *propertyList );
00142         SPAPI SPErr (*FreePropertyList)( SPPropertyListRef propertyList );
00143 
00155         SPAPI SPErr (*AddProperties)( SPPropertyListRef propertyList, PIPropertyList *pList, ai::int32 refCon, ai::int32 cacheable );
00156 
00171         SPAPI SPErr (*AddProperty)( SPPropertyListRef propertyList, PIType vendorID, PIType propertyKey, ai::int32 propertyID, PIProperty *p,
00172                                 ai::int32 refCon, ai::int32 cacheable, SPPropertyRef *property );
00173 
00183         SPAPI SPErr (*FindProperty)( SPPropertyListRef propertyList, PIType vendorID, PIType propertyKey, ai::int32 propertyID, SPPropertyRef *property );
00184 
00191         SPAPI SPErr (*NewPropertyListIterator)( SPPropertyListRef propertyList, SPPropertyListIteratorRef *iter );
00199         SPAPI SPErr (*NextProperty)( SPPropertyListIteratorRef iter, SPPropertyRef *property );
00204         SPAPI SPErr (*DeletePropertyListIterator)( SPPropertyListIteratorRef iter );
00205 
00210         SPAPI SPErr (*GetPropertyPIProperty)( SPPropertyRef property, PIProperty **p );
00215         SPAPI SPErr (*GetPropertyRefCon)( SPPropertyRef property, ai::int32 *refCon );
00223         SPAPI SPErr (*GetPropertyCacheable)( SPPropertyRef property, ai::int32 *cacheable );
00232         SPAPI SPErr (*GetPropertyAllocatedByPlugin)( SPPropertyRef property, ai::int32 *allocatedByPlugin );
00233 
00234         // kSPPropertiesSuiteVersion3
00241         SPAPI SPBoolean (*SPHasMultiplePropertyLists)(SPPropertyListRef propertyList);
00247         SPAPI SPErr (*GetNextPropertyList)(SPPropertyListRef propertyList, SPPropertyListRef *nextPropertyList);
00258         SPAPI SPErr (*FindPropertyLocal)( SPPropertyListRef propertyList, PIType vendorID, PIType propertyKey,
00259                                 ai::int32 propertyID, SPPropertyRef *property );
00260 
00261 } SPPropertiesSuite;
00262 
00263 
00265 SPAPI SPErr SPAllocatePropertyList( SPPropertyListRef *propertyList );
00267 SPAPI SPErr SPFreePropertyList( SPPropertyListRef propertyList );
00268 
00270 SPAPI SPErr SPAddProperties( SPPropertyListRef propertyList, PIPropertyList *pList, ai::int32 refCon,
00271                         ai::int32 cacheable );
00272 
00274 SPAPI SPErr SPAddProperty( SPPropertyListRef propertyList, PIType vendorID, PIType propertyKey,
00275                         ai::int32 propertyID, PIProperty *p, ai::int32 refCon, ai::int32 cacheable, SPPropertyRef *property );
00276 
00278 SPAPI SPErr SPFindProperty( SPPropertyListRef propertyList, PIType vendorID, PIType propertyKey,
00279                         ai::int32 propertyID, SPPropertyRef *property );
00280 
00282 SPAPI SPErr SPNewPropertyListIterator( SPPropertyListRef propertyList, SPPropertyListIteratorRef *iter );
00284 SPAPI SPErr SPNextProperty( SPPropertyListIteratorRef iter, SPPropertyRef *property );
00286 SPAPI SPErr SPDeletePropertyListIterator( SPPropertyListIteratorRef iter );
00287 
00289 SPAPI SPErr SPGetPropertyPIProperty( SPPropertyRef property, PIProperty **p );
00291 SPAPI SPErr SPGetPropertyRefCon( SPPropertyRef property, ai::int32 *refCon );
00293 SPAPI SPErr SPGetPropertyCacheable( SPPropertyRef property, ai::int32 *cacheable );
00295 SPAPI SPErr SPGetPropertyAllocatedByPlugin( SPPropertyRef property, ai::int32 *allocatedByPlugin );
00296 
00298 SPAPI SPBoolean SPHasMultiplePropertyLists(SPPropertyListRef propertyList);
00300 SPAPI SPErr SPGetNextPropertyList(SPPropertyListRef propertyList, SPPropertyListRef *nextPropertyList);
00301 
00303 SPAPI SPErr SPFindPropertyLocal( SPPropertyListRef propertyList, PIType vendorID,
00304                         PIType propertyKey, ai::int32 propertyID, SPPropertyRef *property );
00305 
00306 /*******************************************************************************
00307  **
00308  **     Errors
00309  **
00310  **/
00311 
00312 #include "SPErrorCodes.h"
00313 
00314 #ifdef __cplusplus
00315 }
00316 #endif
00317 
00318 #include "SPHeaderEnd.h"
00319 
00320 #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