Components.h
上传用户:xjjlds
上传日期:2015-12-05
资源大小:22823k
文件大小:33k
- /*
- File: Components.h
-
- Contains: QuickTime Interfaces.
-
- Version: Technology: QuickTime 6.0
- Release: QuickTime 6.0.2
-
- Copyright: (c) 1990-2001 by Apple Computer, Inc., all rights reserved
-
- Bugs?: For bug reports, consult the following page on
- the World Wide Web:
-
- http://developer.apple.com/bugreporter/
-
- */
- #ifndef __COMPONENTS__
- #define __COMPONENTS__
- #ifndef __MACERRORS__
- #include "MacErrors.h"
- #endif
- #ifndef __MACTYPES__
- #include "MacTypes.h"
- #endif
- #ifndef __MIXEDMODE__
- #include "MixedMode.h"
- #endif
- #if PRAGMA_ONCE
- #pragma once
- #endif
- #ifdef __cplusplus
- extern "C" {
- #endif
- #if PRAGMA_IMPORT
- #pragma import on
- #endif
- #if PRAGMA_STRUCT_ALIGN
- #pragma options align=mac68k
- #elif PRAGMA_STRUCT_PACKPUSH
- #pragma pack(push, 2)
- #elif PRAGMA_STRUCT_PACK
- #pragma pack(2)
- #endif
- enum {
- kAppleManufacturer = FOUR_CHAR_CODE('appl'), /* Apple supplied components */
- kComponentResourceType = FOUR_CHAR_CODE('thng'), /* a components resource type */
- kComponentAliasResourceType = FOUR_CHAR_CODE('thga') /* component alias resource type */
- };
- enum {
- kAnyComponentType = 0,
- kAnyComponentSubType = 0,
- kAnyComponentManufacturer = 0,
- kAnyComponentFlagsMask = 0
- };
- enum {
- cmpIsMissing = 1L << 29,
- cmpWantsRegisterMessage = 1L << 31
- };
- enum {
- kComponentOpenSelect = -1, /* ComponentInstance for this open */
- kComponentCloseSelect = -2, /* ComponentInstance for this close */
- kComponentCanDoSelect = -3, /* selector # being queried */
- kComponentVersionSelect = -4, /* no params */
- kComponentRegisterSelect = -5, /* no params */
- kComponentTargetSelect = -6, /* ComponentInstance for top of call chain */
- kComponentUnregisterSelect = -7, /* no params */
- kComponentGetMPWorkFunctionSelect = -8, /* some params */
- kComponentExecuteWiredActionSelect = -9, /* QTAtomContainer actionContainer, QTAtom actionAtom, QTCustomActionTargetPtr target, QTEventRecordPtr event */
- kComponentGetPublicResourceSelect = -10 /* OSType resourceType, short resourceId, Handle *resource */
- };
- /* Component Resource Extension flags */
- enum {
- componentDoAutoVersion = (1 << 0),
- componentWantsUnregister = (1 << 1),
- componentAutoVersionIncludeFlags = (1 << 2),
- componentHasMultiplePlatforms = (1 << 3),
- componentLoadResident = (1 << 4)
- };
- /* Set Default Component flags */
- enum {
- defaultComponentIdentical = 0,
- defaultComponentAnyFlags = 1,
- defaultComponentAnyManufacturer = 2,
- defaultComponentAnySubType = 4,
- defaultComponentAnyFlagsAnyManufacturer = (defaultComponentAnyFlags + defaultComponentAnyManufacturer),
- defaultComponentAnyFlagsAnyManufacturerAnySubType = (defaultComponentAnyFlags + defaultComponentAnyManufacturer + defaultComponentAnySubType)
- };
- /* RegisterComponentResource flags */
- enum {
- registerComponentGlobal = 1,
- registerComponentNoDuplicates = 2,
- registerComponentAfterExisting = 4,
- registerComponentAliasesOnly = 8
- };
- struct ComponentDescription {
- OSType componentType; /* A unique 4-byte code indentifying the command set */
- OSType componentSubType; /* Particular flavor of this instance */
- OSType componentManufacturer; /* Vendor indentification */
- unsigned long componentFlags; /* 8 each for Component,Type,SubType,Manuf/revision */
- unsigned long componentFlagsMask; /* Mask for specifying which flags to consider in search, zero during registration */
- };
- typedef struct ComponentDescription ComponentDescription;
- struct ResourceSpec {
- OSType resType; /* 4-byte code */
- short resID; /* */
- };
- typedef struct ResourceSpec ResourceSpec;
- struct ComponentResource {
- ComponentDescription cd; /* Registration parameters */
- ResourceSpec component; /* resource where Component code is found */
- ResourceSpec componentName; /* name string resource */
- ResourceSpec componentInfo; /* info string resource */
- ResourceSpec componentIcon; /* icon resource */
- };
- typedef struct ComponentResource ComponentResource;
- typedef ComponentResource * ComponentResourcePtr;
- typedef ComponentResourcePtr * ComponentResourceHandle;
- struct ComponentPlatformInfo {
- long componentFlags; /* flags of Component */
- ResourceSpec component; /* resource where Component code is found */
- short platformType; /* gestaltSysArchitecture result */
- };
- typedef struct ComponentPlatformInfo ComponentPlatformInfo;
- struct ComponentResourceExtension {
- long componentVersion; /* version of Component */
- long componentRegisterFlags; /* flags for registration */
- short componentIconFamily; /* resource id of Icon Family */
- };
- typedef struct ComponentResourceExtension ComponentResourceExtension;
- struct ComponentPlatformInfoArray {
- long count;
- ComponentPlatformInfo platformArray[1];
- };
- typedef struct ComponentPlatformInfoArray ComponentPlatformInfoArray;
- struct ExtComponentResource {
- ComponentDescription cd; /* registration parameters */
- ResourceSpec component; /* resource where Component code is found */
- ResourceSpec componentName; /* name string resource */
- ResourceSpec componentInfo; /* info string resource */
- ResourceSpec componentIcon; /* icon resource */
- long componentVersion; /* version of Component */
- long componentRegisterFlags; /* flags for registration */
- short componentIconFamily; /* resource id of Icon Family */
- long count; /* elements in platformArray */
- ComponentPlatformInfo platformArray[1];
- };
- typedef struct ExtComponentResource ExtComponentResource;
- typedef ExtComponentResource * ExtComponentResourcePtr;
- typedef ExtComponentResourcePtr * ExtComponentResourceHandle;
- struct ComponentAliasResource {
- ComponentResource cr; /* Registration parameters */
- ComponentDescription aliasCD; /* component alias description */
- };
- typedef struct ComponentAliasResource ComponentAliasResource;
- /* Structure received by Component: */
- struct ComponentParameters {
- UInt8 flags; /* call modifiers: sync/async, deferred, immed, etc */
- UInt8 paramSize; /* size in bytes of actual parameters passed to this call */
- short what; /* routine selector, negative for Component management calls */
- long params[1]; /* actual parameters for the indicated routine */
- };
- typedef struct ComponentParameters ComponentParameters;
- struct ComponentRecord {
- long data[1];
- };
- typedef struct ComponentRecord ComponentRecord;
- typedef ComponentRecord * Component;
- struct ComponentInstanceRecord {
- long data[1];
- };
- typedef struct ComponentInstanceRecord ComponentInstanceRecord;
- typedef ComponentInstanceRecord * ComponentInstance;
- struct RegisteredComponentRecord {
- long data[1];
- };
- typedef struct RegisteredComponentRecord RegisteredComponentRecord;
- typedef RegisteredComponentRecord * RegisteredComponentRecordPtr;
- typedef RegisteredComponentRecord * RegisteredComponentPtr;
- struct RegisteredComponentInstanceRecord {
- long data[1];
- };
- typedef struct RegisteredComponentInstanceRecord RegisteredComponentInstanceRecord;
- typedef RegisteredComponentInstanceRecord * RegisteredComponentInstanceRecordPtr;
- typedef RegisteredComponentInstanceRecord * RegisteredComponentInstancePtr;
- typedef long ComponentResult;
- enum {
- platform68k = 1, /* platform type (response from gestaltComponentPlatform) */
- platformPowerPC = 2, /* (when gestaltComponentPlatform is not implemented, use */
- platformInterpreted = 3, /* gestaltSysArchitecture) */
- platformWin32 = 4,
- platformPowerPCNativeEntryPoint = 5
- };
- enum {
- mpWorkFlagDoWork = (1 << 0),
- mpWorkFlagDoCompletion = (1 << 1),
- mpWorkFlagCopyWorkBlock = (1 << 2),
- mpWorkFlagDontBlock = (1 << 3),
- mpWorkFlagGetProcessorCount = (1 << 4),
- mpWorkFlagGetIsRunning = (1 << 6)
- };
- enum {
- cmpAliasNoFlags = 0,
- cmpAliasOnlyThisFile = 1
- };
- struct ComponentMPWorkFunctionHeaderRecord {
- UInt32 headerSize;
- UInt32 recordSize;
- UInt32 workFlags;
- UInt16 processorCount;
- UInt8 unused;
- UInt8 isRunning;
- };
- typedef struct ComponentMPWorkFunctionHeaderRecord ComponentMPWorkFunctionHeaderRecord;
- typedef ComponentMPWorkFunctionHeaderRecord * ComponentMPWorkFunctionHeaderRecordPtr;
- typedef CALLBACK_API( ComponentResult , ComponentMPWorkFunctionProcPtr )(void *globalRefCon, ComponentMPWorkFunctionHeaderRecordPtr header);
- typedef CALLBACK_API( ComponentResult , ComponentRoutineProcPtr )(ComponentParameters *cp, Handle componentStorage);
- typedef CALLBACK_API( OSErr , GetMissingComponentResourceProcPtr )(Component c, OSType resType, short resID, void *refCon, Handle *resource);
- typedef STACK_UPP_TYPE(ComponentMPWorkFunctionProcPtr) ComponentMPWorkFunctionUPP;
- typedef STACK_UPP_TYPE(ComponentRoutineProcPtr) ComponentRoutineUPP;
- typedef STACK_UPP_TYPE(GetMissingComponentResourceProcPtr) GetMissingComponentResourceUPP;
- /*
- The parameter list for each ComponentFunction is unique. It is
- therefore up to users to create the appropriate procInfo for their
- own ComponentFunctions where necessary.
- */
- typedef UniversalProcPtr ComponentFunctionUPP;
- /*
- For Carbon, we add NewComponentFunctionUPP and DisposeComponentFunctionUPP
- calls that take a procInfo as their second parameter. This allows native
- Component writers to easily write a Carbon compliant component. Note that
- there is no InvokeComponentFunctionUPP, use the CallComponentFunction calls
- with the UPP instead.
- */
- #if OPAQUE_UPP_TYPES
- EXTERN_API( ComponentFunctionUPP )
- NewComponentFunctionUPP (ProcPtr userRoutine,
- ProcInfoType procInfo);
- EXTERN_API( void )
- DisposeComponentFunctionUPP (ComponentFunctionUPP userUPP);
- #else
- #define NewComponentFunctionUPP(userRoutine,procInfo) (ComponentFunctionUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), (ProcInfoType)procInfo, GetCurrentArchitecture())
- #define DisposeComponentFunctionUPP(userUPP) DisposeRoutineDescriptor(userUPP)
- #endif /* OPAQUE_UPP_TYPES */
- #if TARGET_RT_MAC_CFM
- /*
- CallComponentUPP is a global variable exported from InterfaceLib.
- It is the ProcPtr passed to CallUniversalProc to manually call a component function.
- */
- extern UniversalProcPtr CallComponentUPP;
- #endif
- #define ComponentCallNow( callNumber, paramSize )
- FIVEWORDINLINE( 0x2F3C,paramSize,callNumber,0x7000,0xA82A )
- /********************************************************
- * *
- * APPLICATION LEVEL CALLS *
- * *
- ********************************************************/
- /********************************************************
- * Component Database Add, Delete, and Query Routines
- ********************************************************/
- EXTERN_API( Component )
- RegisterComponent (ComponentDescription * cd,
- ComponentRoutineUPP componentEntryPoint,
- short global,
- Handle componentName,
- Handle componentInfo,
- Handle componentIcon) TWOWORDINLINE(0x7001, 0xA82A);
- EXTERN_API( Component )
- RegisterComponentResource (ComponentResourceHandle cr,
- short global) TWOWORDINLINE(0x7012, 0xA82A);
- EXTERN_API( OSErr )
- UnregisterComponent (Component aComponent) TWOWORDINLINE(0x7002, 0xA82A);
- EXTERN_API( Component )
- FindNextComponent (Component aComponent,
- ComponentDescription * looking) TWOWORDINLINE(0x7004, 0xA82A);
- EXTERN_API( long )
- CountComponents (ComponentDescription * looking) TWOWORDINLINE(0x7003, 0xA82A);
- EXTERN_API( OSErr )
- GetComponentInfo (Component aComponent,
- ComponentDescription * cd,
- Handle componentName,
- Handle componentInfo,
- Handle componentIcon) TWOWORDINLINE(0x7005, 0xA82A);
- EXTERN_API( long )
- GetComponentListModSeed (void) TWOWORDINLINE(0x7006, 0xA82A);
- EXTERN_API( long )
- GetComponentTypeModSeed (OSType componentType) TWOWORDINLINE(0x702C, 0xA82A);
- /********************************************************
- * Component Instance Allocation and dispatch routines
- ********************************************************/
- EXTERN_API( OSErr )
- OpenAComponent (Component aComponent,
- ComponentInstance * ci) TWOWORDINLINE(0x702D, 0xA82A);
- EXTERN_API( ComponentInstance )
- OpenComponent (Component aComponent) TWOWORDINLINE(0x7007, 0xA82A);
- EXTERN_API( OSErr )
- CloseComponent (ComponentInstance aComponentInstance) TWOWORDINLINE(0x7008, 0xA82A);
- EXTERN_API( OSErr )
- GetComponentInstanceError (ComponentInstance aComponentInstance) TWOWORDINLINE(0x700A, 0xA82A);
- /********************************************************
- * Component aliases
- ********************************************************/
- EXTERN_API( Component )
- ResolveComponentAlias (Component aComponent) TWOWORDINLINE(0x7020, 0xA82A);
- /********************************************************
- * Component public resources and public string lists
- ********************************************************/
- /* Note: GetComponentPublicResource returns a Handle, not a resource. The caller must dispose it with DisposeHandle. */
- EXTERN_API( OSErr )
- GetComponentPublicResource (Component aComponent,
- OSType resourceType,
- short resourceID,
- Handle * theResource) TWOWORDINLINE(0x7038, 0xA82A);
- EXTERN_API( OSErr )
- GetComponentPublicResourceList (OSType resourceType,
- short resourceID,
- long flags,
- ComponentDescription * cd,
- GetMissingComponentResourceUPP missingProc,
- void * refCon,
- void * atomContainerPtr) TWOWORDINLINE(0x7039, 0xA82A);
- EXTERN_API( OSErr )
- GetComponentPublicIndString (Component aComponent,
- Str255 theString,
- short strListID,
- short index) TWOWORDINLINE(0x703A, 0xA82A);
- /********************************************************
- * *
- * CALLS MADE BY COMPONENTS *
- * *
- ********************************************************/
- /********************************************************
- * Component Management routines
- ********************************************************/
- EXTERN_API( void )
- SetComponentInstanceError (ComponentInstance aComponentInstance,
- OSErr theError) TWOWORDINLINE(0x700B, 0xA82A);
- EXTERN_API( long )
- GetComponentRefcon (Component aComponent) TWOWORDINLINE(0x7010, 0xA82A);
- EXTERN_API( void )
- SetComponentRefcon (Component aComponent,
- long theRefcon) TWOWORDINLINE(0x7011, 0xA82A);
- EXTERN_API( short )
- OpenComponentResFile (Component aComponent) TWOWORDINLINE(0x7015, 0xA82A);
- EXTERN_API( OSErr )
- OpenAComponentResFile (Component aComponent,
- short * resRef) TWOWORDINLINE(0x702F, 0xA82A);
- EXTERN_API( OSErr )
- CloseComponentResFile (short refnum) TWOWORDINLINE(0x7018, 0xA82A);
- /* Note: GetComponentResource returns a Handle, not a resource. The caller must dispose it with DisposeHandle. */
- EXTERN_API( OSErr )
- GetComponentResource (Component aComponent,
- OSType resType,
- short resID,
- Handle * theResource) TWOWORDINLINE(0x7035, 0xA82A);
- EXTERN_API( OSErr )
- GetComponentIndString (Component aComponent,
- Str255 theString,
- short strListID,
- short index) TWOWORDINLINE(0x7036, 0xA82A);
- /********************************************************
- * Component Instance Management routines
- ********************************************************/
- EXTERN_API( Handle )
- GetComponentInstanceStorage (ComponentInstance aComponentInstance) TWOWORDINLINE(0x700C, 0xA82A);
- EXTERN_API( void )
- SetComponentInstanceStorage (ComponentInstance aComponentInstance,
- Handle theStorage) TWOWORDINLINE(0x700D, 0xA82A);
- EXTERN_API( long )
- GetComponentInstanceA5 (ComponentInstance aComponentInstance) TWOWORDINLINE(0x700E, 0xA82A);
- EXTERN_API( void )
- SetComponentInstanceA5 (ComponentInstance aComponentInstance,
- long theA5) TWOWORDINLINE(0x700F, 0xA82A);
- EXTERN_API( long )
- CountComponentInstances (Component aComponent) TWOWORDINLINE(0x7013, 0xA82A);
- /* useful helper routines for convenient method dispatching */
- EXTERN_API( long )
- CallComponentFunction (ComponentParameters * params,
- ComponentFunctionUPP func) TWOWORDINLINE(0x70FF, 0xA82A);
- EXTERN_API( long )
- CallComponentFunctionWithStorage (Handle storage,
- ComponentParameters * params,
- ComponentFunctionUPP func) TWOWORDINLINE(0x70FF, 0xA82A);
- #if TARGET_OS_MAC
- EXTERN_API( long )
- CallComponentFunctionWithStorageProcInfo (Handle storage,
- ComponentParameters * params,
- ProcPtr func,
- ProcInfoType funcProcInfo);
- #else
- #define CallComponentFunctionWithStorageProcInfo(storage, params, func, funcProcInfo ) CallComponentFunctionWithStorage(storage, params, func)
- #endif /* TARGET_OS_MAC */
- EXTERN_API( long )
- DelegateComponentCall (ComponentParameters * originalParams,
- ComponentInstance ci) TWOWORDINLINE(0x7024, 0xA82A);
- EXTERN_API( OSErr )
- SetDefaultComponent (Component aComponent,
- short flags) TWOWORDINLINE(0x701E, 0xA82A);
- EXTERN_API( ComponentInstance )
- OpenDefaultComponent (OSType componentType,
- OSType componentSubType) TWOWORDINLINE(0x7021, 0xA82A);
- EXTERN_API( OSErr )
- OpenADefaultComponent (OSType componentType,
- OSType componentSubType,
- ComponentInstance * ci) TWOWORDINLINE(0x702E, 0xA82A);
- EXTERN_API( Component )
- CaptureComponent (Component capturedComponent,
- Component capturingComponent) TWOWORDINLINE(0x701C, 0xA82A);
- EXTERN_API( OSErr )
- UncaptureComponent (Component aComponent) TWOWORDINLINE(0x701D, 0xA82A);
- EXTERN_API( long )
- RegisterComponentResourceFile (short resRefNum,
- short global) TWOWORDINLINE(0x7014, 0xA82A);
- EXTERN_API( OSErr )
- GetComponentIconSuite (Component aComponent,
- Handle * iconSuite) TWOWORDINLINE(0x7029, 0xA82A);
- /********************************************************
- * *
- * Direct calls to the Components *
- * *
- ********************************************************/
- /* Old style names*/
- EXTERN_API( long )
- ComponentFunctionImplemented (ComponentInstance ci,
- short ftnNumber) FIVEWORDINLINE(0x2F3C, 0x0002, 0xFFFD, 0x7000, 0xA82A);
- EXTERN_API( long )
- GetComponentVersion (ComponentInstance ci) FIVEWORDINLINE(0x2F3C, 0x0000, 0xFFFC, 0x7000, 0xA82A);
- EXTERN_API( long )
- ComponentSetTarget (ComponentInstance ci,
- ComponentInstance target) FIVEWORDINLINE(0x2F3C, 0x0004, 0xFFFA, 0x7000, 0xA82A);
- /* New style names*/
- EXTERN_API( ComponentResult )
- CallComponentOpen (ComponentInstance ci,
- ComponentInstance self) FIVEWORDINLINE(0x2F3C, 0x0004, 0xFFFF, 0x7000, 0xA82A);
- EXTERN_API( ComponentResult )
- CallComponentClose (ComponentInstance ci,
- ComponentInstance self) FIVEWORDINLINE(0x2F3C, 0x0004, 0xFFFE, 0x7000, 0xA82A);
- EXTERN_API( ComponentResult )
- CallComponentCanDo (ComponentInstance ci,
- short ftnNumber) FIVEWORDINLINE(0x2F3C, 0x0002, 0xFFFD, 0x7000, 0xA82A);
- EXTERN_API( ComponentResult )
- CallComponentVersion (ComponentInstance ci) FIVEWORDINLINE(0x2F3C, 0x0000, 0xFFFC, 0x7000, 0xA82A);
- EXTERN_API( ComponentResult )
- CallComponentRegister (ComponentInstance ci) FIVEWORDINLINE(0x2F3C, 0x0000, 0xFFFB, 0x7000, 0xA82A);
- EXTERN_API( ComponentResult )
- CallComponentTarget (ComponentInstance ci,
- ComponentInstance target) FIVEWORDINLINE(0x2F3C, 0x0004, 0xFFFA, 0x7000, 0xA82A);
- EXTERN_API( ComponentResult )
- CallComponentUnregister (ComponentInstance ci) FIVEWORDINLINE(0x2F3C, 0x0000, 0xFFF9, 0x7000, 0xA82A);
- EXTERN_API( ComponentResult )
- CallComponentGetMPWorkFunction (ComponentInstance ci,
- ComponentMPWorkFunctionUPP * workFunction,
- void ** refCon) FIVEWORDINLINE(0x2F3C, 0x0008, 0xFFF8, 0x7000, 0xA82A);
- EXTERN_API( ComponentResult )
- CallComponentGetPublicResource (ComponentInstance ci,
- OSType resourceType,
- short resourceID,
- Handle * resource) FIVEWORDINLINE(0x2F3C, 0x000A, 0xFFF6, 0x7000, 0xA82A);
- #if !TARGET_OS_MAC
- /*
- CallComponent is used by ComponentGlue routines to manually call a component function.
- */
- EXTERN_API( ComponentResult )
- CallComponent (ComponentInstance ci,
- ComponentParameters * cp);
- #endif /* !TARGET_OS_MAC */
- /*
- CallComponentDispatch is a CarbonLib routine that replaces CallComponent inline glue
- to call a component function.
- */
- EXTERN_API( ComponentResult )
- CallComponentDispatch (ComponentParameters * cp);
- /* UPP call backs */
- #if OPAQUE_UPP_TYPES
- EXTERN_API(ComponentMPWorkFunctionUPP)
- NewComponentMPWorkFunctionUPP (ComponentMPWorkFunctionProcPtr userRoutine);
- EXTERN_API(ComponentRoutineUPP)
- NewComponentRoutineUPP (ComponentRoutineProcPtr userRoutine);
- EXTERN_API(GetMissingComponentResourceUPP)
- NewGetMissingComponentResourceUPP (GetMissingComponentResourceProcPtr userRoutine);
- EXTERN_API(void)
- DisposeComponentMPWorkFunctionUPP (ComponentMPWorkFunctionUPP userUPP);
- EXTERN_API(void)
- DisposeComponentRoutineUPP (ComponentRoutineUPP userUPP);
- EXTERN_API(void)
- DisposeGetMissingComponentResourceUPP (GetMissingComponentResourceUPP userUPP);
- EXTERN_API(ComponentResult)
- InvokeComponentMPWorkFunctionUPP (void * globalRefCon,
- ComponentMPWorkFunctionHeaderRecordPtr header,
- ComponentMPWorkFunctionUPP userUPP);
- EXTERN_API(ComponentResult)
- InvokeComponentRoutineUPP (ComponentParameters * cp,
- Handle componentStorage,
- ComponentRoutineUPP userUPP);
- EXTERN_API(OSErr)
- InvokeGetMissingComponentResourceUPP (Component c,
- OSType resType,
- short resID,
- void * refCon,
- Handle * resource,
- GetMissingComponentResourceUPP userUPP);
- #else
- enum { uppComponentMPWorkFunctionProcInfo = 0x000003F0 }; /* pascal 4_bytes Func(4_bytes, 4_bytes) */
- enum { uppComponentRoutineProcInfo = 0x000003F0 }; /* pascal 4_bytes Func(4_bytes, 4_bytes) */
- enum { uppGetMissingComponentResourceProcInfo = 0x0000FBE0 }; /* pascal 2_bytes Func(4_bytes, 4_bytes, 2_bytes, 4_bytes, 4_bytes) */
- #define NewComponentMPWorkFunctionUPP(userRoutine) (ComponentMPWorkFunctionUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppComponentMPWorkFunctionProcInfo, GetCurrentArchitecture())
- #define NewComponentRoutineUPP(userRoutine) (ComponentRoutineUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppComponentRoutineProcInfo, GetCurrentArchitecture())
- #define NewGetMissingComponentResourceUPP(userRoutine) (GetMissingComponentResourceUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppGetMissingComponentResourceProcInfo, GetCurrentArchitecture())
- #define DisposeComponentMPWorkFunctionUPP(userUPP) DisposeRoutineDescriptor(userUPP)
- #define DisposeComponentRoutineUPP(userUPP) DisposeRoutineDescriptor(userUPP)
- #define DisposeGetMissingComponentResourceUPP(userUPP) DisposeRoutineDescriptor(userUPP)
- #define InvokeComponentMPWorkFunctionUPP(globalRefCon, header, userUPP) (ComponentResult)CALL_TWO_PARAMETER_UPP((userUPP), uppComponentMPWorkFunctionProcInfo, (globalRefCon), (header))
- #define InvokeComponentRoutineUPP(cp, componentStorage, userUPP) (ComponentResult)CALL_TWO_PARAMETER_UPP((userUPP), uppComponentRoutineProcInfo, (cp), (componentStorage))
- #define InvokeGetMissingComponentResourceUPP(c, resType, resID, refCon, resource, userUPP) (OSErr)CALL_FIVE_PARAMETER_UPP((userUPP), uppGetMissingComponentResourceProcInfo, (c), (resType), (resID), (refCon), (resource))
- #endif
- /* support for pre-Carbon UPP routines: NewXXXProc and CallXXXProc */
- #define NewComponentMPWorkFunctionProc(userRoutine) NewComponentMPWorkFunctionUPP(userRoutine)
- #define NewComponentRoutineProc(userRoutine) NewComponentRoutineUPP(userRoutine)
- #define NewGetMissingComponentResourceProc(userRoutine) NewGetMissingComponentResourceUPP(userRoutine)
- #define CallComponentMPWorkFunctionProc(userRoutine, globalRefCon, header) InvokeComponentMPWorkFunctionUPP(globalRefCon, header, userRoutine)
- #define CallComponentRoutineProc(userRoutine, cp, componentStorage) InvokeComponentRoutineUPP(cp, componentStorage, userRoutine)
- #define CallGetMissingComponentResourceProc(userRoutine, c, resType, resID, refCon, resource) InvokeGetMissingComponentResourceUPP(c, resType, resID, refCon, resource, userRoutine)
- /* ProcInfos */
- /* MixedMode ProcInfo constants for component calls */
- enum {
- uppComponentFunctionImplementedProcInfo = 0x000002F0,
- uppGetComponentVersionProcInfo = 0x000000F0,
- uppComponentSetTargetProcInfo = 0x000003F0,
- uppCallComponentOpenProcInfo = 0x000003F0,
- uppCallComponentCloseProcInfo = 0x000003F0,
- uppCallComponentCanDoProcInfo = 0x000002F0,
- uppCallComponentVersionProcInfo = 0x000000F0,
- uppCallComponentRegisterProcInfo = 0x000000F0,
- uppCallComponentTargetProcInfo = 0x000003F0,
- uppCallComponentUnregisterProcInfo = 0x000000F0,
- uppCallComponentGetMPWorkFunctionProcInfo = 0x00000FF0,
- uppCallComponentGetPublicResourceProcInfo = 0x00003BF0
- };
- #if PRAGMA_STRUCT_ALIGN
- #pragma options align=reset
- #elif PRAGMA_STRUCT_PACKPUSH
- #pragma pack(pop)
- #elif PRAGMA_STRUCT_PACK
- #pragma pack()
- #endif
- #ifdef PRAGMA_IMPORT_OFF
- #pragma import off
- #elif PRAGMA_IMPORT
- #pragma import reset
- #endif
- #ifdef __cplusplus
- }
- #endif
- #endif /* __COMPONENTS__ */