+/** An array of these structures is passed to wimlib_add_image_multisource() to
+ * specify the sources from which to create a WIM image. */
+struct wimlib_capture_source {
+ /** Absolute or relative path to a file or directory on the external
+ * filesystem to be included in the WIM image. */
+ wimlib_tchar *fs_source_path;
+
+ /** Destination path in the WIM image. Leading and trailing slashes are
+ * ignored. The empty string or @c NULL means the root directory of the
+ * WIM image. */
+ wimlib_tchar *wim_target_path;
+
+ /** Reserved; set to 0. */
+ long reserved;
+};
+
+/** Structure that specifies a list of path patterns. */
+struct wimlib_pattern_list {
+ /** Array of patterns. The patterns may be modified by library code,
+ * but the @a pats pointer itself will not. See the man page for
+ * <b>wimlib-imagex capture</b> for more information about allowed
+ * patterns. */
+ wimlib_tchar **pats;
+
+ /** Number of patterns in the @a pats array. */
+ size_t num_pats;
+
+ /** Ignored; may be used by the calling code. */
+ size_t num_allocated_pats;
+};
+
+/** A structure that contains lists of wildcards that match paths to treat
+ * specially when capturing a WIM image. */
+struct wimlib_capture_config {
+ /** Paths matching any pattern this list are excluded from being
+ * captured, except if the same path appears in @a
+ * exclusion_exception_pats. */
+ struct wimlib_pattern_list exclusion_pats;
+
+ /** Paths matching any pattern in this list are never excluded from
+ * being captured. */
+ struct wimlib_pattern_list exclusion_exception_pats;
+
+ /** Reserved for future capture configuration options. */
+ struct wimlib_pattern_list reserved1;
+
+ /** Reserved for future capture configuration options. */
+ struct wimlib_pattern_list reserved2;
+
+ /** Library internal use only. */
+ wimlib_tchar *_prefix;
+
+ /** Library internal use only. */
+ size_t _prefix_num_tchars;
+};
+