topical media & game development

talk show tell print

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



  /*
       File:       CTBUtilities.h
   
       Contains:   Communications Toolbox Utilities 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 __CTBUTILITIES__
  define __CTBUTILITIES__
  
  ifndef __CONDITIONALMACROS__
  include <ConditionalMacros.h>
  endif
  
  ifndef __MACTYPES__
  include <MacTypes.h>
  endif
  
  ifndef __MIXEDMODE__
  include <MixedMode.h>
  endif
  
  ifndef __DIALOGS__
  include <Dialogs.h>
  endif
  
  ifndef __APPLETALK__
  include <AppleTalk.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 {
      curCTBUVersion              = 2                             /* version of Comm Toolbox Utilities*/
  };
  
  enum {
                                                                  /*    Error codes/types    */
      ctbuGenericError            = -1,
      ctbuNoErr                   = 0
  };
  
  typedef OSErr                           CTBUErr;
  enum {
      chooseDisaster              = -2,
      chooseFailed                = -1,
      chooseAborted               = 0,
      chooseOKMinor               = 1,
      chooseOKMajor               = 2,
      chooseCancel                = 3
  };
  
  typedef unsigned short                  ChooseReturnCode;
  enum {
      nlOk                        = 0,
      nlCancel                    = 1,
      nlEject                     = 2
  };
  
  typedef unsigned short                  NuLookupReturnCode;
  enum {
      nameInclude                 = 1,
      nameDisable                 = 2,
      nameReject                  = 3
  };
  
  typedef unsigned short                  NameFilterReturnCode;
  enum {
      zoneInclude                 = 1,
      zoneDisable                 = 2,
      zoneReject                  = 3
  };
  
  typedef unsigned short                  ZoneFilterReturnCode;
  enum {
                                                                  /*    Values for hookProc items   */
      hookOK                      = 1,
      hookCancel                  = 2,
      hookOutline                 = 3,
      hookTitle                   = 4,
      hookItemList                = 5,
      hookZoneTitle               = 6,
      hookZoneList                = 7,
      hookLine                    = 8,
      hookVersion                 = 9,
      hookReserved1               = 10,
      hookReserved2               = 11,
      hookReserved3               = 12,
      hookReserved4               = 13,                           /*    "virtual" hookProc items   */
      hookNull                    = 100,
      hookItemRefresh             = 101,
      hookZoneRefresh             = 102,
      hookEject                   = 103,
      hookPreflight               = 104,
      hookPostflight              = 105,
      hookKeyBase                 = 1000
  };
  
  /*  NuLookup structures/constants   */
  
  struct NLTypeEntry {
      Handle                          hIcon;
      Str32                           typeStr;
  };
  typedef struct NLTypeEntry              NLTypeEntry;
  
  typedef NLTypeEntry                     NLType[4];
  
  struct NBPReply {
      EntityName                      theEntity;
      AddrBlock                       theAddr;
  };
  typedef struct NBPReply                 NBPReply;
  typedef CALLBACK_API( short , DialogHookProcPtr )(short item, DialogPtr theDialog);
  typedef CALLBACK_API( short , NameFilterProcPtr )(const EntityName *theEntity)/*  (22) added const */;
  typedef CALLBACK_API( short , ZoneFilterProcPtr )(ConstStr32Param theZone);
  typedef STACK_UPP_TYPE(DialogHookProcPtr)                       DialogHookUPP;
  typedef STACK_UPP_TYPE(NameFilterProcPtr)                       NameFilterUPP;
  typedef STACK_UPP_TYPE(ZoneFilterProcPtr)                       ZoneFilterUPP;
  if OPAQUE_UPP_TYPES
  if CALL_NOT_IN_CARBON
      EXTERN_API(DialogHookUPP)
      NewDialogHookUPP               (DialogHookProcPtr       userRoutine);
  
      EXTERN_API(NameFilterUPP)
      NewNameFilterUPP               (NameFilterProcPtr       userRoutine);
  
      EXTERN_API(ZoneFilterUPP)
      NewZoneFilterUPP               (ZoneFilterProcPtr       userRoutine);
  
      EXTERN_API(void)
      DisposeDialogHookUPP           (DialogHookUPP           userUPP);
  
      EXTERN_API(void)
      DisposeNameFilterUPP           (NameFilterUPP           userUPP);
  
      EXTERN_API(void)
      DisposeZoneFilterUPP           (ZoneFilterUPP           userUPP);
  
      EXTERN_API(short)
      InvokeDialogHookUPP            (short                   item,
                                      DialogPtr               theDialog,
                                      DialogHookUPP           userUPP);
  
      EXTERN_API(short)
      InvokeNameFilterUPP            (const EntityName *      theEntity,
                                      NameFilterUPP           userUPP);
  
      EXTERN_API(short)
      InvokeZoneFilterUPP            (ConstStr32Param         theZone,
                                      ZoneFilterUPP           userUPP);
  
  endif  /* CALL_NOT_IN_CARBON */
  
  else
      enum { uppDialogHookProcInfo = 0x000003A0 };                    /* pascal 2_bytes Func(2_bytes, 4_bytes) */
      enum { uppNameFilterProcInfo = 0x000000E0 };                    /* pascal 2_bytes Func(4_bytes) */
      enum { uppZoneFilterProcInfo = 0x000000E0 };                    /* pascal 2_bytes Func(4_bytes) */
      #define NewDialogHookUPP(userRoutine)                           (DialogHookUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppDialogHookProcInfo, GetCurrentArchitecture())
      #define NewNameFilterUPP(userRoutine)                           (NameFilterUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppNameFilterProcInfo, GetCurrentArchitecture())
      #define NewZoneFilterUPP(userRoutine)                           (ZoneFilterUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppZoneFilterProcInfo, GetCurrentArchitecture())
      #define DisposeDialogHookUPP(userUPP)                           DisposeRoutineDescriptor(userUPP)
      #define DisposeNameFilterUPP(userUPP)                           DisposeRoutineDescriptor(userUPP)
      #define DisposeZoneFilterUPP(userUPP)                           DisposeRoutineDescriptor(userUPP)
      #define InvokeDialogHookUPP(item, theDialog, userUPP)           (short)CALL_TWO_PARAMETER_UPP((userUPP), uppDialogHookProcInfo, (item), (theDialog))
      #define InvokeNameFilterUPP(theEntity, userUPP)                 (short)CALL_ONE_PARAMETER_UPP((userUPP), uppNameFilterProcInfo, (theEntity))
      #define InvokeZoneFilterUPP(theZone, userUPP)                   (short)CALL_ONE_PARAMETER_UPP((userUPP), uppZoneFilterProcInfo, (theZone))
  endif
  /* support for pre-Carbon UPP routines: NewXXXProc and CallXXXProc */
  define NewDialogHookProc(userRoutine)                          NewDialogHookUPP(userRoutine)
  define NewNameFilterProc(userRoutine)                          NewNameFilterUPP(userRoutine)
  define NewZoneFilterProc(userRoutine)                          NewZoneFilterUPP(userRoutine)
  define CallDialogHookProc(userRoutine, item, theDialog)        InvokeDialogHookUPP(item, theDialog, userRoutine)
  define CallNameFilterProc(userRoutine, theEntity)              InvokeNameFilterUPP(theEntity, userRoutine)
  define CallZoneFilterProc(userRoutine, theZone)                InvokeZoneFilterUPP(theZone, userRoutine)
  
  if CALL_NOT_IN_CARBON
  EXTERN_API( CTBUErr )
  InitCTBUtilities                (void);
  
  EXTERN_API( short )
  CTBGetCTBVersion                (void);
  
  EXTERN_API( short )
  StandardNBP                     (Point                  where,
                                   ConstStr255Param       prompt,
                                   short                  numTypes,
                                   NLType                 typeList,
                                   NameFilterUPP          nameFilter,
                                   ZoneFilterUPP          zoneFilter,
                                   DialogHookUPP          hook,
                                   NBPReply *             theReply);
  
  EXTERN_API( short )
  CustomNBP                       (Point                  where,
                                   ConstStr255Param       prompt,
                                   short                  numTypes,
                                   NLType                 typeList,
                                   NameFilterUPP          nameFilter,
                                   ZoneFilterUPP          zoneFilter,
                                   DialogHookUPP          hook,
                                   long                   userData,
                                   short                  dialogID,
                                   ModalFilterUPP         filter,
                                   NBPReply *             theReply);
  
  endif  /* CALL_NOT_IN_CARBON */
  
  if OLDROUTINENAMES
  define NuLookup(where, prompt, numTypes, typeList, nameFilter, zoneFilter, \
  hook, theReply)                                                             \
  StandardNBP(where, prompt, numTypes, typeList, nameFilter, zoneFilter,      \
  hook, theReply)
  define NuPLookup(where, prompt, numTypes, typeList, nameFilter,                \
  zoneFilter, hook, userData, dialogID, filter, theReply)                     \
  CustomNBP(where, prompt, numTypes, typeList, nameFilter,                        \
  zoneFilter, hook, userData, dialogID, filter, theReply)
  endif  /* OLDROUTINENAMES */
  
  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 /* __CTBUTILITIES__ */
  
  


(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.