Mac OS 9
IAExtractor.h
Go to the documentation of this file.
1 
19 #ifndef __IAEXTRACTOR__
20 #define __IAEXTRACTOR__
21 
22 #ifndef __CONDITIONALMACROS__
23 #include <ConditionalMacros.h>
24 #endif
25 
26 #ifndef __MACTYPES__
27 #include <MacTypes.h>
28 #endif
29 
30 #ifndef __MIXEDMODE__
31 #include <MixedMode.h>
32 #endif
33 
34 #ifndef __MACERRORS__
35 #include <MacErrors.h>
36 #endif
37 
38 #if PRAGMA_ONCE
39 #pragma once
40 #endif
41 
42 #ifdef __cplusplus
43 extern "C"
44 {
45 #endif
46 
47 #if PRAGMA_IMPORT
48 #pragma import on
49 #endif
50 
51 #if PRAGMA_STRUCT_ALIGN
52 #pragma options align = mac68k
53 #elif PRAGMA_STRUCT_PACKPUSH
54 #pragma pack(push, 2)
55 #elif PRAGMA_STRUCT_PACK
56 #pragma pack(2)
57 #endif
58 
59  /* modes for IASetDocAccessorReadPositionProc */
60  enum
61  {
62  kIAFromStartMode = 0,
63  kIAFromCurrMode = 1,
64  kIAFromEndMode = 2
65  };
66 
67  /* versions for plug-ins */
68  enum
69  {
70  kIAExtractorVersion1 = 0x00010001,
71  kIAExtractorCurrentVersion = kIAExtractorVersion1
72  };
73 
74  /* types */
75  typedef OSStatus IAResult;
76  typedef struct OpaqueIAPluginRef *IAPluginRef;
77  typedef struct OpaqueIADocAccessorRef *IADocAccessorRef;
78  typedef struct OpaqueIADocRef *IADocRef;
79  /* IAPluginInitBlock functions */
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);
83  typedef STACK_UPP_TYPE(IAAllocProcPtr) IAAllocUPP;
84  typedef STACK_UPP_TYPE(IAFreeProcPtr) IAFreeUPP;
85  typedef STACK_UPP_TYPE(IAIdleProcPtr) IAIdleUPP;
86 #if CALL_NOT_IN_CARBON
95  IAAllocUPP
96  NewIAAllocUPP(IAAllocProcPtr userRoutine);
97 #if !OPAQUE_UPP_TYPES
98  enum
99  {
100  uppIAAllocProcInfo = 0x000000F1
101  }; /* 4_bytes Func(4_bytes) */
102 #ifdef __cplusplus
103  inline IAAllocUPP NewIAAllocUPP(IAAllocProcPtr userRoutine)
104  {
105  return (IAAllocUPP)NewRoutineDescriptor(
106  (ProcPtr)(userRoutine), uppIAAllocProcInfo, GetCurrentArchitecture());
107  }
108 #else
109 #define NewIAAllocUPP(userRoutine) \
110  (IAAllocUPP) NewRoutineDescriptor( \
111  (ProcPtr)(userRoutine), uppIAAllocProcInfo, GetCurrentArchitecture())
112 #endif
113 #endif
114 
123  IAFreeUPP
124  NewIAFreeUPP(IAFreeProcPtr userRoutine);
125 #if !OPAQUE_UPP_TYPES
126  enum
127  {
128  uppIAFreeProcInfo = 0x000000C1
129  }; /* no_return_value Func(4_bytes) */
130 #ifdef __cplusplus
131  inline IAFreeUPP NewIAFreeUPP(IAFreeProcPtr userRoutine)
132  {
133  return (IAFreeUPP)NewRoutineDescriptor(
134  (ProcPtr)(userRoutine), uppIAFreeProcInfo, GetCurrentArchitecture());
135  }
136 #else
137 #define NewIAFreeUPP(userRoutine) \
138  (IAFreeUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppIAFreeProcInfo, \
139  GetCurrentArchitecture())
140 #endif
141 #endif
142 
151  IAIdleUPP
152  NewIAIdleUPP(IAIdleProcPtr userRoutine);
153 #if !OPAQUE_UPP_TYPES
154  enum
155  {
156  uppIAIdleProcInfo = 0x00000011
157  }; /* 1_byte Func() */
158 #ifdef __cplusplus
159  inline IAIdleUPP NewIAIdleUPP(IAIdleProcPtr userRoutine)
160  {
161  return (IAIdleUPP)NewRoutineDescriptor(
162  (ProcPtr)(userRoutine), uppIAIdleProcInfo, GetCurrentArchitecture());
163  }
164 #else
165 #define NewIAIdleUPP(userRoutine) \
166  (IAIdleUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppIAIdleProcInfo, \
167  GetCurrentArchitecture())
168 #endif
169 #endif
170 
179  void
180  DisposeIAAllocUPP(IAAllocUPP userUPP);
181 #if !OPAQUE_UPP_TYPES
182 #ifdef __cplusplus
183  inline void DisposeIAAllocUPP(IAAllocUPP userUPP)
184  {
185  DisposeRoutineDescriptor((UniversalProcPtr)userUPP);
186  }
187 #else
188 #define DisposeIAAllocUPP(userUPP) DisposeRoutineDescriptor(userUPP)
189 #endif
190 #endif
191 
200  void
201  DisposeIAFreeUPP(IAFreeUPP userUPP);
202 #if !OPAQUE_UPP_TYPES
203 #ifdef __cplusplus
204  inline void DisposeIAFreeUPP(IAFreeUPP userUPP)
205  {
206  DisposeRoutineDescriptor((UniversalProcPtr)userUPP);
207  }
208 #else
209 #define DisposeIAFreeUPP(userUPP) DisposeRoutineDescriptor(userUPP)
210 #endif
211 #endif
212 
221  void
222  DisposeIAIdleUPP(IAIdleUPP userUPP);
223 #if !OPAQUE_UPP_TYPES
224 #ifdef __cplusplus
225  inline void DisposeIAIdleUPP(IAIdleUPP userUPP)
226  {
227  DisposeRoutineDescriptor((UniversalProcPtr)userUPP);
228  }
229 #else
230 #define DisposeIAIdleUPP(userUPP) DisposeRoutineDescriptor(userUPP)
231 #endif
232 #endif
233 
242  void *
243  InvokeIAAllocUPP(UInt32 inSize, IAAllocUPP userUPP);
244 #if !OPAQUE_UPP_TYPES
245 #ifdef __cplusplus
246  inline void *InvokeIAAllocUPP(UInt32 inSize, IAAllocUPP userUPP)
247  {
248  return (void *)CALL_ONE_PARAMETER_UPP(userUPP, uppIAAllocProcInfo, inSize);
249  }
250 #else
251 #define InvokeIAAllocUPP(inSize, userUPP) \
252  (void *)CALL_ONE_PARAMETER_UPP((userUPP), uppIAAllocProcInfo, (inSize))
253 #endif
254 #endif
255 
264  void
265  InvokeIAFreeUPP(void *inObject, IAFreeUPP userUPP);
266 #if !OPAQUE_UPP_TYPES
267 #ifdef __cplusplus
268  inline void InvokeIAFreeUPP(void *inObject, IAFreeUPP userUPP)
269  {
270  CALL_ONE_PARAMETER_UPP(userUPP, uppIAFreeProcInfo, inObject);
271  }
272 #else
273 #define InvokeIAFreeUPP(inObject, userUPP) \
274  CALL_ONE_PARAMETER_UPP((userUPP), uppIAFreeProcInfo, (inObject))
275 #endif
276 #endif
277 
286  UInt8
287  InvokeIAIdleUPP(IAIdleUPP userUPP);
288 #if !OPAQUE_UPP_TYPES
289 #ifdef __cplusplus
290  inline UInt8 InvokeIAIdleUPP(IAIdleUPP userUPP)
291  {
292  return (UInt8)CALL_ZERO_PARAMETER_UPP(userUPP, uppIAIdleProcInfo);
293  }
294 #else
295 #define InvokeIAIdleUPP(userUPP) \
296  (UInt8) CALL_ZERO_PARAMETER_UPP((userUPP), uppIAIdleProcInfo)
297 #endif
298 #endif
299 
300 #endif /* CALL_NOT_IN_CARBON */
301 
302 #if CALL_NOT_IN_CARBON || OLDROUTINENAMES
303 /* support for pre-Carbon UPP routines: New...Proc and Call...Proc */
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)
312 #endif /* CALL_NOT_IN_CARBON */
313 
315  {
316  IAAllocUPP Alloc;
317  IAFreeUPP Free;
318  IAIdleUPP Idle;
319  };
320  typedef struct IAPluginInitBlock IAPluginInitBlock;
322  /* IADocAccessorRecord functions */
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,
336  SInt32 *outEOF);
337  typedef STACK_UPP_TYPE(IADocAccessorOpenProcPtr) IADocAccessorOpenUPP;
338  typedef STACK_UPP_TYPE(IADocAccessorCloseProcPtr) IADocAccessorCloseUPP;
339  typedef STACK_UPP_TYPE(IADocAccessorReadProcPtr) IADocAccessorReadUPP;
340  typedef STACK_UPP_TYPE(IASetDocAccessorReadPositionProcPtr)
341  IASetDocAccessorReadPositionUPP;
342  typedef STACK_UPP_TYPE(IAGetDocAccessorReadPositionProcPtr)
343  IAGetDocAccessorReadPositionUPP;
344  typedef STACK_UPP_TYPE(IAGetDocAccessorEOFProcPtr) IAGetDocAccessorEOFUPP;
345 #if CALL_NOT_IN_CARBON
354  IADocAccessorOpenUPP
355  NewIADocAccessorOpenUPP(IADocAccessorOpenProcPtr userRoutine);
356 #if !OPAQUE_UPP_TYPES
357  enum
358  {
359  uppIADocAccessorOpenProcInfo = 0x000000F1
360  }; /* 4_bytes Func(4_bytes) */
361 #ifdef __cplusplus
362  inline IADocAccessorOpenUPP
363  NewIADocAccessorOpenUPP(IADocAccessorOpenProcPtr userRoutine)
364  {
365  return (IADocAccessorOpenUPP)NewRoutineDescriptor(
366  (ProcPtr)(userRoutine), uppIADocAccessorOpenProcInfo,
367  GetCurrentArchitecture());
368  }
369 #else
370 #define NewIADocAccessorOpenUPP(userRoutine) \
371  (IADocAccessorOpenUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), \
372  uppIADocAccessorOpenProcInfo, \
373  GetCurrentArchitecture())
374 #endif
375 #endif
376 
385  IADocAccessorCloseUPP
386  NewIADocAccessorCloseUPP(IADocAccessorCloseProcPtr userRoutine);
387 #if !OPAQUE_UPP_TYPES
388  enum
389  {
390  uppIADocAccessorCloseProcInfo = 0x000000F1
391  }; /* 4_bytes Func(4_bytes) */
392 #ifdef __cplusplus
393  inline IADocAccessorCloseUPP
394  NewIADocAccessorCloseUPP(IADocAccessorCloseProcPtr userRoutine)
395  {
396  return (IADocAccessorCloseUPP)NewRoutineDescriptor(
397  (ProcPtr)(userRoutine), uppIADocAccessorCloseProcInfo,
398  GetCurrentArchitecture());
399  }
400 #else
401 #define NewIADocAccessorCloseUPP(userRoutine) \
402  (IADocAccessorCloseUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), \
403  uppIADocAccessorCloseProcInfo, \
404  GetCurrentArchitecture())
405 #endif
406 #endif
407 
416  IADocAccessorReadUPP
417  NewIADocAccessorReadUPP(IADocAccessorReadProcPtr userRoutine);
418 #if !OPAQUE_UPP_TYPES
419  enum
420  {
421  uppIADocAccessorReadProcInfo = 0x00000FF1
422  }; /* 4_bytes Func(4_bytes, 4_bytes, 4_bytes) */
423 #ifdef __cplusplus
424  inline IADocAccessorReadUPP
425  NewIADocAccessorReadUPP(IADocAccessorReadProcPtr userRoutine)
426  {
427  return (IADocAccessorReadUPP)NewRoutineDescriptor(
428  (ProcPtr)(userRoutine), uppIADocAccessorReadProcInfo,
429  GetCurrentArchitecture());
430  }
431 #else
432 #define NewIADocAccessorReadUPP(userRoutine) \
433  (IADocAccessorReadUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), \
434  uppIADocAccessorReadProcInfo, \
435  GetCurrentArchitecture())
436 #endif
437 #endif
438 
447  IASetDocAccessorReadPositionUPP
449  IASetDocAccessorReadPositionProcPtr userRoutine);
450 #if !OPAQUE_UPP_TYPES
451  enum
452  {
453  uppIASetDocAccessorReadPositionProcInfo = 0x00000FF1
454  }; /* 4_bytes Func(4_bytes, 4_bytes, 4_bytes) */
455 #ifdef __cplusplus
456  inline IASetDocAccessorReadPositionUPP NewIASetDocAccessorReadPositionUPP(
457  IASetDocAccessorReadPositionProcPtr userRoutine)
458  {
459  return (IASetDocAccessorReadPositionUPP)NewRoutineDescriptor(
460  (ProcPtr)(userRoutine), uppIASetDocAccessorReadPositionProcInfo,
461  GetCurrentArchitecture());
462  }
463 #else
464 #define NewIASetDocAccessorReadPositionUPP(userRoutine) \
465  (IASetDocAccessorReadPositionUPP) NewRoutineDescriptor( \
466  (ProcPtr)(userRoutine), uppIASetDocAccessorReadPositionProcInfo, \
467  GetCurrentArchitecture())
468 #endif
469 #endif
470 
479  IAGetDocAccessorReadPositionUPP
481  IAGetDocAccessorReadPositionProcPtr userRoutine);
482 #if !OPAQUE_UPP_TYPES
483  enum
484  {
485  uppIAGetDocAccessorReadPositionProcInfo = 0x000003F1
486  }; /* 4_bytes Func(4_bytes, 4_bytes) */
487 #ifdef __cplusplus
488  inline IAGetDocAccessorReadPositionUPP NewIAGetDocAccessorReadPositionUPP(
489  IAGetDocAccessorReadPositionProcPtr userRoutine)
490  {
491  return (IAGetDocAccessorReadPositionUPP)NewRoutineDescriptor(
492  (ProcPtr)(userRoutine), uppIAGetDocAccessorReadPositionProcInfo,
493  GetCurrentArchitecture());
494  }
495 #else
496 #define NewIAGetDocAccessorReadPositionUPP(userRoutine) \
497  (IAGetDocAccessorReadPositionUPP) NewRoutineDescriptor( \
498  (ProcPtr)(userRoutine), uppIAGetDocAccessorReadPositionProcInfo, \
499  GetCurrentArchitecture())
500 #endif
501 #endif
502 
511  IAGetDocAccessorEOFUPP
512  NewIAGetDocAccessorEOFUPP(IAGetDocAccessorEOFProcPtr userRoutine);
513 #if !OPAQUE_UPP_TYPES
514  enum
515  {
516  uppIAGetDocAccessorEOFProcInfo = 0x000003F1
517  }; /* 4_bytes Func(4_bytes, 4_bytes) */
518 #ifdef __cplusplus
519  inline IAGetDocAccessorEOFUPP
520  NewIAGetDocAccessorEOFUPP(IAGetDocAccessorEOFProcPtr userRoutine)
521  {
522  return (IAGetDocAccessorEOFUPP)NewRoutineDescriptor(
523  (ProcPtr)(userRoutine), uppIAGetDocAccessorEOFProcInfo,
524  GetCurrentArchitecture());
525  }
526 #else
527 #define NewIAGetDocAccessorEOFUPP(userRoutine) \
528  (IAGetDocAccessorEOFUPP) NewRoutineDescriptor( \
529  (ProcPtr)(userRoutine), uppIAGetDocAccessorEOFProcInfo, \
530  GetCurrentArchitecture())
531 #endif
532 #endif
533 
542  void
543  DisposeIADocAccessorOpenUPP(IADocAccessorOpenUPP userUPP);
544 #if !OPAQUE_UPP_TYPES
545 #ifdef __cplusplus
546  inline void DisposeIADocAccessorOpenUPP(IADocAccessorOpenUPP userUPP)
547  {
548  DisposeRoutineDescriptor((UniversalProcPtr)userUPP);
549  }
550 #else
551 #define DisposeIADocAccessorOpenUPP(userUPP) DisposeRoutineDescriptor(userUPP)
552 #endif
553 #endif
554 
563  void
564  DisposeIADocAccessorCloseUPP(IADocAccessorCloseUPP userUPP);
565 #if !OPAQUE_UPP_TYPES
566 #ifdef __cplusplus
567  inline void DisposeIADocAccessorCloseUPP(IADocAccessorCloseUPP userUPP)
568  {
569  DisposeRoutineDescriptor((UniversalProcPtr)userUPP);
570  }
571 #else
572 #define DisposeIADocAccessorCloseUPP(userUPP) DisposeRoutineDescriptor(userUPP)
573 #endif
574 #endif
575 
584  void
585  DisposeIADocAccessorReadUPP(IADocAccessorReadUPP userUPP);
586 #if !OPAQUE_UPP_TYPES
587 #ifdef __cplusplus
588  inline void DisposeIADocAccessorReadUPP(IADocAccessorReadUPP userUPP)
589  {
590  DisposeRoutineDescriptor((UniversalProcPtr)userUPP);
591  }
592 #else
593 #define DisposeIADocAccessorReadUPP(userUPP) DisposeRoutineDescriptor(userUPP)
594 #endif
595 #endif
596 
605  void
606  DisposeIASetDocAccessorReadPositionUPP(IASetDocAccessorReadPositionUPP userUPP);
607 #if !OPAQUE_UPP_TYPES
608 #ifdef __cplusplus
610  IASetDocAccessorReadPositionUPP userUPP)
611  {
612  DisposeRoutineDescriptor((UniversalProcPtr)userUPP);
613  }
614 #else
615 #define DisposeIASetDocAccessorReadPositionUPP(userUPP) \
616  DisposeRoutineDescriptor(userUPP)
617 #endif
618 #endif
619 
628  void
629  DisposeIAGetDocAccessorReadPositionUPP(IAGetDocAccessorReadPositionUPP userUPP);
630 #if !OPAQUE_UPP_TYPES
631 #ifdef __cplusplus
633  IAGetDocAccessorReadPositionUPP userUPP)
634  {
635  DisposeRoutineDescriptor((UniversalProcPtr)userUPP);
636  }
637 #else
638 #define DisposeIAGetDocAccessorReadPositionUPP(userUPP) \
639  DisposeRoutineDescriptor(userUPP)
640 #endif
641 #endif
642 
651  void
652  DisposeIAGetDocAccessorEOFUPP(IAGetDocAccessorEOFUPP userUPP);
653 #if !OPAQUE_UPP_TYPES
654 #ifdef __cplusplus
655  inline void DisposeIAGetDocAccessorEOFUPP(IAGetDocAccessorEOFUPP userUPP)
656  {
657  DisposeRoutineDescriptor((UniversalProcPtr)userUPP);
658  }
659 #else
660 #define DisposeIAGetDocAccessorEOFUPP(userUPP) DisposeRoutineDescriptor(userUPP)
661 #endif
662 #endif
663 
672  OSStatus
673  InvokeIADocAccessorOpenUPP(IADocAccessorRef inAccessor,
674  IADocAccessorOpenUPP userUPP);
675 #if !OPAQUE_UPP_TYPES
676 #ifdef __cplusplus
677  inline OSStatus InvokeIADocAccessorOpenUPP(IADocAccessorRef inAccessor,
678  IADocAccessorOpenUPP userUPP)
679  {
680  return (OSStatus)CALL_ONE_PARAMETER_UPP(userUPP, uppIADocAccessorOpenProcInfo,
681  inAccessor);
682  }
683 #else
684 #define InvokeIADocAccessorOpenUPP(inAccessor, userUPP) \
685  (OSStatus) CALL_ONE_PARAMETER_UPP((userUPP), uppIADocAccessorOpenProcInfo, \
686  (inAccessor))
687 #endif
688 #endif
689 
698  OSStatus
699  InvokeIADocAccessorCloseUPP(IADocAccessorRef inAccessor,
700  IADocAccessorCloseUPP userUPP);
701 #if !OPAQUE_UPP_TYPES
702 #ifdef __cplusplus
703  inline OSStatus InvokeIADocAccessorCloseUPP(IADocAccessorRef inAccessor,
704  IADocAccessorCloseUPP userUPP)
705  {
706  return (OSStatus)CALL_ONE_PARAMETER_UPP(
707  userUPP, uppIADocAccessorCloseProcInfo, inAccessor);
708  }
709 #else
710 #define InvokeIADocAccessorCloseUPP(inAccessor, userUPP) \
711  (OSStatus) CALL_ONE_PARAMETER_UPP((userUPP), uppIADocAccessorCloseProcInfo, \
712  (inAccessor))
713 #endif
714 #endif
715 
724  OSStatus
725  InvokeIADocAccessorReadUPP(IADocAccessorRef inAccessor, void *buffer,
726  UInt32 *ioSize, IADocAccessorReadUPP userUPP);
727 #if !OPAQUE_UPP_TYPES
728 #ifdef __cplusplus
729  inline OSStatus InvokeIADocAccessorReadUPP(IADocAccessorRef inAccessor,
730  void *buffer, UInt32 *ioSize,
731  IADocAccessorReadUPP userUPP)
732  {
733  return (OSStatus)CALL_THREE_PARAMETER_UPP(
734  userUPP, uppIADocAccessorReadProcInfo, inAccessor, buffer, ioSize);
735  }
736 #else
737 #define InvokeIADocAccessorReadUPP(inAccessor, buffer, ioSize, userUPP) \
738  (OSStatus) CALL_THREE_PARAMETER_UPP((userUPP), uppIADocAccessorReadProcInfo, \
739  (inAccessor), (buffer), (ioSize))
740 #endif
741 #endif
742 
751  OSStatus
752  InvokeIASetDocAccessorReadPositionUPP(IADocAccessorRef inAccessor,
753  SInt32 inMode, SInt32 inOffset,
754  IASetDocAccessorReadPositionUPP userUPP);
755 #if !OPAQUE_UPP_TYPES
756 #ifdef __cplusplus
757  inline OSStatus
758  InvokeIASetDocAccessorReadPositionUPP(IADocAccessorRef inAccessor,
759  SInt32 inMode, SInt32 inOffset,
760  IASetDocAccessorReadPositionUPP userUPP)
761  {
762  return (OSStatus)CALL_THREE_PARAMETER_UPP(
763  userUPP, uppIASetDocAccessorReadPositionProcInfo, inAccessor, inMode,
764  inOffset);
765  }
766 #else
767 #define InvokeIASetDocAccessorReadPositionUPP(inAccessor, inMode, inOffset, \
768  userUPP) \
769  (OSStatus) CALL_THREE_PARAMETER_UPP((userUPP), \
770  uppIASetDocAccessorReadPositionProcInfo, \
771  (inAccessor), (inMode), (inOffset))
772 #endif
773 #endif
774 
783  OSStatus
784  InvokeIAGetDocAccessorReadPositionUPP(IADocAccessorRef inAccessor,
785  SInt32 *outPostion,
786  IAGetDocAccessorReadPositionUPP userUPP);
787 #if !OPAQUE_UPP_TYPES
788 #ifdef __cplusplus
789  inline OSStatus
790  InvokeIAGetDocAccessorReadPositionUPP(IADocAccessorRef inAccessor,
791  SInt32 *outPostion,
792  IAGetDocAccessorReadPositionUPP userUPP)
793  {
794  return (OSStatus)CALL_TWO_PARAMETER_UPP(
795  userUPP, uppIAGetDocAccessorReadPositionProcInfo, inAccessor, outPostion);
796  }
797 #else
798 #define InvokeIAGetDocAccessorReadPositionUPP(inAccessor, outPostion, userUPP) \
799  (OSStatus) CALL_TWO_PARAMETER_UPP((userUPP), \
800  uppIAGetDocAccessorReadPositionProcInfo, \
801  (inAccessor), (outPostion))
802 #endif
803 #endif
804 
813  OSStatus
814  InvokeIAGetDocAccessorEOFUPP(IADocAccessorRef inAccessor, SInt32 *outEOF,
815  IAGetDocAccessorEOFUPP userUPP);
816 #if !OPAQUE_UPP_TYPES
817 #ifdef __cplusplus
818  inline OSStatus InvokeIAGetDocAccessorEOFUPP(IADocAccessorRef inAccessor,
819  SInt32 *outEOF,
820  IAGetDocAccessorEOFUPP userUPP)
821  {
822  return (OSStatus)CALL_TWO_PARAMETER_UPP(
823  userUPP, uppIAGetDocAccessorEOFProcInfo, inAccessor, outEOF);
824  }
825 #else
826 #define InvokeIAGetDocAccessorEOFUPP(inAccessor, outEOF, userUPP) \
827  (OSStatus) CALL_TWO_PARAMETER_UPP((userUPP), uppIAGetDocAccessorEOFProcInfo, \
828  (inAccessor), (outEOF))
829 #endif
830 #endif
831 
832 #endif /* CALL_NOT_IN_CARBON */
833 
834 #if CALL_NOT_IN_CARBON || OLDROUTINENAMES
835 /* support for pre-Carbon UPP routines: New...Proc and Call...Proc */
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, \
855  inOffset) \
856  InvokeIASetDocAccessorReadPositionUPP(inAccessor, inMode, inOffset, \
857  userRoutine)
858 #define CallIAGetDocAccessorReadPositionProc(userRoutine, inAccessor, \
859  outPostion) \
860  InvokeIAGetDocAccessorReadPositionUPP(inAccessor, outPostion, userRoutine)
861 #define CallIAGetDocAccessorEOFProc(userRoutine, inAccessor, outEOF) \
862  InvokeIAGetDocAccessorEOFUPP(inAccessor, outEOF, userRoutine)
863 #endif /* CALL_NOT_IN_CARBON */
864 
865  /* IADocAccessorRecord */
867  {
868  IADocAccessorRef docAccessor;
869  IADocAccessorOpenUPP OpenDoc;
870  IADocAccessorCloseUPP CloseDoc;
871  IADocAccessorReadUPP ReadDoc;
872  IASetDocAccessorReadPositionUPP SetReadPosition;
873  IAGetDocAccessorReadPositionUPP GetReadPosition;
874  IAGetDocAccessorEOFUPP GetEOF;
875  };
884 #ifndef BUILDING_IAEXTRACTOR
885 #define BUILDING_IAEXTRACTOR 1
886 #endif
887 #if BUILDING_IAEXTRACTOR
888 #if PRAGMA_IMPORT
889 #pragma export on
890 #endif
891 #endif
902 #if CALL_NOT_IN_CARBON
911  OSStatus
912  IAPluginInit(IAPluginInitBlockPtr initBlock, IAPluginRef *outPluginRef);
913 
927  OSStatus
928  IAPluginTerm(IAPluginRef inPluginRef);
929 
942  OSStatus
943  IAGetExtractorVersion(IAPluginRef inPluginRef, UInt32 *outPluginVersion);
944 
957  OSStatus
958  IACountSupportedDocTypes(IAPluginRef inPluginRef, UInt32 *outCount);
959 
973  OSStatus
974  IAGetIndSupportedDocType(IAPluginRef inPluginRef, UInt32 inIndex,
975  char **outMIMEType);
976 
991  OSStatus
992  IAOpenDocument(IAPluginRef inPluginRef, IADocAccessorRecord *inDoc,
993  IADocRef *outDoc);
994 
1007  OSStatus
1008  IACloseDocument(IADocRef inDoc);
1009 
1023  OSStatus
1024  IAGetNextTextRun(IADocRef inDoc, void *buffer, UInt32 *ioSize);
1025 
1042  OSStatus
1043  IAGetTextRunInfo(IADocRef inDoc, char **outEncoding, char **outLanguage);
1044 
1045 #if BUILDING_IAEXTRACTOR
1046 #if PRAGMA_IMPORT
1047 #pragma export off
1048 #endif
1049 #endif
1050 
1051 #endif /* CALL_NOT_IN_CARBON */
1052 
1053 #if PRAGMA_STRUCT_ALIGN
1054 #pragma options align = reset
1055 #elif PRAGMA_STRUCT_PACKPUSH
1056 #pragma pack(pop)
1057 #elif PRAGMA_STRUCT_PACK
1058 #pragma pack()
1059 #endif
1060 
1061 #ifdef PRAGMA_IMPORT_OFF
1062 #pragma import off
1063 #elif PRAGMA_IMPORT
1064 #pragma import reset
1065 #endif
1066 
1067 #ifdef __cplusplus
1068 }
1069 #endif
1070 
1071 #endif /* __IAEXTRACTOR__ */
Set up for compiler independent conditionals.
OSStatus IACountSupportedDocTypes(IAPluginRef inPluginRef, UInt32 *outCount)
OSStatus InvokeIASetDocAccessorReadPositionUPP(IADocAccessorRef inAccessor, SInt32 inMode, SInt32 inOffset, IASetDocAccessorReadPositionUPP userUPP)
void DisposeIAFreeUPP(IAFreeUPP userUPP)
IAGetDocAccessorReadPositionUPP NewIAGetDocAccessorReadPositionUPP(IAGetDocAccessorReadPositionProcPtr userRoutine)
OSStatus InvokeIAGetDocAccessorReadPositionUPP(IADocAccessorRef inAccessor, SInt32 *outPostion, IAGetDocAccessorReadPositionUPP userUPP)
IAFreeUPP NewIAFreeUPP(IAFreeProcPtr userRoutine)
UInt8 InvokeIAIdleUPP(IAIdleUPP userUPP)
IASetDocAccessorReadPositionUPP NewIASetDocAccessorReadPositionUPP(IASetDocAccessorReadPositionProcPtr userRoutine)
OSStatus InvokeIADocAccessorOpenUPP(IADocAccessorRef inAccessor, IADocAccessorOpenUPP userUPP)
OSStatus InvokeIADocAccessorReadUPP(IADocAccessorRef inAccessor, void *buffer, UInt32 *ioSize, IADocAccessorReadUPP userUPP)
void DisposeIADocAccessorOpenUPP(IADocAccessorOpenUPP userUPP)
void DisposeIAAllocUPP(IAAllocUPP userUPP)
OSStatus InvokeIAGetDocAccessorEOFUPP(IADocAccessorRef inAccessor, SInt32 *outEOF, IAGetDocAccessorEOFUPP userUPP)
OSStatus IAGetTextRunInfo(IADocRef inDoc, char **outEncoding, char **outLanguage)
void DisposeIASetDocAccessorReadPositionUPP(IASetDocAccessorReadPositionUPP userUPP)
OSStatus IAGetNextTextRun(IADocRef inDoc, void *buffer, UInt32 *ioSize)
OSStatus IAGetExtractorVersion(IAPluginRef inPluginRef, UInt32 *outPluginVersion)
IAGetDocAccessorEOFUPP NewIAGetDocAccessorEOFUPP(IAGetDocAccessorEOFProcPtr userRoutine)
OSStatus InvokeIADocAccessorCloseUPP(IADocAccessorRef inAccessor, IADocAccessorCloseUPP userUPP)
void DisposeIAGetDocAccessorEOFUPP(IAGetDocAccessorEOFUPP userUPP)
IAIdleUPP NewIAIdleUPP(IAIdleProcPtr userRoutine)
void InvokeIAFreeUPP(void *inObject, IAFreeUPP userUPP)
IADocAccessorReadUPP NewIADocAccessorReadUPP(IADocAccessorReadProcPtr userRoutine)
void DisposeIAIdleUPP(IAIdleUPP userUPP)
IADocAccessorCloseUPP NewIADocAccessorCloseUPP(IADocAccessorCloseProcPtr userRoutine)
OSStatus IAPluginTerm(IAPluginRef inPluginRef)
void DisposeIAGetDocAccessorReadPositionUPP(IAGetDocAccessorReadPositionUPP userUPP)
OSStatus IACloseDocument(IADocRef inDoc)
void DisposeIADocAccessorCloseUPP(IADocAccessorCloseUPP userUPP)
OSStatus IAGetIndSupportedDocType(IAPluginRef inPluginRef, UInt32 inIndex, char **outMIMEType)
OSStatus IAPluginInit(IAPluginInitBlockPtr initBlock, IAPluginRef *outPluginRef)
OSStatus IAOpenDocument(IAPluginRef inPluginRef, IADocAccessorRecord *inDoc, IADocRef *outDoc)
void * InvokeIAAllocUPP(UInt32 inSize, IAAllocUPP userUPP)
IADocAccessorOpenUPP NewIADocAccessorOpenUPP(IADocAccessorOpenProcPtr userRoutine)
IAAllocUPP NewIAAllocUPP(IAAllocProcPtr userRoutine)
void DisposeIADocAccessorReadUPP(IADocAccessorReadUPP userUPP)
OSErr codes.
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