[futurebasic] re: [fb] Headers again: a plea

Message: < previous - next > : Reply : Subscribe : Cleanse
Home   : September 2004 : Group Archive : Group : All Groups

From: "H. Gluender" <h@...>
Date: Fri, 24 Sep 2004 16:31:14 +0200
Dear listers and header converters,

I've realized by inspecting the FB-header "CarbonEventsCore" that has
been converted by Robert Purves that there is a more correct way to
do what I've said before.

******************************************************
Please don't...

... use variable definitions that differ from Apple's!
******************************************************

Here is an example from the Navigation-header:


Apple's header:

EXTERN_API_C( OSStatus )
NavCreateGetFileDialog(
   const NavDialogCreationOptions *  inOptions,
   NavTypeListHandle                 inTypeList,
   NavEventUPP                       inEventProc,
   NavPreviewUPP                     inPreviewProc,
   NavObjectFilterUPP                inFilterProc,
   void *                            inClientData,
   NavDialogRef *                    outDialog);
------------------------------------------------------

FB's header (presently):

TOOLBOX FN NavCreateGetFileDialog (
   NavDialogCreationOptions * 	inOptions, ¬
   NavTypeListHandle 		inTypeList, ¬
   proc 				inEventProc, ¬
   proc 				inPreviewProc, ¬
   proc 				inFilterProc, ¬
   long * 			inClientData, ¬
   NavDialogRef * 		outDialog) = OSStatus
------------------------------------------------------

Better FB header:

#DEFINE NavEventUPP            AS PROC
#DEFINE NavPreviewUPP          AS PROC
#DEFINE NavObjectFilterUPP     AS PROC

TOOLBOX FN NavCreateGetFileDialog ( ¬
   NavDialogCreationOptions * 	inOptions, ¬
   NavTypeListHandle 		inTypeList, ¬
   NavEventUPP 			inEventProc, ¬
   NavPreviewUPP 		inPreviewProc, ¬
   NavObjectFilterUPP 		inFilterProc, ¬
   long * 			inClientData, ¬
   NavDialogRef * 		outDialog) = OSStatus
------------------------------------------------------

Even better FB header:

#DEFINE void                   AS Long // perhaps

#DEFINE NavEventProcPtr        AS Proc
#DEFINE NavPreviewProcPtr      AS Proc
#DEFINE NavObjectFilterProcPtr AS Proc

#DEFINE NavEventUPP            AS Pointer
#DEFINE NavPreviewUPP          AS Pointer
#DEFINE NavObjectFilterUPP     AS Pointer

TOOLBOX FN NewNavEventUPP( ¬
   NavEventProcPtr 		userRoutine) = NavEventUPP

TOOLBOX FN NewNavPreviewUPP ( ¬
   NavPreviewProcPtr 		userRoutine) = NavPreviewUPP

TOOLBOX FN NewNavObjectFilterUPP ( ¬
   NavObjectFilterProcPtr 	userRoutine) = NavObjectFilterUPP

TOOLBOX FN NavCreateGetFileDialog ( ¬
   NavDialogCreationOptions * 	inOptions, ¬
   NavTypeListHandle 		inTypeList, ¬
   NavEventUPP 			inEventProc, ¬
   NavPreviewUPP 		inPreviewProc, ¬
   NavObjectFilterUPP 		inFilterProc, ¬
   void * 			inClientData, ¬
   NavDialogRef * 		outDialog) = OSStatus

******************************************************

May the latter serve as a template for similar cases...

Best
--


                   Herbie

          ------------------------

          <http://www.gluender.de>