home *** CD-ROM | disk | FTP | other *** search
/ Carousel / CAROUSEL.cdr / mactosh / hc / xcmd_glu.sit / HyperXCmd.h < prev    next >
Text File  |  1987-08-26  |  5KB  |  150 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 XCmdBlock {
  13.     short    paramCount;     
  14.     Handle  params[16];
  15.     Handle  returnValue;      
  16.     Boolean    passFlag; 
  17.       
  18.     char *    entryPoint;    /* to call back to HyperCard */
  19.     short    request;  
  20.     short    result;  
  21.     long    inArgs[8];
  22.     long    outArgs[4];
  23.    } XCmdBlock, *XCmdBlockPtr;
  24.    
  25. typedef struct Str31 {
  26.     char    guts[32]
  27.     } Str31, *Str31Ptr;
  28.  
  29.   /*result codes */
  30. #define    xresSucc         0
  31. #define    xresFail         1 
  32. #define    xresNotImp         2 
  33.   
  34.   /* request codes */
  35. #define    xreqSendCardMessage        1 
  36. #define    xreqEvalExpr            2 
  37. #define    xreqStringLength        3 
  38. #define    xreqStringMatch            4 
  39. #define xreqSendHCMessage        5
  40. #define    xreqZeroBytes             6 
  41. #define    xreqPasToZero            7 
  42. #define    xreqZeroToPas            8 
  43. #define    xreqStrToLong            9 
  44. #define    xreqStrToNum            10 
  45. #define    xreqStrToBool            11 
  46. #define    xreqStrToExt            12 
  47. #define    xreqLongToStr            13 
  48. #define    xreqNumToStr            14 
  49. #define    xreqNumToHex            15 
  50. #define    xreqBoolToStr            16 
  51. #define    xreqExtToStr            17 
  52. #define    xreqGetGlobal            18 
  53. #define    xreqSetGlobal            19 
  54. #define    xreqGetFieldByName        20 
  55. #define    xreqGetFieldByNum        21 
  56. #define    xreqGetFieldByID        22 
  57. #define    xreqSetFieldByName        23 
  58. #define    xreqSetFieldByNum        24 
  59. #define    xreqSetFieldByID        25 
  60. #define    xreqStringEqual           26 
  61. #define    xreqReturnToPas           27 
  62. #define    xreqScanToReturn          28 
  63. #define    xreqScanToZero            39   /* was suppose to be 29!  Oops! */
  64.  
  65.  
  66. /* Forward definitions of glue routines.  Main program 
  67.     must include XCmdGlue.inc.c.  See XCmdGlue.inc.c for 
  68.     documentation of each routine.  */
  69. typedef void (*MyProcPtr) ();
  70.  
  71. pascal void SendCardMessage(paramPtr,msg)
  72.     XCmdBlockPtr    paramPtr;    StringPtr    msg;    extern;
  73. pascal Handle EvalExpr(paramPtr,expr)
  74.     XCmdBlockPtr    paramPtr;    StringPtr    expr;    extern;
  75. pascal long StringLength(paramPtr,strPtr)
  76.     XCmdBlockPtr    paramPtr;    StringPtr    strPtr;    extern;
  77. pascal Ptr StringMatch(paramPtr,pattern,target)
  78.     XCmdBlockPtr    paramPtr;    StringPtr    pattern;
  79.     Ptr    target;    extern;
  80.     
  81. pascal void ZeroBytes(paramPtr,dstPtr,longCount)
  82.     XCmdBlockPtr    paramPtr;    Ptr    dstPtr;
  83.     long    longCount;    extern;
  84. pascal Handle PasToZero(paramPtr,pasStr)
  85.     XCmdBlockPtr    paramPtr;    StringPtr    pasStr;    extern;
  86. pascal void ZeroToPas(paramPtr,zeroStr,pasStr)
  87.     XCmdBlockPtr    paramPtr;    char    *zeroStr;
  88.     StringPtr    pasStr;    extern;
  89. pascal long StrToLong(paramPtr,strPtr)
  90.     XCmdBlockPtr    paramPtr;    Str31 *    strPtr;    extern;
  91. pascal long StrToNum(paramPtr,str)
  92.     XCmdBlockPtr    paramPtr;    Str31 *     str;    extern;
  93. pascal Boolean StrToBool(paramPtr,str)
  94.     XCmdBlockPtr    paramPtr;    Str31 *     str;    extern;
  95. pascal void StrToExt(paramPtr,str,myext)
  96.     XCmdBlockPtr    paramPtr;    Str31 *     str;
  97.     extended *    myext;    extern;
  98. pascal void LongToStr(paramPtr,posNum,mystr)
  99.     XCmdBlockPtr    paramPtr;    long     posNum;
  100.     Str31 *    mystr;    extern;
  101. pascal void NumToStr(paramPtr,num,mystr)
  102.     XCmdBlockPtr    paramPtr;    long     num;
  103.     Str31 *    mystr;    extern;
  104. pascal void NumToHex(paramPtr,num,nDigits,mystr)
  105.     XCmdBlockPtr    paramPtr;    long     num;
  106.     short    nDigits;            Str31 *    mystr;    extern;
  107. pascal void BoolToStr(paramPtr,bool,mystr)
  108.     XCmdBlockPtr    paramPtr;    Boolean    bool;
  109.     Str31 *    mystr;    extern;
  110. pascal void ExtToStr(paramPtr,myext,mystr)
  111.     XCmdBlockPtr    paramPtr;    extended *    myext;
  112.     Str31 *    mystr;    extern;
  113. pascal Handle GetGlobal(paramPtr,globName)
  114.     XCmdBlockPtr    paramPtr;    StringPtr    globName;    extern;
  115. pascal void SetGlobal(paramPtr,globName,globValue)
  116.     XCmdBlockPtr    paramPtr;    StringPtr    globName;
  117.     Handle    globValue;    extern;
  118. pascal Handle GetFieldByName(paramPtr,cardFieldFlag,fieldName)
  119.     XCmdBlockPtr    paramPtr;    Boolean    cardFieldFlag;
  120.     StringPtr    fieldName;    extern;
  121. pascal Handle GetFieldByNum(paramPtr,cardFieldFlag,fieldNum)
  122.     XCmdBlockPtr    paramPtr;    Boolean    cardFieldFlag;
  123.     short    fieldNum;    extern;
  124. pascal Handle GetFieldByID(paramPtr,cardFieldFlag,fieldID)
  125.     XCmdBlockPtr    paramPtr;    Boolean    cardFieldFlag;
  126.     short    fieldID;    extern;
  127. pascal void SetFieldByName(paramPtr,cardFieldFlag,fieldName,fieldVal)
  128.     XCmdBlockPtr    paramPtr;    Boolean    cardFieldFlag;
  129.     StringPtr    fieldName;    Handle    fieldVal;    extern;
  130. pascal void SetFieldByNum(paramPtr,cardFieldFlag,fieldNum,fieldVal)
  131.     XCmdBlockPtr    paramPtr;    Boolean    cardFieldFlag;
  132.     short    fieldNum;            Handle    fieldVal;    extern;
  133. pascal void SetFieldByID(paramPtr,cardFieldFlag,fieldID,fieldVal)
  134.     XCmdBlockPtr    paramPtr;    Boolean    cardFieldFlag;
  135.     short    fieldID;            Handle    fieldVal;    extern;
  136. pascal Boolean StringEqual(paramPtr,str1,str2)
  137.     XCmdBlockPtr    paramPtr;    Str31 *     str1;
  138.     Str31 *     str2;    extern;
  139. pascal void ReturnToPas(paramPtr,zeroStr,pasStr)
  140.     XCmdBlockPtr    paramPtr;    Ptr    zeroStr;
  141.     StringPtr    pasStr;    extern;
  142. pascal void ScanToReturn(paramPtr,scanHndl)
  143.     XCmdBlockPtr    paramPtr;    Ptr *    scanHndl;    extern;
  144. pascal void ScanToZero(paramPtr,scanHndl)
  145.     XCmdBlockPtr    paramPtr;    Ptr *    scanHndl;    extern;
  146.  
  147.  
  148.  
  149.  
  150.