+/** A user-supplied function that will be called periodically during certain WIM
+ * operations. The first argument specifies the type of operation that is being
+ * performed or is about to be started or has been completed. The second
+ * argument is a pointer to one of a number of structures depending on the first
+ * argument. It may be @c NULL for some message types.
+ *
+ * The return value
+ * is currently ignored, but it may do something in the future. (Set it to 0
+ * for now.)
+ */
+typedef int (*wimlib_progress_func_t)(enum wimlib_progress_msg msg_type,
+ const union wimlib_progress_info *info);
+
+/*****************************
+ * WIMLIB_ADD_IMAGE_FLAG_* *
+ *****************************/
+
+/** Directly capture a NTFS volume, not a generic directory. */
+#define WIMLIB_ADD_IMAGE_FLAG_NTFS 0x00000001
+
+/** Follow symlinks; archive and dump the files they point to. Cannot be used
+ * with ::WIMLIB_ADD_IMAGE_FLAG_NTFS. */
+#define WIMLIB_ADD_IMAGE_FLAG_DEREFERENCE 0x00000002
+
+/** Print the name of each file or directory as it is scanned to be included in
+ * the WIM image. */
+#define WIMLIB_ADD_IMAGE_FLAG_VERBOSE 0x00000004
+
+/** Mark the image being added as the bootable image of the WIM. */
+#define WIMLIB_ADD_IMAGE_FLAG_BOOT 0x00000008
+
+/******************************
+ * WIMLIB_EXPORT_FLAG_* *
+ ******************************/
+
+/** See documentation for wimlib_export_image(). */
+#define WIMLIB_EXPORT_FLAG_BOOT 0x00000001
+
+/******************************
+ * WIMLIB_EXTRACT_FLAG_* *
+ ******************************/
+
+/** Apply the image directly to a NTFS volume, not a generic directory. */
+#define WIMLIB_EXTRACT_FLAG_NTFS 0x00000001
+
+/** When identical files are extracted from the WIM, always hard link them
+ * together. Not valid with ::WIMLIB_EXTRACT_FLAG_NTFS. */
+#define WIMLIB_EXTRACT_FLAG_HARDLINK 0x00000002
+
+/** When identical files are extracted from the WIM, always symlink them
+ * together. Not valid with ::WIMLIB_EXTRACT_FLAG_NTFS. */
+#define WIMLIB_EXTRACT_FLAG_SYMLINK 0x00000004
+
+/** Print the name of each file as it is extracted from the WIM image. */
+#define WIMLIB_EXTRACT_FLAG_VERBOSE 0x00000008
+
+/** Read the WIM file sequentially while extracting the image. */
+#define WIMLIB_EXTRACT_FLAG_SEQUENTIAL 0x00000010
+
+/******************************
+ * WIMLIB_MOUNT_FLAG_* *
+ ******************************/
+