Show Components.h syntax highlighted
/*
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__ */
See more files for this project here