19 #ifndef __IAEXTRACTOR__
20 #define __IAEXTRACTOR__
22 #ifndef __CONDITIONALMACROS__
51 #if PRAGMA_STRUCT_ALIGN
52 #pragma options align = mac68k
53 #elif PRAGMA_STRUCT_PACKPUSH
55 #elif PRAGMA_STRUCT_PACK
70 kIAExtractorVersion1 = 0x00010001,
71 kIAExtractorCurrentVersion = kIAExtractorVersion1
75 typedef OSStatus IAResult;
76 typedef struct OpaqueIAPluginRef *IAPluginRef;
77 typedef struct OpaqueIADocAccessorRef *IADocAccessorRef;
78 typedef struct OpaqueIADocRef *IADocRef;
80 typedef CALLBACK_API_C(
void *, IAAllocProcPtr)(UInt32 inSize);
81 typedef CALLBACK_API_C(
void, IAFreeProcPtr)(
void *inObject);
82 typedef CALLBACK_API_C(UInt8, IAIdleProcPtr)(void);
86 #if CALL_NOT_IN_CARBON
100 uppIAAllocProcInfo = 0x000000F1
106 (ProcPtr)(userRoutine), uppIAAllocProcInfo, GetCurrentArchitecture());
109 #define NewIAAllocUPP(userRoutine) \
110 (IAAllocUPP) NewRoutineDescriptor( \
111 (ProcPtr)(userRoutine), uppIAAllocProcInfo, GetCurrentArchitecture())
125 #if !OPAQUE_UPP_TYPES
128 uppIAFreeProcInfo = 0x000000C1
131 inline IAFreeUPP
NewIAFreeUPP(IAFreeProcPtr userRoutine)
134 (ProcPtr)(userRoutine), uppIAFreeProcInfo, GetCurrentArchitecture());
137 #define NewIAFreeUPP(userRoutine) \
138 (IAFreeUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppIAFreeProcInfo, \
139 GetCurrentArchitecture())
153 #if !OPAQUE_UPP_TYPES
156 uppIAIdleProcInfo = 0x00000011
159 inline IAIdleUPP
NewIAIdleUPP(IAIdleProcPtr userRoutine)
162 (ProcPtr)(userRoutine), uppIAIdleProcInfo, GetCurrentArchitecture());
165 #define NewIAIdleUPP(userRoutine) \
166 (IAIdleUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppIAIdleProcInfo, \
167 GetCurrentArchitecture())
181 #if !OPAQUE_UPP_TYPES
188 #define DisposeIAAllocUPP(userUPP) DisposeRoutineDescriptor(userUPP)
202 #if !OPAQUE_UPP_TYPES
209 #define DisposeIAFreeUPP(userUPP) DisposeRoutineDescriptor(userUPP)
223 #if !OPAQUE_UPP_TYPES
230 #define DisposeIAIdleUPP(userUPP) DisposeRoutineDescriptor(userUPP)
244 #if !OPAQUE_UPP_TYPES
248 return (
void *)CALL_ONE_PARAMETER_UPP(userUPP, uppIAAllocProcInfo, inSize);
251 #define InvokeIAAllocUPP(inSize, userUPP) \
252 (void *)CALL_ONE_PARAMETER_UPP((userUPP), uppIAAllocProcInfo, (inSize))
266 #if !OPAQUE_UPP_TYPES
270 CALL_ONE_PARAMETER_UPP(userUPP, uppIAFreeProcInfo, inObject);
273 #define InvokeIAFreeUPP(inObject, userUPP) \
274 CALL_ONE_PARAMETER_UPP((userUPP), uppIAFreeProcInfo, (inObject))
288 #if !OPAQUE_UPP_TYPES
295 #define InvokeIAIdleUPP(userUPP) \
296 (UInt8) CALL_ZERO_PARAMETER_UPP((userUPP), uppIAIdleProcInfo)
302 #if CALL_NOT_IN_CARBON || OLDROUTINENAMES
304 #define NewIAAllocProc(userRoutine) NewIAAllocUPP(userRoutine)
305 #define NewIAFreeProc(userRoutine) NewIAFreeUPP(userRoutine)
306 #define NewIAIdleProc(userRoutine) NewIAIdleUPP(userRoutine)
307 #define CallIAAllocProc(userRoutine, inSize) \
308 InvokeIAAllocUPP(inSize, userRoutine)
309 #define CallIAFreeProc(userRoutine, inObject) \
310 InvokeIAFreeUPP(inObject, userRoutine)
311 #define CallIAIdleProc(userRoutine) InvokeIAIdleUPP(userRoutine)
323 typedef CALLBACK_API_C(OSStatus,
324 IADocAccessorOpenProcPtr)(IADocAccessorRef inAccessor);
325 typedef CALLBACK_API_C(OSStatus,
326 IADocAccessorCloseProcPtr)(IADocAccessorRef inAccessor);
327 typedef CALLBACK_API_C(OSStatus,
328 IADocAccessorReadProcPtr)(IADocAccessorRef inAccessor,
329 void *buffer, UInt32 *ioSize);
330 typedef CALLBACK_API_C(OSStatus, IASetDocAccessorReadPositionProcPtr)(
331 IADocAccessorRef inAccessor, SInt32 inMode, SInt32 inOffset);
332 typedef CALLBACK_API_C(OSStatus, IAGetDocAccessorReadPositionProcPtr)(
333 IADocAccessorRef inAccessor, SInt32 *outPostion);
334 typedef CALLBACK_API_C(OSStatus,
335 IAGetDocAccessorEOFProcPtr)(IADocAccessorRef inAccessor,
337 typedef STACK_UPP_TYPE(IADocAccessorOpenProcPtr) IADocAccessorOpenUPP;
338 typedef STACK_UPP_TYPE(IADocAccessorCloseProcPtr) IADocAccessorCloseUPP;
339 typedef STACK_UPP_TYPE(IADocAccessorReadProcPtr) IADocAccessorReadUPP;
341 IASetDocAccessorReadPositionUPP;
343 IAGetDocAccessorReadPositionUPP;
344 typedef STACK_UPP_TYPE(IAGetDocAccessorEOFProcPtr) IAGetDocAccessorEOFUPP;
345 #if CALL_NOT_IN_CARBON
356 #if !OPAQUE_UPP_TYPES
359 uppIADocAccessorOpenProcInfo = 0x000000F1
362 inline IADocAccessorOpenUPP
366 (ProcPtr)(userRoutine), uppIADocAccessorOpenProcInfo,
367 GetCurrentArchitecture());
370 #define NewIADocAccessorOpenUPP(userRoutine) \
371 (IADocAccessorOpenUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), \
372 uppIADocAccessorOpenProcInfo, \
373 GetCurrentArchitecture())
385 IADocAccessorCloseUPP
387 #if !OPAQUE_UPP_TYPES
390 uppIADocAccessorCloseProcInfo = 0x000000F1
393 inline IADocAccessorCloseUPP
397 (ProcPtr)(userRoutine), uppIADocAccessorCloseProcInfo,
398 GetCurrentArchitecture());
401 #define NewIADocAccessorCloseUPP(userRoutine) \
402 (IADocAccessorCloseUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), \
403 uppIADocAccessorCloseProcInfo, \
404 GetCurrentArchitecture())
418 #if !OPAQUE_UPP_TYPES
421 uppIADocAccessorReadProcInfo = 0x00000FF1
424 inline IADocAccessorReadUPP
428 (ProcPtr)(userRoutine), uppIADocAccessorReadProcInfo,
429 GetCurrentArchitecture());
432 #define NewIADocAccessorReadUPP(userRoutine) \
433 (IADocAccessorReadUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), \
434 uppIADocAccessorReadProcInfo, \
435 GetCurrentArchitecture())
447 IASetDocAccessorReadPositionUPP
449 IASetDocAccessorReadPositionProcPtr userRoutine);
450 #if !OPAQUE_UPP_TYPES
453 uppIASetDocAccessorReadPositionProcInfo = 0x00000FF1
457 IASetDocAccessorReadPositionProcPtr userRoutine)
460 (ProcPtr)(userRoutine), uppIASetDocAccessorReadPositionProcInfo,
461 GetCurrentArchitecture());
464 #define NewIASetDocAccessorReadPositionUPP(userRoutine) \
465 (IASetDocAccessorReadPositionUPP) NewRoutineDescriptor( \
466 (ProcPtr)(userRoutine), uppIASetDocAccessorReadPositionProcInfo, \
467 GetCurrentArchitecture())
479 IAGetDocAccessorReadPositionUPP
481 IAGetDocAccessorReadPositionProcPtr userRoutine);
482 #if !OPAQUE_UPP_TYPES
485 uppIAGetDocAccessorReadPositionProcInfo = 0x000003F1
489 IAGetDocAccessorReadPositionProcPtr userRoutine)
492 (ProcPtr)(userRoutine), uppIAGetDocAccessorReadPositionProcInfo,
493 GetCurrentArchitecture());
496 #define NewIAGetDocAccessorReadPositionUPP(userRoutine) \
497 (IAGetDocAccessorReadPositionUPP) NewRoutineDescriptor( \
498 (ProcPtr)(userRoutine), uppIAGetDocAccessorReadPositionProcInfo, \
499 GetCurrentArchitecture())
511 IAGetDocAccessorEOFUPP
513 #if !OPAQUE_UPP_TYPES
516 uppIAGetDocAccessorEOFProcInfo = 0x000003F1
519 inline IAGetDocAccessorEOFUPP
523 (ProcPtr)(userRoutine), uppIAGetDocAccessorEOFProcInfo,
524 GetCurrentArchitecture());
527 #define NewIAGetDocAccessorEOFUPP(userRoutine) \
528 (IAGetDocAccessorEOFUPP) NewRoutineDescriptor( \
529 (ProcPtr)(userRoutine), uppIAGetDocAccessorEOFProcInfo, \
530 GetCurrentArchitecture())
544 #if !OPAQUE_UPP_TYPES
551 #define DisposeIADocAccessorOpenUPP(userUPP) DisposeRoutineDescriptor(userUPP)
565 #if !OPAQUE_UPP_TYPES
572 #define DisposeIADocAccessorCloseUPP(userUPP) DisposeRoutineDescriptor(userUPP)
586 #if !OPAQUE_UPP_TYPES
593 #define DisposeIADocAccessorReadUPP(userUPP) DisposeRoutineDescriptor(userUPP)
607 #if !OPAQUE_UPP_TYPES
610 IASetDocAccessorReadPositionUPP userUPP)
615 #define DisposeIASetDocAccessorReadPositionUPP(userUPP) \
616 DisposeRoutineDescriptor(userUPP)
630 #if !OPAQUE_UPP_TYPES
633 IAGetDocAccessorReadPositionUPP userUPP)
638 #define DisposeIAGetDocAccessorReadPositionUPP(userUPP) \
639 DisposeRoutineDescriptor(userUPP)
653 #if !OPAQUE_UPP_TYPES
660 #define DisposeIAGetDocAccessorEOFUPP(userUPP) DisposeRoutineDescriptor(userUPP)
674 IADocAccessorOpenUPP userUPP);
675 #if !OPAQUE_UPP_TYPES
678 IADocAccessorOpenUPP userUPP)
680 return (OSStatus)CALL_ONE_PARAMETER_UPP(userUPP, uppIADocAccessorOpenProcInfo,
684 #define InvokeIADocAccessorOpenUPP(inAccessor, userUPP) \
685 (OSStatus) CALL_ONE_PARAMETER_UPP((userUPP), uppIADocAccessorOpenProcInfo, \
700 IADocAccessorCloseUPP userUPP);
701 #if !OPAQUE_UPP_TYPES
704 IADocAccessorCloseUPP userUPP)
706 return (OSStatus)CALL_ONE_PARAMETER_UPP(
707 userUPP, uppIADocAccessorCloseProcInfo, inAccessor);
710 #define InvokeIADocAccessorCloseUPP(inAccessor, userUPP) \
711 (OSStatus) CALL_ONE_PARAMETER_UPP((userUPP), uppIADocAccessorCloseProcInfo, \
726 UInt32 *ioSize, IADocAccessorReadUPP userUPP);
727 #if !OPAQUE_UPP_TYPES
730 void *buffer, UInt32 *ioSize,
731 IADocAccessorReadUPP userUPP)
733 return (OSStatus)CALL_THREE_PARAMETER_UPP(
734 userUPP, uppIADocAccessorReadProcInfo, inAccessor, buffer, ioSize);
737 #define InvokeIADocAccessorReadUPP(inAccessor, buffer, ioSize, userUPP) \
738 (OSStatus) CALL_THREE_PARAMETER_UPP((userUPP), uppIADocAccessorReadProcInfo, \
739 (inAccessor), (buffer), (ioSize))
753 SInt32 inMode, SInt32 inOffset,
754 IASetDocAccessorReadPositionUPP userUPP);
755 #if !OPAQUE_UPP_TYPES
759 SInt32 inMode, SInt32 inOffset,
760 IASetDocAccessorReadPositionUPP userUPP)
762 return (OSStatus)CALL_THREE_PARAMETER_UPP(
763 userUPP, uppIASetDocAccessorReadPositionProcInfo, inAccessor, inMode,
767 #define InvokeIASetDocAccessorReadPositionUPP(inAccessor, inMode, inOffset, \
769 (OSStatus) CALL_THREE_PARAMETER_UPP((userUPP), \
770 uppIASetDocAccessorReadPositionProcInfo, \
771 (inAccessor), (inMode), (inOffset))
786 IAGetDocAccessorReadPositionUPP userUPP);
787 #if !OPAQUE_UPP_TYPES
792 IAGetDocAccessorReadPositionUPP userUPP)
794 return (OSStatus)CALL_TWO_PARAMETER_UPP(
795 userUPP, uppIAGetDocAccessorReadPositionProcInfo, inAccessor, outPostion);
798 #define InvokeIAGetDocAccessorReadPositionUPP(inAccessor, outPostion, userUPP) \
799 (OSStatus) CALL_TWO_PARAMETER_UPP((userUPP), \
800 uppIAGetDocAccessorReadPositionProcInfo, \
801 (inAccessor), (outPostion))
815 IAGetDocAccessorEOFUPP userUPP);
816 #if !OPAQUE_UPP_TYPES
820 IAGetDocAccessorEOFUPP userUPP)
822 return (OSStatus)CALL_TWO_PARAMETER_UPP(
823 userUPP, uppIAGetDocAccessorEOFProcInfo, inAccessor, outEOF);
826 #define InvokeIAGetDocAccessorEOFUPP(inAccessor, outEOF, userUPP) \
827 (OSStatus) CALL_TWO_PARAMETER_UPP((userUPP), uppIAGetDocAccessorEOFProcInfo, \
828 (inAccessor), (outEOF))
834 #if CALL_NOT_IN_CARBON || OLDROUTINENAMES
836 #define NewIADocAccessorOpenProc(userRoutine) \
837 NewIADocAccessorOpenUPP(userRoutine)
838 #define NewIADocAccessorCloseProc(userRoutine) \
839 NewIADocAccessorCloseUPP(userRoutine)
840 #define NewIADocAccessorReadProc(userRoutine) \
841 NewIADocAccessorReadUPP(userRoutine)
842 #define NewIASetDocAccessorReadPositionProc(userRoutine) \
843 NewIASetDocAccessorReadPositionUPP(userRoutine)
844 #define NewIAGetDocAccessorReadPositionProc(userRoutine) \
845 NewIAGetDocAccessorReadPositionUPP(userRoutine)
846 #define NewIAGetDocAccessorEOFProc(userRoutine) \
847 NewIAGetDocAccessorEOFUPP(userRoutine)
848 #define CallIADocAccessorOpenProc(userRoutine, inAccessor) \
849 InvokeIADocAccessorOpenUPP(inAccessor, userRoutine)
850 #define CallIADocAccessorCloseProc(userRoutine, inAccessor) \
851 InvokeIADocAccessorCloseUPP(inAccessor, userRoutine)
852 #define CallIADocAccessorReadProc(userRoutine, inAccessor, buffer, ioSize) \
853 InvokeIADocAccessorReadUPP(inAccessor, buffer, ioSize, userRoutine)
854 #define CallIASetDocAccessorReadPositionProc(userRoutine, inAccessor, inMode, \
856 InvokeIASetDocAccessorReadPositionUPP(inAccessor, inMode, inOffset, \
858 #define CallIAGetDocAccessorReadPositionProc(userRoutine, inAccessor, \
860 InvokeIAGetDocAccessorReadPositionUPP(inAccessor, outPostion, userRoutine)
861 #define CallIAGetDocAccessorEOFProc(userRoutine, inAccessor, outEOF) \
862 InvokeIAGetDocAccessorEOFUPP(inAccessor, outEOF, userRoutine)
868 IADocAccessorRef docAccessor;
869 IADocAccessorOpenUPP OpenDoc;
870 IADocAccessorCloseUPP CloseDoc;
871 IADocAccessorReadUPP ReadDoc;
872 IASetDocAccessorReadPositionUPP SetReadPosition;
873 IAGetDocAccessorReadPositionUPP GetReadPosition;
874 IAGetDocAccessorEOFUPP GetEOF;
884 #ifndef BUILDING_IAEXTRACTOR
885 #define BUILDING_IAEXTRACTOR 1
887 #if BUILDING_IAEXTRACTOR
902 #if CALL_NOT_IN_CARBON
1045 #if BUILDING_IAEXTRACTOR
1053 #if PRAGMA_STRUCT_ALIGN
1054 #pragma options align = reset
1055 #elif PRAGMA_STRUCT_PACKPUSH
1057 #elif PRAGMA_STRUCT_PACK
1061 #ifdef PRAGMA_IMPORT_OFF
1064 #pragma import reset
Set up for compiler independent conditionals.
Basic Macintosh data types.
Mixed Mode Manager Interfaces.
#define CALL_ZERO_PARAMETER_UPP(upp, procInfo)
Definition: MixedMode.h:790
void DisposeRoutineDescriptor(UniversalProcPtr theUPP)
#define STACK_UPP_TYPE(name)
Definition: MixedMode.h:734
UniversalProcPtr NewRoutineDescriptor(ProcPtr theProc, ProcInfoType theProcInfo, ISAType theISA)
Definition: IAExtractor.h:867
Definition: IAExtractor.h:315