The EasyRequest() function calls a lower level Intuition function named BuildEasyRequest() to construct the requester. An application can call BuildEasyRequest() directly if it needs to use an easy requester but requires custom handling of the events sent to the requester. Handling of the events should be done using the SysReqHandler() function as described below. The BuildEasyRequest() functions take the same arguments as EasyRequest(): struct Window *BuildEasyRequestArgs( struct Window *window, struct EasyStruct *easyStruct, unsigned long idcmp, APTR args ); struct Window *BuildEasyRequest( struct Window *window, struct EasyStruct *easyStruct, unsigned long idcmp, APTR arg1, ... ); To process input event information directly while an easy requester is displayed, first call BuildEasyRequest() then call SysReqHandler() periodically to process user input. LONG SysReqHandler( struct Window *window, ULONG *idcmpPtr, long waitInput ); This will provide standard handling of events but allow the application to control the timing of checking the events. This handling includes checks for left Amiga keys. The FreeSysRequest() function must be called after an application has finished with a requester (if it was created with BuildEasyRequest() call). void FreeSysRequest( struct Window *window ); This function ends the requester and frees any resources allocated with the BuildEasyRequest() call.