In a completely custom interface, the file transfer application handles all events connected with the user interface and provides custom dialog boxes and message boxes for the user. The file transfer engine sends user interface events to the xfNotifyProc function that the application provides, and that function calls appropriate custom code.
Note that custom interfaces need to provide for determining the user's acceptance of incoming files, whether it is through a dialog that is presented with each collection of received files or a setting that applies to all received files.