home *** CD-ROM | disk | FTP | other *** search
/ Garbo / Garbo.cdr / mac / source / piemnsrc.sit / HyperXCmd.h < prev    next >
Text File  |  1989-09-14  |  4KB  |  107 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. #include <MacTypes.h>
  12.  
  13. typedef struct XCmdBlock {
  14.     short    paramCount;     
  15.     Handle  params[16];
  16.     Handle  returnValue;      
  17.     Boolean    passFlag; 
  18.       
  19.     void    (*entryPoint)();    /* to call back to HyperCard */
  20.     short    request;  
  21.     short    result;  
  22.     long    inArgs[8];
  23.     long    outArgs[4];
  24.    } XCmdBlock, *XCmdBlockPtr;
  25.  
  26. typedef unsigned char Str31[32];
  27. /*
  28. typedef struct Str31 {
  29.     char    guts[32];
  30.     } Str31, *Str31Ptr;
  31. */
  32.  
  33. enum {
  34.     xresSucc = 0,
  35.     xresFail,
  36.     xresNotImp
  37. };
  38.  
  39. /* request codes */
  40. enum {  
  41.     xreqSendCardMessage = 1,
  42.     xreqEvalExpr,
  43.     xreqStringLength,
  44.     xreqStringMatch,
  45.     xreqSendHCMessage,
  46.     xreqZeroBytes,
  47.     xreqPasToZero,
  48.     xreqZeroToPas,
  49.     xreqStrToLong,
  50.     xreqStrToNum,
  51.     xreqStrToBool,
  52.     xreqStrToExt,
  53.     xreqLongToStr,
  54.     xreqNumToStr,
  55.     xreqNumToHex,
  56.     xreqBoolToStr,
  57.     xreqExtToStr,
  58.     xreqGetGlobal,
  59.     xreqSetGlobal,
  60.     xreqGetFieldByName,
  61.     xreqGetFieldByNum,
  62.     xreqGetFieldByID, 
  63.     xreqSetFieldByName,
  64.     xreqSetFieldByNum, 
  65.     xreqSetFieldByID,
  66.     xreqStringEqual, 
  67.     xreqReturnToPas,
  68.     xreqScanToReturn,
  69.     xreqScanToZero = 39   /* was suppose to be 29!  Oops! */
  70. };
  71.  
  72.  
  73. /* Forward definitions of glue routines.  Main program 
  74.     must include XCmdGlue.inc.c.  See XCmdGlue.inc.c for 
  75.     documentation of each routine.  */
  76.  
  77. typedef void (*MyProcPtr) ();
  78.  
  79. pascal void        SendCardMessage(XCmdBlockPtr, StringPtr msg);
  80. pascal Handle    EvalExpr(XCmdBlockPtr, StringPtr expr);
  81. pascal long        StringLength(XCmdBlockPtr, StringPtr strPtr);
  82. pascal Ptr        StringMatch(XCmdBlockPtr, StringPtr pattern, Ptr target);
  83. pascal void        ZeroBytes(XCmdBlockPtr ,Ptr    dstPtr, long longCount);
  84. pascal Handle    PasToZero(XCmdBlockPtr, StringPtr pasStr);
  85. pascal void        ZeroToPas(XCmdBlockPtr, unsigned char  *zeroStr, StringPtr pasStr);
  86. pascal long        StrToLong(XCmdBlockPtr, unsigned char  * strPtr);
  87. pascal long        StrToNum(XCmdBlockPtr, unsigned char  *str);
  88. pascal Boolean    StrToBool(XCmdBlockPtr,unsigned char  *str);
  89. pascal void        StrToExt(XCmdBlockPtr,unsigned char  *str, double *myext);
  90. pascal void        LongToStr(XCmdBlockPtr, long posNum, unsigned char  *mystr);
  91. pascal void        NumToStr(XCmdBlockPtr, long num, unsigned char  *mystr);
  92. pascal void        NumToHex(XCmdBlockPtr, long num, short nDigits, unsigned char  *mystr);
  93. pascal void        BoolToStr(XCmdBlockPtr, Boolean bool, unsigned char  *mystr);
  94. pascal void        ExtToStr(XCmdBlockPtr, double *myext, unsigned char  *mystr);
  95. pascal Handle    GetGlobal(XCmdBlockPtr, StringPtr globName);
  96. pascal void        SetGlobal(XCmdBlockPtr, StringPtr globName, Handle globValue);
  97. pascal Handle    GetFieldByName(XCmdBlockPtr, Boolean cardFieldFlag, StringPtr fieldName);
  98. pascal Handle    GetFieldByNum(XCmdBlockPtr, Boolean cardFieldFlag, short fieldNum);
  99. pascal Handle    GetFieldByID(XCmdBlockPtr,Boolean cardFieldFlag, short fieldID);
  100. pascal void        SetFieldByName(XCmdBlockPtr, Boolean cardFieldFlag, StringPtr fieldName, Handle fieldVal);
  101. pascal void        SetFieldByNum(XCmdBlockPtr, Boolean cardFieldFlag, short fieldNum,Handle fieldVal);
  102. pascal void        SetFieldByID(XCmdBlockPtr, Boolean cardFieldFlag, short fieldID,Handle fieldVal);
  103. pascal Boolean    StringEqual(XCmdBlockPtr, unsigned char  *str1, unsigned char  *str2);
  104. pascal void        ReturnToPas(XCmdBlockPtr, Ptr zeroStr, StringPtr pasStr);
  105. pascal void        ScanToReturn(XCmdBlockPtr, Ptr *scanHndl);
  106. pascal void        ScanToZero(XCmdBlockPtr, Ptr *scanHndl);
  107.