Adobe.com
Contents Suites Classes Class Index Member Index

SPPiPL.h

Go to the documentation of this file.
00001 /***********************************************************************/
00002 /*                                                                     */
00003 /* SPPiPL.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 __SPPiPL__
00021 #define __SPPiPL__
00022 
00023 
00024 /*******************************************************************************
00025  **
00026  **     Imports and alignment
00027  **
00028  **/
00029 
00030 #include "SPTypes.h"
00031 #include "AiBasicTypes.h"
00032 
00033 #if PRAGMA_STRUCT_ALIGN
00034 #pragma options align=mac68k
00035 #endif
00036 
00037 #include "SPHeaderBegin.h"
00038 
00039 /*******************************************************************************
00040  **
00041  **     Constants
00042  **
00043  ** Note: 4-character long IDs must be defined in hexadecimal, not long
00044  ** literal ('long'), due to Windows RC compilers not understanding what
00045  ** to do with them.
00046  **
00047  **/
00048 
00051 #define PIAdobeVendorID                         0x41444245
00052 
00055 #define PISPVersionProperty                     0x69767273
00056 
00059 #define PIImportsProperty                       0x696D7074
00060 
00063 #define PIExportsProperty                       0x65787074
00064 
00067 #define PIPowerPCCodeResProperty        0x70706352
00068 
00073 #define PIDestinationHeapProperty       0x68656170
00074 
00075 #define PILoadInAppHeap                         (1<<0)
00076 
00079 #define PIAdapterProperty                       0x61647074
00080 
00083 #define PIPluginNameProperty            0x70696E6D
00084 
00087 #define PIConditionalMessages           0x4163704D
00088 
00090 #define PIAcceptsPropertyMessage        (1<<0)
00091 
00093 #define PISkipShutDownMessage           (1<<1)
00094 
00095 #define PIAcceptsPurgeCachesMessage     (1<<2)
00096 
00097 #define PISkipStartupMessage            (1<<3)
00098 
00101 #define PIReleasePluginEarly            0x52656c50
00102 
00103 /*******************************************************************************
00104  **
00105  **     General PiPL properties and structures
00106  **
00107  ** Many hosts multiply define these properties, so we bracket them
00108  ** so they are only defined once.
00109  **
00110  **/
00111 
00112 #ifndef kGeneralPiPLPropertiesDefined // Already defined?
00113 
00115 #define kGeneralPiPLPropertiesDefined // Only define once.
00116 
00118 typedef ai::uint32 PIType;
00119 
00121 #define kCurrentPiPLVersion 0
00122 
00125 #define PIKindProperty                  0x6b696e64
00126 
00130 #define PI68KCodeProperty               0x6d36386bL
00131 
00135 #define PIPowerPCCodeProperty   0x70777063
00136 
00140 #define PIPowerPCCarbonCodeProperty     0x70706362
00141 
00145 #define PIPowerPCMachOCodeProperty      'mach'
00146 
00150 #define PICodeMacIntel32Property        'mi32'
00151 
00155 #define PICodeMacIntel64Property        'mi64'
00156 
00160 #define PICodeFragmentProperty  'frag'
00161 
00165 #define PICarbonCodeFragmentProperty    'frgc'
00166 
00170 #define PIWin32X86CodeProperty  0x77783836
00171 
00175 #define PIWin16X86CodeProperty  0x66783836
00176 
00179 typedef struct PIProperty {
00181         PIType vendorID;
00183         PIType propertyKey;
00187         ai::int32 propertyID;
00189         ai::int32 propertyLength;
00191         char propertyData[1];
00192 } PIProperty;
00193 
00197 typedef struct PIPropertyList {
00199         ai::int32 version;
00201         ai::int32 count;
00203         PIProperty properties[1];
00204 } PIPropertyList;
00205 
00206 /* Following structures describe resource file types used in plug-in property lists.
00207  * These structures obey Macintosh 68k alignment and padding rules though
00208  * generally they are laid out so fields have natural alignment and any
00209  * needed padding is explicit in the structure.
00210  */
00211 
00213 typedef struct PI68KCodeDesc {
00215         PIType fType;
00217         short fID;
00218 } PI68KCodeDesc;
00219 
00221 typedef struct PICFMCodeDesc {
00225         ai::int32 fContainerOffset;
00228         ai::int32 fContainerLength;
00236         unsigned char fEntryName[1];
00237 } PICFMCodeDesc;
00238 
00240 typedef struct PIMachCodeDesc
00241 {
00244         unsigned char fEntryName[1];
00245 } PIMachCodeDesc;
00246 
00248 typedef struct PIPSMachOCodeDesc
00249 {
00251         ai::int32 fContainerOffset;
00252 
00254         ai::int32 fContainerLength;
00255 
00257         unsigned char fEntryName[1];
00258 
00259 } PIPSMachOCodeDesc;
00260 
00263 typedef struct PIMacIntelCodeDesc
00264 {
00265 
00267         unsigned char fEntryName[1];
00268 
00269 } PIMacIntelCodeDesc;
00270 
00273 typedef struct PIFragmentCodeDesc
00274 {
00276         ai::int32 fFragmentResource;
00277 
00279         ai::int32 fFragmentNumber;
00280 
00283         unsigned char fEntryName[1];
00284 
00285 } PIFragmentCodeDesc;
00286 
00288 typedef struct PIWin32X86CodeDesc {
00293         char fEntryName[1];
00294 } PIWin32X86CodeDesc;
00295 
00297 typedef struct PIWin16X86CodeDesc {
00300         char fEntryName[1];
00301 } PIWin16X86CodeDesc;
00302 
00303 #endif // kGeneralPiPLPropertiesDefined
00304 
00305 
00306 /*******************************************************************************
00307  **
00308  **     Additional Types
00309  **
00310  **/
00311 
00313 typedef struct PICFMCodeResourceDesc {
00315         ai::int32 fContainerOffset;                     /* Currently unused, reserved. */
00318         ai::int32 fContainerLength;
00320         PIType fType;
00322         short fID;
00330         unsigned char fEntryName[1];
00331 } PICFMCodeResourceDesc;
00332 
00333 /*******************************************************************************/
00334 
00335 #if PRAGMA_STRUCT_ALIGN
00336 #pragma options align=reset
00337 #endif
00338 
00339 #include "SPHeaderEnd.h"
00340 
00341 #endif // SPPiPL


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