+/**
+ * Since wimlib v1.5.0: Extract one or more images from a pipe on which a
+ * pipable WIM is being sent.
+ *
+ * See the documentation for ::WIMLIB_WRITE_FLAG_PIPABLE for more information
+ * about pipable WIMs.
+ *
+ * This function operates in a special way to read the WIM fully sequentially.
+ * As a result, there is no ::WIMStruct is made visible to library users, and
+ * you cannot call wimlib_open_wim() on the pipe. (You can, however, use
+ * wimlib_open_wim() to transparently open a pipable WIM if it's available as a
+ * seekable file, not a pipe.)
+ *
+ * @param pipe_fd
+ * File descriptor, which may be a pipe, opened for reading and positioned
+ * at the start of the pipable WIM.
+ * @param image_num_or_name
+ * String that specifies the 1-based index or name of the image to extract.
+ * It is translated to an image index using the same rules that
+ * wimlib_resolve_image() uses. However, unlike wimlib_extract_image(),
+ * only a single image (not all images) can be specified. Alternatively,
+ * specify @p NULL here to use the first image in the WIM if it contains
+ * exactly one image but otherwise return @p WIMLIB_ERR_INVALID_IMAGE.
+ * @param target
+ * Same as the corresponding parameter to wimlib_extract_image().
+ * @param extract_flags
+ * Same as the corresponding parameter to wimlib_extract_image(), except
+ * for the following exceptions: ::WIMLIB_EXTRACT_FLAG_SEQUENTIAL is
+ * always implied, since data is always read from @p pipe_fd sequentially
+ * in this mode; also, ::WIMLIB_EXTRACT_FLAG_TO_STDOUT is invalid and will
+ * result in ::WIMLIB_ERR_INVALID_PARAM being returned.
+ * @param progress_func
+ * Same as the corresponding parameter to wimlib_extract_image(), except
+ * ::WIMLIB_PROGRESS_MSG_EXTRACT_SPWM_PART_BEGIN messages will also be
+ * received.
+ *
+ * @return 0 on success; nonzero on error. The possible error codes include
+ * those returned by wimlib_extract_image() as well as the following:
+ *
+ * @retval ::WIMLIB_ERR_INVALID_PIPABLE_WIM
+ * Data read from the pipable WIM was invalid.
+ * @retval ::WIMLIB_ERR_NOT_PIPABLE
+ * The WIM being piped in a @p pipe_fd is a normal WIM, not a pipable WIM.
+ */
+extern int
+wimlib_extract_image_from_pipe(int pipe_fd,
+ const wimlib_tchar *image_num_or_name,
+ const wimlib_tchar *target, int extract_flags,
+ wimlib_progress_func_t progress_func);
+