home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1999 / MacHack 1999.toast / The Hacks / DesktopDoubler / Common / Headers / ProcInfo.h < prev    next >
Encoding:
C/C++ Source or Header  |  1999-06-25  |  30.6 KB  |  397 lines  |  [TEXT/CWIE]

  1. #ifndef _PROCINFO_
  2. #define _PROCINFO_
  3.  
  4. #include <Events.h>
  5. #include <MixedMode.h>
  6. #include <MacTypes.h>
  7.  
  8.  
  9. #define RESULT_OFFSET(type)    ((sizeof(type) == 1) ? 3 : ((sizeof(type) == 2) ? 1 : 0))
  10.  
  11. typedef pascal void (*CleanUpApplicationPatchPtr)(void);
  12. typedef pascal void (*CloseWindowProcPtr)(WindowPtr window);
  13. typedef pascal void (*CloseWindowPatchPtr)(WindowPtr window,CloseWindowProcPtr closeWindowProc);
  14. typedef pascal void (*DMFinalInitPatchPtr)(void);
  15. typedef pascal void (*DisposeWindowProcPtr)(WindowPtr window);
  16. typedef pascal void (*DisposeWindowPatchPtr)(WindowPtr window,DisposeWindowProcPtr disposeWindowProc);
  17. typedef pascal SInt32 (*DragGrayRgnLWProcPtr)(RgnHandle rgn,Point start,const Rect *limit,const Rect *slop,SInt16 axis,DragGrayRgnUPP action);
  18. typedef pascal SInt32 (*DragGrayRgnPatchPtr)(RgnHandle rgn,Point start,const Rect *limit,const Rect *slop,SInt16 axis,DragGrayRgnUPP action,DragGrayRgnLWProcPtr dragGrayRgnLWProc);
  19. typedef pascal void (*DragWindowProcPtr)(WindowPtr window,Point start,Rect *limit);
  20. typedef pascal void (*DragWindowPatchPtr)(WindowPtr window,Point start,Rect *limit,DragWindowProcPtr dragWindowProc);
  21. typedef pascal SInt16 (*FindSystemWindowPatchPtr)(Point where,WindowPtr *window,SInt16 result);
  22. typedef pascal SInt16 (*FindWindowProcPtr)(Point where,WindowPtr *window);
  23. typedef pascal SInt16 (*FindWindowPatchPtr)(Point where,WindowPtr *window,FindWindowProcPtr findWindowProc);
  24. typedef pascal void (*FrameRgnProcPtr)(RgnHandle rgn);
  25. typedef pascal void (*FrameRgnPatchPtr)(RgnHandle rgn,FrameRgnProcPtr frameRgnProc);
  26. typedef pascal void (*GetMouseProcPtr)(Point *mouseLoc);
  27. typedef pascal void (*GetMousePatchPtr)(Point *mouseLoc,GetMouseProcPtr getMouseProc);
  28. typedef pascal void (*InitApplicationPatchPtr)(void);
  29. typedef pascal SInt32 (*MenuSelectProcPtr)(Point *startPt);
  30. typedef pascal SInt32 (*MenuSelectPatchPtr)(Point *startPt,MenuSelectProcPtr menuSelectProc);
  31. typedef pascal void (*PaintRgnProcPtr)(RgnHandle rgn);
  32. typedef pascal void (*PaintRgnPatchPtr)(RgnHandle rgn,PaintRgnProcPtr paintRgnProc);
  33. typedef pascal void (*PostEventPatchPtr)(EventKind *num,UInt32 *msg);
  34. typedef pascal Boolean (*StillDownProcPtr)(void);
  35. typedef pascal Boolean (*StillDownPatchPtr)(StillDownProcPtr stillDownProc);
  36. typedef pascal void (*SynchIdleTimePatchPtr)(void);
  37. typedef pascal OSErr (*SysWindowHandlerProcPtr)(WindowPtr window,EventRecord *event,SInt16 part,Boolean *handled);
  38. typedef pascal Boolean (*TrackGoAwayProcPtr)(WindowPtr window,Point where);
  39. typedef pascal Boolean (*TrackGoAwayPatchPtr)(WindowPtr window,Point where,TrackGoAwayProcPtr trackGoAwayProc);
  40. typedef pascal void (*VBLPatchPtr)(void);
  41. typedef pascal Boolean (*WaitMouseUpProcPtr)(void);
  42. typedef pascal Boolean (*WaitMouseUpPatchPtr)(WaitMouseUpProcPtr waitMouseUpProc);
  43. typedef pascal Boolean (*WaitNextEventProcPtr)(EventMask mask,EventRecord *event,UInt32 sleep,RgnHandle mouse);
  44. typedef pascal void (*WaitNextEventPrePatchPtr)(EventMask *mask,EventRecord *event,UInt32 *sleep,RgnHandle *mouse);
  45. typedef pascal Boolean (*WaitNextEventPostPatchPtr)(EventMask *mask,EventRecord *event,UInt32 *sleep,RgnHandle *mouse,Boolean result);
  46.  
  47. #if GENERATINGCFM
  48. typedef UniversalProcPtr                 CleanUpApplicationPatchUPP;
  49. typedef UniversalProcPtr                 CloseWindowProcUPP;
  50. typedef UniversalProcPtr                 CloseWindowPatchUPP;
  51. typedef UniversalProcPtr                 DMFinalInitPatchUPP;
  52. typedef UniversalProcPtr                 DisposeWindowProcUPP;
  53. typedef UniversalProcPtr                 DisposeWindowPatchUPP;
  54. typedef UniversalProcPtr                 DragGrayRgnLWProcUPP;
  55. typedef UniversalProcPtr                 DragGrayRgnPatchUPP;
  56. typedef UniversalProcPtr                 DragWindowProcUPP;
  57. typedef UniversalProcPtr                 DragWindowPatchUPP;
  58. typedef UniversalProcPtr                 FindSystemWindowPatchUPP;
  59. typedef UniversalProcPtr                 FindWindowProcUPP;
  60. typedef UniversalProcPtr                 FindWindowPatchUPP;
  61. typedef UniversalProcPtr                 FrameRgnProcUPP;
  62. typedef UniversalProcPtr                 FrameRgnPatchUPP;
  63. typedef UniversalProcPtr                 GetMouseProcUPP;
  64. typedef UniversalProcPtr                 GetMousePatchUPP;
  65. typedef UniversalProcPtr                 InitApplicationPatchUPP;
  66. typedef UniversalProcPtr                 MenuSelectProcUPP;
  67. typedef UniversalProcPtr                 MenuSelectPatchUPP;
  68. typedef UniversalProcPtr                 PaintRgnProcUPP;
  69. typedef UniversalProcPtr                 PaintRgnPatchUPP;
  70. typedef UniversalProcPtr                 PostEventPatchUPP;
  71. typedef UniversalProcPtr                 StillDownProcUPP;
  72. typedef UniversalProcPtr                 StillDownPatchUPP;
  73. typedef UniversalProcPtr                 SynchIdleTimePatchUPP;
  74. typedef UniversalProcPtr                SysWindowHandlerUPP;
  75. typedef UniversalProcPtr                 TrackGoAwayProcUPP;
  76. typedef UniversalProcPtr                 TrackGoAwayPatchUPP;
  77. typedef UniversalProcPtr                 VBLPatchUPP;
  78. typedef UniversalProcPtr                 WaitMouseUpProcUPP;
  79. typedef UniversalProcPtr                 WaitMouseUpPatchUPP;
  80. typedef UniversalProcPtr                 WaitNextEventProcUPP;
  81. typedef UniversalProcPtr                 WaitNextEventPrePatchUPP;
  82. typedef UniversalProcPtr                 WaitNextEventPostPatchUPP;
  83. #else
  84. typedef CleanUpApplicationPatchPtr         CleanUpApplicationPatchUPP;
  85. typedef CloseWindowProcPtr                CloseWindowProcUPP;
  86. typedef CloseWindowPatchPtr                CloseWindowPatchUPP;
  87. typedef DMFinalInitPatchPtr                DMFinalInitPatchUPP;
  88. typedef DisposeWindowProcPtr            DisposeWindowProcUPP;
  89. typedef DisposeWindowPatchPtr            DisposeWindowPatchUPP;
  90. typedef DragGrayRgnLWProcPtr            DragGrayRgnLWProcUPP;
  91. typedef DragGrayRgnPatchPtr                DragGrayRgnPatchUPP;
  92. typedef DragWindowProcPtr                DragWindowProcUPP;
  93. typedef DragWindowPatchPtr                DragWindowPatchUPP;
  94. typedef FindSystemWindowPatchPtr        FindSystemWindowPatchUPP;
  95. typedef FindWindowProcPtr                FindWindowProcUPP;
  96. typedef FindWindowPatchPtr                FindWindowPatchUPP;
  97. typedef FrameRgnProcPtr                     FrameRgnProcUPP;
  98. typedef FrameRgnPatchPtr                 FrameRgnPatchUPP;
  99. typedef GetMouseProcPtr                     GetMouseProcUPP;
  100. typedef GetMousePatchPtr                 GetMousePatchUPP;
  101. typedef InitApplicationPatchPtr         InitApplicationPatchUPP;
  102. typedef MenuSelectProcPtr                 MenuSelectProcUPP;
  103. typedef MenuSelectPatchPtr                 MenuSelectPatchUPP;
  104. typedef PaintRgnProcPtr                     PaintRgnProcUPP;
  105. typedef PaintRgnPatchPtr                 PaintRgnPatchUPP;
  106. typedef PostEventPatchPtr                PostEventPatchUPP;
  107. typedef StillDownProcPtr                 StillDownProcUPP;
  108. typedef StillDownPatchPtr                 StillDownPatchUPP;
  109. typedef SynchIdleTimePatchPtr            SynchIdleTimePatchUPP;
  110. typedef SysWindowHandlerProcPtr            SysWindowHandlerUPP;
  111. typedef TrackGoAwayProcPtr                 TrackGoAwayProcUPP;
  112. typedef TrackGoAwayPatchPtr                 TrackGoAwayPatchUPP;
  113. typedef VBLPatchPtr                         VBLPatchUPP;
  114. typedef WaitMouseUpProcPtr                 WaitMouseUpProcUPP;
  115. typedef WaitMouseUpPatchPtr                 WaitMouseUpPatchUPP;
  116. typedef WaitNextEventProcPtr            WaitNextEventProcUPP;
  117. typedef WaitNextEventPrePatchPtr        WaitNextEventPrePatchUPP;
  118. typedef WaitNextEventPostPatchPtr        WaitNextEventPostPatchUPP;
  119. #endif
  120.  
  121. enum {
  122.     uppCleanUpApplicationPatchProcInfo = kPascalStackBased,
  123.     uppCloseWindowProcInfo = kPascalStackBased
  124.         | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(WindowPtr))),
  125.     uppCloseWindowPatchProcInfo = kPascalStackBased
  126.         | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(WindowPtr)))
  127.         | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(CloseWindowProcPtr))),
  128.     uppDMFinalInitPatchProcInfo = kPascalStackBased,
  129.     uppDisposeWindowProcInfo = kPascalStackBased
  130.         | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(WindowPtr))),
  131.     uppDisposeWindowPatchProcInfo = kPascalStackBased
  132.         | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(WindowPtr)))
  133.         | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(DisposeWindowProcPtr))),
  134.     uppDragGrayRgnLWProcInfo = kPascalStackBased
  135.         | RESULT_SIZE(SIZE_CODE(sizeof(SInt32)))
  136.         | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(RgnHandle)))
  137.         | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(Point)))
  138.         | STACK_ROUTINE_PARAMETER(3,SIZE_CODE(sizeof(const Rect*)))
  139.         | STACK_ROUTINE_PARAMETER(4,SIZE_CODE(sizeof(const Rect*)))
  140.         | STACK_ROUTINE_PARAMETER(5,SIZE_CODE(sizeof(SInt16)))
  141.         | STACK_ROUTINE_PARAMETER(6,SIZE_CODE(sizeof(DragGrayRgnUPP))),
  142.     uppDragGrayRgnPatchProcInfo = kPascalStackBased
  143.         | RESULT_SIZE(SIZE_CODE(sizeof(SInt32)))
  144.         | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(RgnHandle)))
  145.         | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(Point)))
  146.         | STACK_ROUTINE_PARAMETER(3,SIZE_CODE(sizeof(const Rect*)))
  147.         | STACK_ROUTINE_PARAMETER(4,SIZE_CODE(sizeof(const Rect*)))
  148.         | STACK_ROUTINE_PARAMETER(5,SIZE_CODE(sizeof(SInt16)))
  149.         | STACK_ROUTINE_PARAMETER(6,SIZE_CODE(sizeof(DragGrayRgnUPP)))
  150.         | STACK_ROUTINE_PARAMETER(7,SIZE_CODE(sizeof(DragGrayRgnLWProcPtr))),
  151.     uppDragWindowProcInfo = kPascalStackBased
  152.         | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(WindowPtr)))
  153.         | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(Point)))
  154.         | STACK_ROUTINE_PARAMETER(3,SIZE_CODE(sizeof(Rect*))),
  155.     uppDragWindowPatchProcInfo = kPascalStackBased
  156.         | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(WindowPtr)))
  157.         | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(Point)))
  158.         | STACK_ROUTINE_PARAMETER(3,SIZE_CODE(sizeof(Rect*)))
  159.         | STACK_ROUTINE_PARAMETER(4,SIZE_CODE(sizeof(DragWindowProcPtr))),
  160.     uppFindSystemWindowPatchProcInfo = kPascalStackBased
  161.         | RESULT_SIZE(SIZE_CODE(sizeof(SInt16)))
  162.         | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(Point)))
  163.         | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(WindowPtr*)))
  164.         | STACK_ROUTINE_PARAMETER(3,SIZE_CODE(sizeof(SInt16))),
  165.     uppFindWindowProcInfo = kPascalStackBased
  166.         | RESULT_SIZE(SIZE_CODE(sizeof(SInt16)))
  167.         | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(Point)))
  168.         | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(WindowPtr*))),
  169.     uppFindWindowPatchProcInfo = kPascalStackBased
  170.         | RESULT_SIZE(SIZE_CODE(sizeof(SInt16)))
  171.         | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(Point)))
  172.         | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(WindowPtr*)))
  173.         | STACK_ROUTINE_PARAMETER(3,SIZE_CODE(sizeof(FindWindowProcPtr))),
  174.     uppFrameRgnProcInfo = kPascalStackBased
  175.         | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(RgnHandle))),
  176.     uppFrameRgnPatchProcInfo = kPascalStackBased
  177.         | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(RgnHandle)))
  178.         | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(FrameRgnProcPtr))),
  179.     uppGetMouseProcInfo = kPascalStackBased
  180.         | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(Point*))),
  181.     uppGetMousePatchProcInfo = kPascalStackBased
  182.         | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(Point*)))
  183.         | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(GetMouseProcPtr))),
  184.     uppInitApplicationPatchProcInfo = kPascalStackBased,
  185.     uppMenuSelectProcInfo = kPascalStackBased
  186.         | RESULT_SIZE(SIZE_CODE(sizeof(SInt32)))
  187.         | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(Point*))),
  188.     uppMenuSelectPatchProcInfo = kPascalStackBased
  189.         | RESULT_SIZE(SIZE_CODE(sizeof(SInt32)))
  190.         | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(Point*)))
  191.         | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(MenuSelectProcPtr))),
  192.     uppPaintRgnProcInfo = kPascalStackBased
  193.         | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(RgnHandle))),
  194.     uppPaintRgnPatchProcInfo = kPascalStackBased
  195.         | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(RgnHandle)))
  196.         | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(PaintRgnProcPtr))),
  197.     uppPostEventPatchProcInfo = kPascalStackBased
  198.         | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(EventKind*)))
  199.         | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(UInt32*))),
  200.     uppStillDownProcInfo = kPascalStackBased
  201.         | RESULT_SIZE(SIZE_CODE(sizeof(Boolean))),
  202.     uppStillDownPatchProcInfo = kPascalStackBased
  203.         | RESULT_SIZE(SIZE_CODE(sizeof(Boolean)))
  204.         | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(StillDownProcPtr))),
  205.     uppSynchIdleTimePatchProcInfo = kPascalStackBased,
  206.     uppSysWindowHandlerProcInfo = kPascalStackBased
  207.          | RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
  208.          | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(WindowPtr)))
  209.          | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(EventRecord*)))
  210.          | STACK_ROUTINE_PARAMETER(3,SIZE_CODE(sizeof(SInt16)))
  211.          | STACK_ROUTINE_PARAMETER(4,SIZE_CODE(sizeof(Boolean*))),
  212.     uppTrackGoAwayProcInfo = kPascalStackBased
  213.         | RESULT_SIZE(SIZE_CODE(sizeof(Boolean)))
  214.         | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(WindowPtr)))
  215.         | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(Point))),
  216.     uppTrackGoAwayPatchProcInfo = kPascalStackBased
  217.         | RESULT_SIZE(SIZE_CODE(sizeof(Boolean)))
  218.         | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(WindowPtr)))
  219.         | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(Point)))
  220.         | STACK_ROUTINE_PARAMETER(3,SIZE_CODE(sizeof(TrackGoAwayProcPtr))),
  221.     uppVBLPatchProcInfo = kPascalStackBased,
  222.     uppWaitMouseUpProcInfo = kPascalStackBased
  223.         | RESULT_SIZE(SIZE_CODE(sizeof(Boolean))),
  224.     uppWaitMouseUpPatchProcInfo = kPascalStackBased
  225.         | RESULT_SIZE(SIZE_CODE(sizeof(Boolean)))
  226.         | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(WaitMouseUpProcPtr))),
  227.     uppWaitNextEventProcInfo = kPascalStackBased
  228.         | RESULT_SIZE(SIZE_CODE(sizeof(Boolean)))
  229.         | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(EventMask)))
  230.         | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(EventRecord*)))
  231.         | STACK_ROUTINE_PARAMETER(3,SIZE_CODE(sizeof(UInt32)))
  232.         | STACK_ROUTINE_PARAMETER(4,SIZE_CODE(sizeof(RgnHandle))),
  233.     uppWaitNextEventPrePatchProcInfo = kPascalStackBased
  234.         | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(EventMask*)))
  235.         | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(EventRecord*)))
  236.         | STACK_ROUTINE_PARAMETER(3,SIZE_CODE(sizeof(UInt32*)))
  237.         | STACK_ROUTINE_PARAMETER(4,SIZE_CODE(sizeof(RgnHandle*))),
  238.     uppWaitNextEventPostPatchProcInfo = kPascalStackBased
  239.         | RESULT_SIZE(SIZE_CODE(sizeof(Boolean)))
  240.         | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(EventMask*)))
  241.         | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(EventRecord*)))
  242.         | STACK_ROUTINE_PARAMETER(3,SIZE_CODE(sizeof(UInt32*)))
  243.         | STACK_ROUTINE_PARAMETER(4,SIZE_CODE(sizeof(RgnHandle*)))
  244.         | STACK_ROUTINE_PARAMETER(5,SIZE_CODE(sizeof(Boolean)))
  245. };
  246.  
  247. #if GENERATINGCFM
  248. #define NewCleanUpApplicationPatch(userRoutine)        (CleanUpApplicationPatchUPP)NewRoutineDescriptor((ProcPtr)(userRoutine),uppCleanUpApplicationPatchProcInfo,GetCurrentArchitecture())
  249. #define NewCloseWindowProc(userRoutine)                (CloseWindowProcUPP)NewRoutineDescriptor((ProcPtr)(userRoutine),uppCloseWindowProcInfo,GetCurrentArchitecture())
  250. #define NewCloseWindowPatch(userRoutine)            (CloseWindowPatchUPP)NewRoutineDescriptor((ProcPtr)(userRoutine),uppCloseWindowPatchProcInfo,GetCurrentArchitecture())
  251. #define NewDMFinalInitPatch(userRoutine)            (DMFinalInitPatchUPP)NewRoutineDescriptor((ProcPtr)(userRoutine),uppDMFinalInitPatchProcInfo,GetCurrentArchitecture())
  252. #define NewDisposeWindowProc(userRoutine)            (DisposeWindowProcUPP)NewRoutineDescriptor((ProcPtr)(userRoutine),uppDisposeWindowProcInfo,GetCurrentArchitecture())
  253. #define NewDisposeWindowPatch(userRoutine)            (DisposeWindowPatchUPP)NewRoutineDescriptor((ProcPtr)(userRoutine),uppDisposeWindowPatchProcInfo,GetCurrentArchitecture())
  254. #define NewDragGrayRgnLWProc(userRoutine)            (DragGrayRgnLWProcUPP)NewRoutineDescriptor((ProcPtr)(userRoutine),uppDragGrayRgnLWProcInfo,GetCurrentArchitecture())
  255. #define NewDragGrayRgnPatch(userRoutine)            (DragGrayRgnPatchUPP)NewRoutineDescriptor((ProcPtr)(userRoutine),uppDragGrayRgnPatchProcInfo,GetCurrentArchitecture())
  256. #define NewDragWindowProc(userRoutine)                (DragWindowProcUPP)NewRoutineDescriptor((ProcPtr)(userRoutine),uppDragWindowProcInfo,GetCurrentArchitecture())
  257. #define NewDragWindowPatch(userRoutine)                (DragWindowPatchUPP)NewRoutineDescriptor((ProcPtr)(userRoutine),uppDragWindowPatchProcInfo,GetCurrentArchitecture())
  258. #define NewFindSystemWindowPatch(userRoutine)        (FindSystemWindowPatchUPP)NewRoutineDescriptor((ProcPtr)(userRoutine),uppFindSystemWindowPatchProcInfo,GetCurrentArchitecture())
  259. #define NewFindWindowProc(userRoutine)                (FindWindowProcUPP)NewRoutineDescriptor((ProcPtr)(userRoutine),uppFindWindowProcInfo,GetCurrentArchitecture())
  260. #define NewFindWindowPatch(userRoutine)                (FindWindowPatchUPP)NewRoutineDescriptor((ProcPtr)(userRoutine),uppFindWindowPatchProcInfo,GetCurrentArchitecture())
  261. #define NewFrameRgnProc(userRoutine)                (FrameRgnProcUPP)NewRoutineDescriptor((ProcPtr)(userRoutine),uppFrameRgnProcInfo,GetCurrentArchitecture())
  262. #define NewFrameRgnPatch(userRoutine)                (FrameRgnPatchUPP)NewRoutineDescriptor((ProcPtr)(userRoutine),uppFrameRgnPatchProcInfo,GetCurrentArchitecture())
  263. #define NewGetMouseProc(userRoutine)                (GetMouseProcUPP)NewRoutineDescriptor((ProcPtr)(userRoutine),uppGetMouseProcInfo,GetCurrentArchitecture())
  264. #define NewGetMousePatch(userRoutine)                (GetMousePatchUPP)NewRoutineDescriptor((ProcPtr)(userRoutine),uppGetMousePatchProcInfo,GetCurrentArchitecture())
  265. #define NewInitApplicationPatch(userRoutine)        (InitApplicationPatchUPP)NewRoutineDescriptor((ProcPtr)(userRoutine),uppInitApplicationPatchProcInfo,GetCurrentArchitecture())
  266. #define NewMenuSelectProc(userRoutine)                (MenuSelectProcUPP)NewRoutineDescriptor((ProcPtr)(userRoutine),uppMenuSelectProcInfo,GetCurrentArchitecture())
  267. #define NewMenuSelectPatch(userRoutine)                (MenuSelectPatchUPP)NewRoutineDescriptor((ProcPtr)(userRoutine),uppMenuSelectPatchProcInfo,GetCurrentArchitecture())
  268. #define NewPaintRgnProc(userRoutine)                (PaintRgnProcUPP)NewRoutineDescriptor((ProcPtr)(userRoutine),uppPaintRgnProcInfo,GetCurrentArchitecture())
  269. #define NewPaintRgnPatch(userRoutine)                (PaintRgnPatchUPP)NewRoutineDescriptor((ProcPtr)(userRoutine),uppPaintRgnPatchProcInfo,GetCurrentArchitecture())
  270. #define NewPostEventPatch(userRoutine)                (PostEventPatchUPP)NewRoutineDescriptor((ProcPtr)(userRoutine),uppPostEventPatchProcInfo,GetCurrentArchitecture())
  271. #define NewStillDownProc(userRoutine)                (StillDownProcUPP)NewRoutineDescriptor((ProcPtr)(userRoutine),uppStillDownProcInfo,GetCurrentArchitecture())
  272. #define NewStillDownPatch(userRoutine)                (StillDownPatchUPP)NewRoutineDescriptor((ProcPtr)(userRoutine),uppStillDownPatchProcInfo,GetCurrentArchitecture())
  273. #define NewSynchIdleTimePatch(userRoutine)            (SynchIdleTimePatchUPP)NewRoutineDescriptor((ProcPtr)(userRoutine),uppSynchIdleTimePatchProcInfo,GetCurrentArchitecture())
  274. #define NewSysWindowHandlerProc(userRoutine)        (SysWindowHandlerUPP)NewRoutineDescriptor((ProcPtr)(userRoutine),uppSysWindowHandlerProcInfo,GetCurrentArchitecture())
  275. #define NewTrackGoAwayProc(userRoutine)                (TrackGoAwayProcUPP)NewRoutineDescriptor((ProcPtr)(userRoutine),uppTrackGoAwayProcInfo,GetCurrentArchitecture())
  276. #define NewTrackGoAwayPatch(userRoutine)            (TrackGoAwayPatchUPP)NewRoutineDescriptor((ProcPtr)(userRoutine),uppTrackGoAwayPatchProcInfo,GetCurrentArchitecture())
  277. #define NewVBLPatch(userRoutine)                    (VBLPatchUPP)NewRoutineDescriptor((ProcPtr)(userRoutine),uppVBLPatchProcInfo,GetCurrentArchitecture())
  278. #define NewWaitMouseUpProc(userRoutine)                (WaitMouseUpProcUPP)NewRoutineDescriptor((ProcPtr)(userRoutine),uppWaitMouseUpProcInfo,GetCurrentArchitecture())
  279. #define NewWaitMouseUpPatch(userRoutine)            (WaitMouseUpPatchUPP)NewRoutineDescriptor((ProcPtr)(userRoutine),uppWaitMouseUpPatchProcInfo,GetCurrentArchitecture())
  280. #define NewWaitNextEventProc(userRoutine)            (WaitNextEventProcUPP)NewRoutineDescriptor((ProcPtr)(userRoutine),uppWaitNextEventProcInfo,GetCurrentArchitecture())
  281. #define NewWaitNextEventPrePatch(userRoutine)        (WaitNextEventPrePatchUPP)NewRoutineDescriptor((ProcPtr)(userRoutine),uppWaitNextEventPrePatchProcInfo,GetCurrentArchitecture())
  282. #define NewWaitNextEventPostPatch(userRoutine)        (WaitNextEventPostPatchUPP)NewRoutineDescriptor((ProcPtr)(userRoutine),uppWaitNextEventPostPatchProcInfo,GetCurrentArchitecture())
  283. #else
  284. #define NewCleanUpApplicationPatch(userRoutine)        ((CleanUpApplicationPatchUPP)(userRoutine))
  285. #define NewCloseWindowProc(userRoutine)                ((CloseWindowProcUPP)(userRoutine))
  286. #define NewCloseWindowPatch(userRoutine)            ((CloseWindowPatchUPP)(userRoutine))
  287. #define NewDMFinalInitPatch(userRoutine)            ((DMFinalInitPatchUPP)(userRoutine))
  288. #define NewDisposeWindowProc(userRoutine)            ((DisposeWindowProcUPP)(userRoutine))
  289. #define NewDisposeWindowPatch(userRoutine)            ((DisposeWindowPatchUPP)(userRoutine))
  290. #define NewDragGrayRgnLWProc(userRoutine)            ((DragGrayRgnLWProcUPP)(userRoutine))
  291. #define NewDragGrayRgnPatch(userRoutine)            ((DragGrayRgnPatchUPP)(userRoutine))
  292. #define NewDragWindowProc(userRoutine)                ((DragWindowProcUPP)(userRoutine))
  293. #define NewDragWindowPatch(userRoutine)                ((DragWindowPatchUPP)(userRoutine))
  294. #define NewFindSystemWindowPatch(userRoutine)        ((FindSystemWindowPatchUPP)(userRoutine))
  295. #define NewFindWindowProc(userRoutine)                ((FindWindowProcUPP)(userRoutine))
  296. #define NewFindWindowPatch(userRoutine)                ((FindWindowPatchUPP)(userRoutine))
  297. #define NewFrameRgnProc(userRoutine)                ((FrameRgnProcUPP)(userRoutine))
  298. #define NewFrameRgnPatch(userRoutine)                ((FrameRgnPatchUPP)(userRoutine))
  299. #define NewGetMouseProc(userRoutine)                ((GetMouseProcUPP)(userRoutine))
  300. #define NewGetMousePatch(userRoutine)                ((GetMousePatchUPP)(userRoutine))
  301. #define NewInitApplicationPatch(userRoutine)        ((InitApplicationPatchUPP)(userRoutine))
  302. #define NewMenuSelectProc(userRoutine)                ((MenuSelectProcUPP)(userRoutine))
  303. #define NewMenuSelectPatch(userRoutine)                ((MenuSelectPatchUPP)(userRoutine))
  304. #define NewPaintRgnProc(userRoutine)                ((PaintRgnProcUPP)(userRoutine))
  305. #define NewPaintRgnPatch(userRoutine)                ((PaintRgnPatchUPP)(userRoutine))
  306. #define NewPostEventPatch(userRoutine)                ((PostEventPatchUPP)(userRoutine))
  307. #define NewStillDownProc(userRoutine)                ((StillDownProcUPP)(userRoutine))
  308. #define NewStillDownPatch(userRoutine)                ((StillDownPatchUPP)(userRoutine))
  309. #define NewSynchIdleTimePatch(userRoutine)            ((SynchIdleTimePatchUPP)(userRoutine))
  310. #define NewSysWindowHandlerProc(userRoutine)        ((SysWindowHandlerUPP)(userRoutine))
  311. #define NewTrackGoAwayProc(userRoutine)                ((TrackGoAwayProcUPP)(userRoutine))
  312. #define NewTrackGoAwayPatch(userRoutine)            ((TrackGoAwayPatchUPP)(userRoutine))
  313. #define NewVBLPatch(userRoutine)                    ((VBLPatchUPP)(userRoutine))
  314. #define NewWaitMouseUpProc(userRoutine)                ((WaitMouseUpProcUPP)(userRoutine))
  315. #define NewWaitMouseUpPatch(userRoutine)            ((WaitMouseUpPatchUPP)(userRoutine))
  316. #define NewWaitNextEventProc(userRoutine)            ((WaitNextEventProcUPP)(userRoutine))
  317. #define NewWaitNextEventPrePatch(userRoutine)        ((WaitNextEventPrePatchUPP)(userRoutine))
  318. #define NewWaitNextEventPostPatch(userRoutine)        ((WaitNextEventPostPatchUPP)(userRoutine))
  319. #endif
  320.  
  321. #if GENERATINGCFM
  322. #define CallCleanUpApplicationPatch(userRoutine)                                CallUniversalProc((UniversalProcPtr)(userRoutine),uppCleanUpApplicationPatchProcInfo)
  323. #define CallCloseWindowProc(userRoutine,window)                                    CallUniversalProc((UniversalProcPtr)(userRoutine),uppCloseWindowProcInfo,(window))
  324. #define CallCloseWindowPatch(userRoutine,window,proc)                            CallUniversalProc((UniversalProcPtr)(userRoutine),uppCloseWindowPatchProcInfo,(window),(proc))
  325. #define CallDMFinalInitPatch(userRoutine)                                        CallUniversalProc((UniversalProcPtr)(userRoutine),uppDMFinalInitPatchProcInfo)
  326. #define CallDisposeWindowProc(userRoutine,window)                                CallUniversalProc((UniversalProcPtr)(userRoutine),uppDisposeWindowProcInfo,(window))
  327. #define CallDisposeWindowPatch(userRoutine,window,proc)                            CallUniversalProc((UniversalProcPtr)(userRoutine),uppDisposeWindowPatchProcInfo,(window),(proc))
  328. #define CallDragGrayRgnLWProc(userRoutine,rgn,start,limit,slop,axis,action)        CallUniversalProc((UniversalProcPtr)(userRoutine),uppDragGrayRgnLWProcInfo,(rgn),(start),(limit),(slop),(axis),(action))
  329. #define CallDragGrayRgnPatch(userRoutine,rgn,start,limit,slop,axis,action,proc)    CallUniversalProc((UniversalProcPtr)(userRoutine),uppDragGrayRgnPatchProcInfo,(rgn),(start),(limit),(slop),(axis),(action),(proc))
  330. #define CallDragWindowProc(userRoutine,window,start,limit)                        CallUniversalProc((UniversalProcPtr)(userRoutine),uppDragWindowProcInfo,(window),(start),(limit))
  331. #define CallDragWindowPatch(userRoutine,window,start,limit,proc)                CallUniversalProc((UniversalProcPtr)(userRoutine),uppDragWindowPatchProcInfo,(window),(start),(limit),(proc))
  332. #define CallFindSystemWindowPatch(userRoutine,where,window,result)                CallUniversalProc((UniversalProcPtr)(userRoutine),uppFindSystemWindowPatchProcInfo,(where),(window),(result))
  333. #define CallFindWindowProc(userRoutine,where,window)                            CallUniversalProc((UniversalProcPtr)(userRoutine),uppFindWindowProcInfo,(where),(window))
  334. #define CallFindWindowPatch(userRoutine,where,window,proc)                        CallUniversalProc((UniversalProcPtr)(userRoutine),uppFindWindowPatchProcInfo,(where),(window),(proc))
  335. #define CallFrameRgnProc(userRoutine,rgn)                                        CallUniversalProc((UniversalProcPtr)(userRoutine),uppFrameRgnProcInfo,(rgn))
  336. #define CallFrameRgnPatch(userRoutine,rgn,proc)                                    CallUniversalProc((UniversalProcPtr)(userRoutine),uppFrameRgnPatchProcInfo,(rgn),(proc))
  337. #define CallGetMouseProc(userRoutine,mouseLoc)                                    CallUniversalProc((UniversalProcPtr)(userRoutine),uppGetMouseProcInfo,(mouseLoc))
  338. #define CallGetMousePatch(userRoutine,mouseLoc,proc)                            CallUniversalProc((UniversalProcPtr)(userRoutine),uppGetMousePatchProcInfo,(mouseLoc),(proc))
  339. #define CallInitApplicationPatch(userRoutine)                                    CallUniversalProc((UniversalProcPtr)(userRoutine),uppInitApplicationPatchProcInfo)
  340. #define CallMenuSelectProc(userRoutine,startPt)                                    CallUniversalProc((UniversalProcPtr)(userRoutine),uppMenuSelectProcInfo,(startPt))
  341. #define CallMenuSelectPatch(userRoutine,startPt,proc)                            CallUniversalProc((UniversalProcPtr)(userRoutine),uppMenuSelectPatchProcInfo,(startPt),(proc))
  342. #define CallPaintRgnProc(userRoutine,rgn)                                        CallUniversalProc((UniversalProcPtr)(userRoutine),uppPaintRgnProcInfo,(rgn))
  343. #define CallPaintRgnPatch(userRoutine,rgn,proc)                                    CallUniversalProc((UniversalProcPtr)(userRoutine),uppPaintRgnPatchProcInfo,(rgn),(proc))
  344. #define CallPostEventPatch(userRoutine,num,msg)                                    CallUniversalProc((UniversalProcPtr)(userRoutine),uppPostEventPatchProcInfo,(num),(msg))
  345. #define CallStillDownProc(userRoutine)                                            CallUniversalProc((UniversalProcPtr)(userRoutine),uppStillDownProcInfo)
  346. #define CallStillDownPatch(userRoutine,proc)                                    CallUniversalProc((UniversalProcPtr)(userRoutine),uppStillDownPatchProcInfo,(proc))
  347. #define CallSynchIdleTimePatch(userRoutine)                                        CallUniversalProc((UniversalProcPtr)(userRoutine),uppSynchIdleTimePatchProcInfo)
  348. #define CallSysWindowHandlerProc(userRoutine,window,event,part,handled)            CallUniversalProc((UniversalProcPtr)(userRoutine),uppSysWindowHandlerProcInfo,(window),(event),(part),(handled))
  349. #define CallTrackGoAwayProc(userRoutine,window,where)                            CallUniversalProc((UniversalProcPtr)(userRoutine),uppTrackGoAwayProcInfo,(window),(where))
  350. #define CallTrackGoAwayPatch(userRoutine,window,where,proc)                        CallUniversalProc((UniversalProcPtr)(userRoutine),uppTrackGoAwayPatchProcInfo,(window),(where),(proc))
  351. #define CallVBLPatch(userRoutine)                                                CallUniversalProc((UniversalProcPtr)(userRoutine),uppVBLPatchProcInfo)
  352. #define CallWaitMouseUpProc(userRoutine)                                        CallUniversalProc((UniversalProcPtr)(userRoutine),uppWaitMouseUpProcInfo)
  353. #define CallWaitMouseUpPatch(userRoutine,proc)                                    CallUniversalProc((UniversalProcPtr)(userRoutine),uppWaitMouseUpPatchProcInfo,(proc))
  354. #define CallWaitNextEventProc(userRoutine,mask,event,sleep,mouse)                CallUniversalProc((UniversalProcPtr)(userRoutine),uppWaitNextEventProcInfo,(mask),(event),(sleep),(mouse))
  355. #define CallWaitNextEventPrePatch(userRoutine,mask,event,sleep,mouse)            CallUniversalProc((UniversalProcPtr)(userRoutine),uppWaitNextEventPrePatchProcInfo,(mask),(event),(sleep),(mouse))
  356. #define CallWaitNextEventPostPatch(userRoutine,mask,event,sleep,mouse,result)    CallUniversalProc((UniversalProcPtr)(userRoutine),uppWaitNextEventPostPatchProcInfo,(mask),(event),(sleep),(mouse),(result))
  357. #else
  358. #define CallCleanUpApplicationPatch(userRoutine)                                (*(CleanUpApplicationPatchPtr)(userRoutine))()
  359. #define CallCloseWindowProc(userRoutine,window)                                    (*(CloseWindowProcPtr)(userRoutine))((window))
  360. #define CallCloseWindowPatch(userRoutine,window,proc)                            (*(CloseWindowPatchPtr)(userRoutine))((window),(proc))
  361. #define CallDMFinalInitPatch(userRoutine)                                        (*(DMFinalInitPatchPtr)(userRoutine))()
  362. #define CallDisposeWindowProc(userRoutine,window)                                (*(DisposeWindowProcPtr)(userRoutine))((window))
  363. #define CallDisposeWindowPatch(userRoutine,window,proc)                            (*(DisposeWindowPatchPtr)(userRoutine))((window),(proc))
  364. #define CallDragGrayRgnLWProc(userRoutine,rgn,start,limit,slop,axis,action)        (*(DragGrayRgnLWProcPtr)(userRoutine))((rgn),(start),(limit),(slop),(axis),(action))
  365. #define CallDragGrayRgnPatch(userRoutine,rgn,start,limit,slop,axis,action,proc)    (*(DragGrayRgnPatchPtr)(userRoutine))((rgn),(start),(limit),(slop),(axis),(action),(proc))
  366. #define CallDragWindowProc(userRoutine,window,start,limit)                        (*(DragWindowProcPtr)(userRoutine))((window),(start),(limit))
  367. #define CallDragWindowPatch(userRoutine,window,start,limit,proc)                (*(DragWindowPatchPtr)(userRoutine))((window),(start),(limit),(proc))
  368. #define CallFindSystemWindowPatch(userRoutine,where,window,result)                (*(FindSystemWindowPatchPtr)(userRoutine))((where),(window),(result))
  369. #define CallFindWindowProc(userRoutine,where,window)                            (*(FindWindowProcPtr)(userRoutine))((where),(window))
  370. #define CallFindWindowPatch(userRoutine,where,window,proc)                        (*(FindWindowPatchPtr)(userRoutine))((where),(window),(proc))
  371. #define CallFrameRgnProc(userRoutine,rgn)                                        (*(FrameRgnProcPtr)(userRoutine))((rgn))
  372. #define CallFrameRgnPatch(userRoutine,rgn,proc)                                    (*(FrameRgnPatchPtr)(userRoutine))((rgn),(proc))
  373. #define CallGetMouseProc(userRoutine,mouseLoc)                                    (*(GetMouseProcPtr)(userRoutine))((mouseLoc))
  374. #define CallGetMousePatch(userRoutine,mouseLoc,proc)                            (*(GetMousePatchPtr)(userRoutine))((mouseLoc),(proc))
  375. #define CallInitApplicationPatch(userRoutine)                                    (*(InitApplicationPatchPtr)(userRoutine))()
  376. #define CallMenuSelectProc(userRoutine,startPt)                                    (*(MenuSelectProcPtr)(userRoutine))((startPt))
  377. #define CallMenuSelectPatch(userRoutine,startPt,proc)                            (*(MenuSelectPatchPtr)(userRoutine))((startPt),(proc))
  378. #define CallPaintRgnProc(userRoutine,rgn)                                        (*(PaintRgnProcPtr)(userRoutine))((rgn))
  379. #define CallPaintRgnPatch(userRoutine,rgn,proc)                                    (*(PaintRgnPatchPtr)(userRoutine))((rgn),(proc))
  380. #define CallPostEventPatch(userRoutine,num,msg)                                    (*(PostEventPatchPtr)(userRoutine))((num),(msg))
  381. #define CallStillDownProc(userRoutine)                                            (*(StillDownProcPtr)(userRoutine))()
  382. #define CallStillDownPatch(userRoutine,proc)                                    (*(StillDownPatchPtr)(userRoutine))((proc))
  383. #define CallSynchIdleTimePatch(userRoutine)                                        (*(SynchIdleTimePatchPtr)(userRoutine))()
  384. #define CallSysWindowHandlerProc(userRoutine,window,event,part,handled)            (*(SysWindowHandlerProcPtr)(userRoutine))((window),(event),(part),(handled))
  385. #define CallTrackGoAwayProc(userRoutine,window,where)                            (*(TrackGoAwayProcPtr)(userRoutine))((window),(where))
  386. #define CallTrackGoAwayPatch(userRoutine,window,where,proc)                        (*(TrackGoAwayPatchPtr)(userRoutine))((window),(where),(proc))
  387. #define CallVBLPatch(userRoutine)                                                (*(VBLPatchPtr)(userRoutine))()
  388. #define CallWaitMouseUpProc(userRoutine)                                        (*(WaitMouseUpProcPtr)(userRoutine))()
  389. #define CallWaitMouseUpPatch(userRoutine,proc)                                    (*(WaitMouseUpPatchPtr)(userRoutine))((proc))
  390. #define CallWaitNextEventProc(userRoutine,mask,event,sleep,mouse)                (*(WaitNextEventProcPtr)(userRoutine))((mask),(event),(sleep),(mouse))
  391. #define CallWaitNextEventPrePatch(userRoutine,mask,event,sleep,mouse)            (*(WaitNextEventPrePatchPtr)(userRoutine))((mask),(event),(sleep),(mouse))
  392. #define CallWaitNextEventPostPatch(userRoutine,mask,event,sleep,mouse,result)    (*(WaitNextEventPostPatchPtr)(userRoutine))((mask),(event),(sleep),(mouse),(result))
  393. #endif
  394.  
  395.  
  396. #endif /* _PROCINFO_ */
  397.