topical media & game development

talk show tell print

lib-of-vs-libs-QTDevWin-CIncludes-FileTransfers.h / h



  /*
       File:       FileTransfers.h
   
       Contains:   CommToolbox File Transfer Manager Interfaces.
   
       Version:    Technology: System 7.5
                   Release:    QuickTime 6.0.2
   
       Copyright:  (c) 1988-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 __FILETRANSFERS__
  define __FILETRANSFERS__
  
  ifndef __CONDITIONALMACROS__
  include <ConditionalMacros.h>
  endif
  
  ifndef __STANDARDFILE__
  include <StandardFile.h>
  endif
  
  ifndef __CTBUTILITIES__
  include <CTBUtilities.h>
  endif
  
  ifndef __CONNECTIONS__
  include <Connections.h>
  endif
  
  ifndef __FILES__
  include <Files.h>
  endif
  
  ifndef __TERMINALS__
  include <Terminals.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
  
  if CALL_NOT_IN_CARBON
  enum {
      curFTVersion                = 2                             /* current file transfer manager version*/
  };
  
  enum {
                                                                  /* FTErr    */
      ftGenericError              = -1,
      ftNoErr                     = 0,
      ftRejected                  = 1,
      ftFailed                    = 2,
      ftTimeOut                   = 3,
      ftTooManyRetry              = 4,
      ftNotEnoughDSpace           = 5,
      ftRemoteCancel              = 6,
      ftWrongFormat               = 7,
      ftNoTools                   = 8,
      ftUserCancel                = 9,
      ftNotSupported              = 10
  };
  
  typedef OSErr                           FTErr;
  enum {
      ftIsFTMode                  = 1 << 0,
      ftNoMenus                   = 1 << 1,
      ftQuiet                     = 1 << 2,
      ftConfigChanged             = 1 << 4,
      ftSucc                      = 1 << 7
  };
  
  typedef unsigned long                   FTFlags;
  enum {
      ftSameCircuit               = 1 << 0,
      ftSendDisable               = 1 << 1,
      ftReceiveDisable            = 1 << 2,
      ftTextOnly                  = 1 << 3,
      ftNoStdFile                 = 1 << 4,
      ftMultipleFileSend          = 1 << 5
  };
  
  typedef unsigned short                  FTAttributes;
  enum {
      ftReceiving                 = 0,
      ftTransmitting              = 1,
      ftFullDuplex                = 2                             /* (16) added ftFullDuplex bit.*/
  };
  
  typedef unsigned short                  FTDirection;
  typedef CALLBACK_API( long , FileTransferDefProcPtr )(TermHandle hTerm, short msg, long p1, long p2, long p3);
  /*  application routines type definitions */
  typedef struct FTRecord                 FTRecord;
  typedef FTRecord *                      FTPtr;
  typedef FTPtr *                         FTHandle;
  typedef CALLBACK_API( OSErr , FileTransferReadProcPtr )(unsigned long *count, Ptr pData, long refCon, short fileMsg);
  typedef CALLBACK_API( OSErr , FileTransferWriteProcPtr )(unsigned long *count, Ptr pData, long refCon, short fileMsg);
  typedef CALLBACK_API( Size , FileTransferSendProcPtr )(Ptr thePtr, long theSize, long refCon, CMChannel channel, CMFlags flag);
  typedef CALLBACK_API( Size , FileTransferReceiveProcPtr )(Ptr thePtr, long theSize, long refCon, CMChannel channel, CMFlags *flag);
  typedef CALLBACK_API( OSErr , FileTransferEnvironsProcPtr )(long refCon, ConnEnvironRec *theEnvirons);
  typedef CALLBACK_API( void , FileTransferNotificationProcPtr )(FTHandle hFT, const FSSpec *pFSSpec);
  typedef CALLBACK_API( void , FileTransferChooseIdleProcPtr )(void );
  typedef STACK_UPP_TYPE(FileTransferDefProcPtr)                  FileTransferDefUPP;
  typedef STACK_UPP_TYPE(FileTransferReadProcPtr)                 FileTransferReadUPP;
  typedef STACK_UPP_TYPE(FileTransferWriteProcPtr)                FileTransferWriteUPP;
  typedef STACK_UPP_TYPE(FileTransferSendProcPtr)                 FileTransferSendUPP;
  typedef STACK_UPP_TYPE(FileTransferReceiveProcPtr)              FileTransferReceiveUPP;
  typedef STACK_UPP_TYPE(FileTransferEnvironsProcPtr)             FileTransferEnvironsUPP;
  typedef STACK_UPP_TYPE(FileTransferNotificationProcPtr)         FileTransferNotificationUPP;
  typedef STACK_UPP_TYPE(FileTransferChooseIdleProcPtr)           FileTransferChooseIdleUPP;
  
  struct FTRecord {
      short                           procID;
      FTFlags                         flags;
      FTErr                           errCode;
      long                            refCon;
      long                            userData;
      FileTransferDefUPP              defProc;
      Ptr                             config;
      Ptr                             oldConfig;
      FileTransferEnvironsUPP         environsProc;
      long                            reserved1;
      long                            reserved2;
      Ptr                             ftPrivate;
      FileTransferSendUPP             sendProc;
      FileTransferReceiveUPP          recvProc;
      FileTransferWriteUPP            writeProc;
      FileTransferReadUPP             readProc;
      WindowPtr                       owner;
      FTDirection                     direction;
      SFReply                         theReply;
      long                            writePtr;
      long                            readPtr;
      Ptr                             theBuf;
      long                            bufSize;
      Str255                          autoRec;
      FTAttributes                    attributes;
  };
  
  typedef unsigned short                  FTCompletionKind;
  enum {
                                                                  /* FTReadProc messages */
      ftReadOpenFile              = 0,                            /* count = forkFlags, buffer = pblock from PBGetFInfo */
      ftReadDataFork              = 1,
      ftReadRsrcFork              = 2,
      ftReadAbort                 = 3,
      ftReadComplete              = 4,
      ftReadSetFPos               = 6,                            /* count = forkFlags, buffer = pBlock same as PBSetFPos */
      ftReadGetFPos               = 7                             /* count = forkFlags, buffer = pBlock same as PBGetFPos */
  };
  
  enum {
                                                                  /* FTWriteProc messages */
      ftWriteOpenFile             = 0,                            /* count = forkFlags, buffer = pblock from PBGetFInfo */
      ftWriteDataFork             = 1,
      ftWriteRsrcFork             = 2,
      ftWriteAbort                = 3,
      ftWriteComplete             = 4,
      ftWriteFileInfo             = 5,
      ftWriteSetFPos              = 6,                            /* count = forkFlags, buffer = pBlock same as PBSetFPos */
      ftWriteGetFPos              = 7                             /* count = forkFlags, buffer = pBlock same as PBGetFPos */
  };
  
  enum {
                                                                  /*    fork flags */
      ftOpenDataFork              = 1,
      ftOpenRsrcFork              = 2
  };
  
  if OPAQUE_UPP_TYPES
  if CALL_NOT_IN_CARBON
      EXTERN_API(FileTransferDefUPP)
      NewFileTransferDefUPP          (FileTransferDefProcPtr  userRoutine);
  
      EXTERN_API(FileTransferReadUPP)
      NewFileTransferReadUPP         (FileTransferReadProcPtr userRoutine);
  
      EXTERN_API(FileTransferWriteUPP)
      NewFileTransferWriteUPP        (FileTransferWriteProcPtr userRoutine);
  
      EXTERN_API(FileTransferSendUPP)
      NewFileTransferSendUPP         (FileTransferSendProcPtr userRoutine);
  
      EXTERN_API(FileTransferReceiveUPP)
      NewFileTransferReceiveUPP      (FileTransferReceiveProcPtr userRoutine);
  
      EXTERN_API(FileTransferEnvironsUPP)
      NewFileTransferEnvironsUPP     (FileTransferEnvironsProcPtr userRoutine);
  
      EXTERN_API(FileTransferNotificationUPP)
      NewFileTransferNotificationUPP    (FileTransferNotificationProcPtr userRoutine);
  
      EXTERN_API(FileTransferChooseIdleUPP)
      NewFileTransferChooseIdleUPP    (FileTransferChooseIdleProcPtr userRoutine);
  
      EXTERN_API(void)
      DisposeFileTransferDefUPP      (FileTransferDefUPP      userUPP);
  
      EXTERN_API(void)
      DisposeFileTransferReadUPP     (FileTransferReadUPP     userUPP);
  
      EXTERN_API(void)
      DisposeFileTransferWriteUPP    (FileTransferWriteUPP    userUPP);
  
      EXTERN_API(void)
      DisposeFileTransferSendUPP     (FileTransferSendUPP     userUPP);
  
      EXTERN_API(void)
      DisposeFileTransferReceiveUPP    (FileTransferReceiveUPP userUPP);
  
      EXTERN_API(void)
      DisposeFileTransferEnvironsUPP    (FileTransferEnvironsUPP userUPP);
  
      EXTERN_API(void)
      DisposeFileTransferNotificationUPP    (FileTransferNotificationUPP userUPP);
  
      EXTERN_API(void)
      DisposeFileTransferChooseIdleUPP    (FileTransferChooseIdleUPP userUPP);
  
      EXTERN_API(long)
      InvokeFileTransferDefUPP       (TermHandle              hTerm,
                                      short                   msg,
                                      long                    p1,
                                      long                    p2,
                                      long                    p3,
                                      FileTransferDefUPP      userUPP);
  
      EXTERN_API(OSErr)
      InvokeFileTransferReadUPP      (unsigned long *         count,
                                      Ptr                     pData,
                                      long                    refCon,
                                      short                   fileMsg,
                                      FileTransferReadUPP     userUPP);
  
      EXTERN_API(OSErr)
      InvokeFileTransferWriteUPP     (unsigned long *         count,
                                      Ptr                     pData,
                                      long                    refCon,
                                      short                   fileMsg,
                                      FileTransferWriteUPP    userUPP);
  
      EXTERN_API(Size)
      InvokeFileTransferSendUPP      (Ptr                     thePtr,
                                      long                    theSize,
                                      long                    refCon,
                                      CMChannel               channel,
                                      CMFlags                 flag,
                                      FileTransferSendUPP     userUPP);
  
      EXTERN_API(Size)
      InvokeFileTransferReceiveUPP    (Ptr                    thePtr,
                                      long                    theSize,
                                      long                    refCon,
                                      CMChannel               channel,
                                      CMFlags *               flag,
                                      FileTransferReceiveUPP  userUPP);
  
      EXTERN_API(OSErr)
      InvokeFileTransferEnvironsUPP    (long                  refCon,
                                      ConnEnvironRec *        theEnvirons,
                                      FileTransferEnvironsUPP userUPP);
  
      EXTERN_API(void)
      InvokeFileTransferNotificationUPP    (FTHandle          hFT,
                                      const FSSpec *          pFSSpec,
                                      FileTransferNotificationUPP userUPP);
  
      EXTERN_API(void)
      InvokeFileTransferChooseIdleUPP    (FileTransferChooseIdleUPP userUPP);
  
  endif  /* CALL_NOT_IN_CARBON */
  
  else
      enum { uppFileTransferDefProcInfo = 0x0000FEF0 };               /* pascal 4_bytes Func(4_bytes, 2_bytes, 4_bytes, 4_bytes, 4_bytes) */
      enum { uppFileTransferReadProcInfo = 0x00002FE0 };              /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes, 2_bytes) */
      enum { uppFileTransferWriteProcInfo = 0x00002FE0 };             /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes, 2_bytes) */
      enum { uppFileTransferSendProcInfo = 0x0000AFF0 };              /* pascal 4_bytes Func(4_bytes, 4_bytes, 4_bytes, 2_bytes, 2_bytes) */
      enum { uppFileTransferReceiveProcInfo = 0x0000EFF0 };           /* pascal 4_bytes Func(4_bytes, 4_bytes, 4_bytes, 2_bytes, 4_bytes) */
      enum { uppFileTransferEnvironsProcInfo = 0x000003E0 };          /* pascal 2_bytes Func(4_bytes, 4_bytes) */
      enum { uppFileTransferNotificationProcInfo = 0x000003C0 };      /* pascal no_return_value Func(4_bytes, 4_bytes) */
      enum { uppFileTransferChooseIdleProcInfo = 0x00000000 };        /* pascal no_return_value Func() */
      #define NewFileTransferDefUPP(userRoutine)                      (FileTransferDefUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppFileTransferDefProcInfo, GetCurrentArchitecture())
      #define NewFileTransferReadUPP(userRoutine)                     (FileTransferReadUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppFileTransferReadProcInfo, GetCurrentArchitecture())
      #define NewFileTransferWriteUPP(userRoutine)                    (FileTransferWriteUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppFileTransferWriteProcInfo, GetCurrentArchitecture())
      #define NewFileTransferSendUPP(userRoutine)                     (FileTransferSendUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppFileTransferSendProcInfo, GetCurrentArchitecture())
      #define NewFileTransferReceiveUPP(userRoutine)                  (FileTransferReceiveUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppFileTransferReceiveProcInfo, GetCurrentArchitecture())
      #define NewFileTransferEnvironsUPP(userRoutine)                 (FileTransferEnvironsUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppFileTransferEnvironsProcInfo, GetCurrentArchitecture())
      #define NewFileTransferNotificationUPP(userRoutine)             (FileTransferNotificationUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppFileTransferNotificationProcInfo, GetCurrentArchitecture())
      #define NewFileTransferChooseIdleUPP(userRoutine)               (FileTransferChooseIdleUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppFileTransferChooseIdleProcInfo, GetCurrentArchitecture())
      #define DisposeFileTransferDefUPP(userUPP)                      DisposeRoutineDescriptor(userUPP)
      #define DisposeFileTransferReadUPP(userUPP)                     DisposeRoutineDescriptor(userUPP)
      #define DisposeFileTransferWriteUPP(userUPP)                    DisposeRoutineDescriptor(userUPP)
      #define DisposeFileTransferSendUPP(userUPP)                     DisposeRoutineDescriptor(userUPP)
      #define DisposeFileTransferReceiveUPP(userUPP)                  DisposeRoutineDescriptor(userUPP)
      #define DisposeFileTransferEnvironsUPP(userUPP)                 DisposeRoutineDescriptor(userUPP)
      #define DisposeFileTransferNotificationUPP(userUPP)             DisposeRoutineDescriptor(userUPP)
      #define DisposeFileTransferChooseIdleUPP(userUPP)               DisposeRoutineDescriptor(userUPP)
      #define InvokeFileTransferDefUPP(hTerm, msg, p1, p2, p3, userUPP)  (long)CALL_FIVE_PARAMETER_UPP((userUPP), uppFileTransferDefProcInfo, (hTerm), (msg), (p1), (p2), (p3))
      #define InvokeFileTransferReadUPP(count, pData, refCon, fileMsg, userUPP)  (OSErr)CALL_FOUR_PARAMETER_UPP((userUPP), uppFileTransferReadProcInfo, (count), (pData), (refCon), (fileMsg))
      #define InvokeFileTransferWriteUPP(count, pData, refCon, fileMsg, userUPP)  (OSErr)CALL_FOUR_PARAMETER_UPP((userUPP), uppFileTransferWriteProcInfo, (count), (pData), (refCon), (fileMsg))
      #define InvokeFileTransferSendUPP(thePtr, theSize, refCon, channel, flag, userUPP)  (Size)CALL_FIVE_PARAMETER_UPP((userUPP), uppFileTransferSendProcInfo, (thePtr), (theSize), (refCon), (channel), (flag))
      #define InvokeFileTransferReceiveUPP(thePtr, theSize, refCon, channel, flag, userUPP)  (Size)CALL_FIVE_PARAMETER_UPP((userUPP), uppFileTransferReceiveProcInfo, (thePtr), (theSize), (refCon), (channel), (flag))
      #define InvokeFileTransferEnvironsUPP(refCon, theEnvirons, userUPP)  (OSErr)CALL_TWO_PARAMETER_UPP((userUPP), uppFileTransferEnvironsProcInfo, (refCon), (theEnvirons))
      #define InvokeFileTransferNotificationUPP(hFT, pFSSpec, userUPP)  CALL_TWO_PARAMETER_UPP((userUPP), uppFileTransferNotificationProcInfo, (hFT), (pFSSpec))
      #define InvokeFileTransferChooseIdleUPP(userUPP)                CALL_ZERO_PARAMETER_UPP((userUPP), uppFileTransferChooseIdleProcInfo)
  endif
  /* support for pre-Carbon UPP routines: NewXXXProc and CallXXXProc */
  define NewFileTransferDefProc(userRoutine)                     NewFileTransferDefUPP(userRoutine)
  define NewFileTransferReadProc(userRoutine)                    NewFileTransferReadUPP(userRoutine)
  define NewFileTransferWriteProc(userRoutine)                   NewFileTransferWriteUPP(userRoutine)
  define NewFileTransferSendProc(userRoutine)                    NewFileTransferSendUPP(userRoutine)
  define NewFileTransferReceiveProc(userRoutine)                 NewFileTransferReceiveUPP(userRoutine)
  define NewFileTransferEnvironsProc(userRoutine)                NewFileTransferEnvironsUPP(userRoutine)
  define NewFileTransferNotificationProc(userRoutine)            NewFileTransferNotificationUPP(userRoutine)
  define NewFileTransferChooseIdleProc(userRoutine)              NewFileTransferChooseIdleUPP(userRoutine)
  define CallFileTransferDefProc(userRoutine, hTerm, msg, p1, p2, p3) InvokeFileTransferDefUPP(hTerm, msg, p1, p2, p3, userRoutine)
  define CallFileTransferReadProc(userRoutine, count, pData, refCon, fileMsg) InvokeFileTransferReadUPP(count, pData, refCon, fileMsg, userRoutine)
  define CallFileTransferWriteProc(userRoutine, count, pData, refCon, fileMsg) InvokeFileTransferWriteUPP(count, pData, refCon, fileMsg, userRoutine)
  define CallFileTransferSendProc(userRoutine, thePtr, theSize, refCon, channel, flag) InvokeFileTransferSendUPP(thePtr, theSize, refCon, channel, flag, userRoutine)
  define CallFileTransferReceiveProc(userRoutine, thePtr, theSize, refCon, channel, flag) InvokeFileTransferReceiveUPP(thePtr, theSize, refCon, channel, flag, userRoutine)
  define CallFileTransferEnvironsProc(userRoutine, refCon, theEnvirons) InvokeFileTransferEnvironsUPP(refCon, theEnvirons, userRoutine)
  define CallFileTransferNotificationProc(userRoutine, hFT, pFSSpec) InvokeFileTransferNotificationUPP(hFT, pFSSpec, userRoutine)
  define CallFileTransferChooseIdleProc(userRoutine)             InvokeFileTransferChooseIdleUPP(userRoutine)
  if CALL_NOT_IN_CARBON
  EXTERN_API( FTErr )
  InitFT                          (void);
  
  EXTERN_API( Handle )
  FTGetVersion                    (FTHandle               hFT);
  
  EXTERN_API( short )
  FTGetFTVersion                  (void);
  
  EXTERN_API( FTHandle )
  FTNew                           (short                  procID,
                                   FTFlags                flags,
                                   FileTransferSendUPP    sendProc,
                                   FileTransferReceiveUPP  recvProc,
                                   FileTransferReadUPP    readProc,
                                   FileTransferWriteUPP   writeProc,
                                   FileTransferEnvironsUPP  environsProc,
                                   WindowPtr              owner,
                                   long                   refCon,
                                   long                   userData);
  
  EXTERN_API( void )
  FTDispose                       (FTHandle               hFT);
  
  EXTERN_API( FTErr )
  FTStart                         (FTHandle               hFT,
                                   FTDirection            direction,
                                   const SFReply *        fileInfo);
  
  EXTERN_API( FTErr )
  FTAbort                         (FTHandle               hFT);
  
  EXTERN_API( FTErr )
  FTSend                          (FTHandle               hFT,
                                   short                  numFiles,
                                   FSSpecArrayPtr         pFSSpec,
                                   FileTransferNotificationUPP  notifyProc);
  
  EXTERN_API( FTErr )
  FTReceive                       (FTHandle               hFT,
                                   FSSpecPtr              pFSSpec,
                                   FileTransferNotificationUPP  notifyProc);
  
  EXTERN_API( void )
  FTExec                          (FTHandle               hFT);
  
  EXTERN_API( void )
  FTActivate                      (FTHandle               hFT,
                                   Boolean                activate);
  
  EXTERN_API( void )
  FTResume                        (FTHandle               hFT,
                                   Boolean                resume);
  
  EXTERN_API( Boolean )
  FTMenu                          (FTHandle               hFT,
                                   short                  menuID,
                                   short                  item);
  
  EXTERN_API( short )
  FTChoose                        (FTHandle *             hFT,
                                   Point                  where,
                                   FileTransferChooseIdleUPP  idleProc);
  
  EXTERN_API( void )
  FTEvent                         (FTHandle               hFT,
                                   const EventRecord *    theEvent);
  
  EXTERN_API( Boolean )
  FTValidate                      (FTHandle               hFT);
  
  EXTERN_API( void )
  FTDefault                       (Ptr *                  theConfig,
                                   short                  procID,
                                   Boolean                allocate);
  
  EXTERN_API( Handle )
  FTSetupPreflight                (short                  procID,
                                   long *                 magicCookie);
  
  EXTERN_API( void )
  FTSetupSetup                    (short                  procID,
                                   const void *           theConfig,
                                   short                  count,
                                   DialogPtr              theDialog,
                                   long *                 magicCookie);
  
  EXTERN_API( Boolean )
  FTSetupFilter                   (short                  procID,
                                   const void *           theConfig,
                                   short                  count,
                                   DialogPtr              theDialog,
                                   EventRecord *          theEvent,
                                   short *                theItem,
                                   long *                 magicCookie);
  
  EXTERN_API( void )
  FTSetupItem                     (short                  procID,
                                   const void *           theConfig,
                                   short                  count,
                                   DialogPtr              theDialog,
                                   short *                theItem,
                                   long *                 magicCookie);
  
  EXTERN_API( void )
  FTSetupXCleanup                 (short                  procID,
                                   const void *           theConfig,
                                   short                  count,
                                   DialogPtr              theDialog,
                                   Boolean                OKed,
                                   long *                 magicCookie);
  
  EXTERN_API( void )
  FTSetupPostflight               (short                  procID);
  
  EXTERN_API( Ptr )
  FTGetConfig                     (FTHandle               hFT);
  
  EXTERN_API( short )
  FTSetConfig                     (FTHandle               hFT,
                                   const void *           thePtr);
  
  EXTERN_API( FTErr )
  FTIntlToEnglish                 (FTHandle               hFT,
                                   const void *           inputPtr,
                                   Ptr *                  outputPtr,
                                   short                  language);
  
  EXTERN_API( FTErr )
  FTEnglishToIntl                 (FTHandle               hFT,
                                   const void *           inputPtr,
                                   Ptr *                  outputPtr,
                                   short                  language);
  
  EXTERN_API( void )
  FTGetToolName                   (short                  procID,
                                   Str255                 name);
  
  EXTERN_API( short )
  FTGetProcID                     (ConstStr255Param       name);
  
  EXTERN_API( void )
  FTSetRefCon                     (FTHandle               hFT,
                                   long                   refCon);
  
  EXTERN_API( long )
  FTGetRefCon                     (FTHandle               hFT);
  
  EXTERN_API( void )
  FTSetUserData                   (FTHandle               hFT,
                                   long                   userData);
  
  EXTERN_API( long )
  FTGetUserData                   (FTHandle               hFT);
  
  EXTERN_API( void )
  FTGetErrorString                (FTHandle               hFT,
                                   short                  id,
                                   Str255                 errMsg);
  
  /*
      These Async routines were added to InterfaceLib in System 7.5
  */
  EXTERN_API( FTErr )
  FTSendAsync                     (FTHandle               hFT,
                                   short                  numFiles,
                                   FSSpecArrayPtr         pFSSpec,
                                   FileTransferNotificationUPP  notifyProc);
  
  EXTERN_API( FTErr )
  FTReceiveAsync                  (FTHandle               hFT,
                                   FSSpecPtr              pFSSpec,
                                   FileTransferNotificationUPP  notifyProc);
  
  EXTERN_API( FTErr )
  FTCompletionAsync               (FTHandle               hFT,
                                   FTCompletionKind       completionCall);
  
  endif  /* CALL_NOT_IN_CARBON */
  
  endif  /* CALL_NOT_IN_CARBON */
  
  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 /* __FILETRANSFERS__ */
  
  


(C) Æliens 04/09/2009

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.