home *** CD-ROM | disk | FTP | other *** search
/ Mac-Source 1994 July / Mac-Source_July_1994.iso / HyperCard / reg_exp.XFCN / HyperXCmd.h < prev    next >
Text File  |  1989-09-18  |  3KB  |  102 lines

  1. /*
  2.     HyperXCmd.h  Definitions for calling all standard 
  3.     HyperCard callback routines from C.
  4.     ©Apple Computer, Inc. 1987
  5.     All Rights Reserved.
  6.  
  7.     See CFlash.C for an example of how to include this module in your 
  8.     C program.
  9. */
  10.  
  11.  
  12. typedef struct {
  13.     short int    paramCount;     
  14.     Handle        params[16];
  15.     Handle        returnValue;      
  16.     Boolean        passFlag; 
  17.       
  18.     void        (*entryPoint)();    /* to call back to HyperCard */
  19.     short int    request;  
  20.     short int    result;  
  21.     long        inArgs[8];
  22.     long        outArgs[4];
  23.    } XCmdBlock, *XCmdBlockPtr;
  24.    
  25. typedef unsigned char    Str31[32];
  26. typedef double            extended;
  27.  
  28.   /*
  29.    * Result codes
  30.    */
  31. #define    xresSucc         0
  32. #define    xresFail         1 
  33. #define    xresNotImp         2 
  34.   
  35.   /*
  36.    * Request codes
  37.    */
  38. #define    xreqSendCardMessage        1 
  39. #define    xreqEvalExpr            2 
  40. #define    xreqStringLength        3 
  41. #define    xreqStringMatch            4 
  42. #define xreqSendHCMessage         5
  43. #define    xreqZeroBytes             6 
  44. #define    xreqPasToZero            7 
  45. #define    xreqZeroToPas            8 
  46. #define    xreqStrToLong            9 
  47. #define    xreqStrToNum            10 
  48. #define    xreqStrToBool            11 
  49. #define    xreqStrToExt            12 
  50. #define    xreqLongToStr            13 
  51. #define    xreqNumToStr            14 
  52. #define    xreqNumToHex            15 
  53. #define    xreqBoolToStr            16 
  54. #define    xreqExtToStr            17 
  55. #define    xreqGetGlobal            18 
  56. #define    xreqSetGlobal            19 
  57. #define    xreqGetFieldByName        20 
  58. #define    xreqGetFieldByNum        21 
  59. #define    xreqGetFieldByID        22 
  60. #define    xreqSetFieldByName        23 
  61. #define    xreqSetFieldByNum        24 
  62. #define    xreqSetFieldByID        25 
  63. #define    xreqStringEqual           26 
  64. #define    xreqReturnToPas           27 
  65. #define    xreqScanToReturn          28 
  66. #define    xreqScanToZero            39   /* was suppose to be 29!  Oops! */
  67.  
  68.  
  69. /*
  70.  * Lightspeed C prototypes for the glue routines
  71.  */
  72. extern pascal void        SendCardMessage(XCmdBlockPtr,StringPtr);
  73. extern pascal Handle    EvalExpr(XCmdBlockPtr,StringPtr);
  74. extern pascal long        StringLength(XCmdBlockPtr,StringPtr);
  75. extern pascal Ptr        StringMatch(XCmdBlockPtr,StringPtr, Ptr);
  76. extern pascal void        SendHCMessage(XCmdBlockPtr,StringPtr);
  77. extern pascal void        ZeroBytes(XCmdBlockPtr,Ptr,long);
  78. extern pascal Handle    PasToZero(XCmdBlockPtr,StringPtr);
  79. extern pascal void        ZeroToPas(XCmdBlockPtr, char *,StringPtr);
  80. extern pascal long        StrToLong(XCmdBlockPtr,Str31 *);
  81. extern pascal long        StrToNum(XCmdBlockPtr,Str31 *);
  82. extern pascal Boolean    StrToBool(XCmdBlockPtr,Str31 *);
  83. extern pascal void        StrToExt(XCmdBlockPtr,Str31 *,extended *);
  84. extern pascal void        LongToStr(XCmdBlockPtr,long,Str31 *);
  85. extern pascal void        NumToStr(XCmdBlockPtr,long,Str31 *);
  86. extern pascal void        NumToHex(XCmdBlockPtr,long,short,Str31 *);
  87. extern pascal void        BoolToStr(XCmdBlockPtr,Boolean,Str31 *);
  88. extern pascal void        ExtToStr(XCmdBlockPtr,extended *,Str31 *);
  89. extern pascal Handle    GetGlobal(XCmdBlockPtr,StringPtr);
  90. extern pascal void        SetGlobal(XCmdBlockPtr,StringPtr,Handle);
  91. extern pascal Handle    GetFieldByName(XCmdBlockPtr,Boolean,StringPtr);
  92. extern pascal Handle    GetFieldByNum(XCmdBlockPtr,Boolean,short);
  93. extern pascal Handle    GetFieldByID(XCmdBlockPtr,Boolean,short);
  94. extern pascal void        SetFieldByName(XCmdBlockPtr,Boolean,StringPtr,Handle);
  95. extern pascal void        SetFieldByNum(XCmdBlockPtr,Boolean,short,Handle);
  96. extern pascal void        SetFieldByID(XCmdBlockPtr,Boolean,short,Handle);
  97. extern pascal Boolean    StringEqual(XCmdBlockPtr,Str31 *,Str31 *);
  98. extern pascal void        ReturnToPas(XCmdBlockPtr,Ptr,StringPtr);
  99. extern pascal void        ScanToReturn(XCmdBlockPtr,Ptr *);
  100. extern pascal void        ScanToZero(XCmdBlockPtr,Ptr *);
  101. extern pascal void        DoJsr(XCmdBlockPtr);
  102.