- * When operating on large archives, operations such as extraction will
- * naturally take a while to complete. Because of this and to improve the
- * potential user-friendliness of library clients, a number of functions take a
- * pointer to a progress function of type ::wimlib_progress_func_t. This
- * function will be called periodically during the WIM operation(s) to report on
- * the progress of the operation (for example, how many bytes have been written
- * so far).
+ * Library users can provide a progress function which will be called
+ * periodically during operations such as extracting a WIM image or writing a
+ * WIM image. A ::WIMStruct can have a progress function of type
+ * ::wimlib_progress_func_t associated with it by calling
+ * wimlib_register_progress_function() or by opening the ::WIMStruct using
+ * wimlib_open_wim_with_progress(). Once this is done, the progress function
+ * will be called automatically during many operations, such as
+ * wimlib_extract_image() and wimlib_write().
+ *
+ * Some functions that do not operate directly on a user-provided ::WIMStruct,
+ * such as wimlib_join(), also take the progress function directly using an
+ * extended version of the function, such as wimlib_join_with_progress().
+ *
+ * In wimlib v1.6.3 and later, progress functions are no longer just
+ * unidirectional. You can now return ::WIMLIB_PROGRESS_STATUS_ABORT to cause
+ * the current operation to be aborted. wimlib v1.6.3 also added the third
+ * argument to ::wimlib_progress_func_t, which is a user-supplied context.