A requester always passes three parameters to your custom hook function: ULONG MyHookFunc(ULONG type, CPTR object, CPTR AslRequester) If MyHookFunc() is called from a file requester doing _DOWILDFUNC, the three parameters are: type = FILF_DOWILDFUNC object = pointer to an AnchorPath structure (from <dos/dosasl.h>) AslRequester = pointer to the FileRequester that called the hook function (Return a zero to display this file) The AnchorPath structure is a dos.library structure used in pattern matching. Refer to the AmigaDOS Manual, 3rd Edition by Bantam Books for more information. If MyHookFunc() is called from a font requester doing _DOWILDFUNC, the three parameters are: type = FONF_DOWILDFUNC object = pointer to a TextAttr structure (from <graphics/text.h>) AslRequester = pointer to the FontRequester that called the hook function (Return non-zero to display this particular font size) If MyHookFunc() is called from a file or font requester doing _DOMSGFUNC, the three parameters are: type = FILF_DOMSGFUNC (file requester) or FONF_DOMSGFUNC (font requester) object = pointer to the IntuiMessage for the function to process AslRequester = pointer to the FileRequester or FontRequester that called the hook function (Return a pointer to the IntuiMessage) Notice that it is possible for a requester to use both _DOWILDFUNC and _DOMSGFUNC at the same time. Your hook function has to differentiate between the two cases by testing the type passed to it. It is not possible for a font and file requester to share a hook function for a _DOWILDFUNC, because FILF_DOWILDFUNC is defined to be the same value as FONF_DOWILDFUNC, so the hook function cannot tell if the object (from the prototype above) is a pointer to an AnchorPath structure or a pointer to a TextAttr structure. It is possible for font and file requesters to share one hook function for _DOMSGFUNC (even though FILF_DOMSGFUNC and FONF_DOMSGFUNC are equal) because, in this case, font and file requesters both call your hook function in the same manner.
[Back to Amiga Developer Docs]