This structure defines the input parameters required to extract a subfile. See fpExtractSubFile(). The structure is defined in kvxtract.h
.
typedef struct tag_KVExtractSubFileArg { KVStructHeader; int index; KVCharSet srcCharset; KVCharSet trgCharset; int isMSBLSB; DWORD extractionFlag char *filePath; char *extractDir; KVOutputStream *stream; } KVExtractContainerSubFileArgRec, *KVExtractContainerSubFileArg;
KVStructHeader
|
The KeyView version of the structure. See |
index
|
The index number of the subfile to be extracted. |
srcCharset
|
Specifies the source character set of the subfile when the file format’s reader cannot determine the character set. The character sets are enumerated in KVCharSet of kvtypes.h . See KVExtractSubFileArg. |
trgCharset
|
If the file type is KVFileType_Main , this is the target character set of the extracted file. Otherwise, this is ignored. The character sets are enumerated in KVCharSet in kvtypes.h . See KVExtractSubFileArg. |
isMSBLSB
|
This flag indicates whether the byte order for Unicode text is Big Endian (MSBLSB) or Little Endian (LSBMSB). |
extractionFlag
|
A bitwise flag that defines additional parameters for file extraction. The following flags are available:
NOTE: When an HTML or RTF message body is extracted, the message’s mail headers (such as "From," "To," and "Subject,") are extracted, saved in the same format, and added to the beginning of the subfile. This applies to PST (MAPI-based reader), MSG, and NSF files only.
NOTE: In file mode, when the application sets this flag in fpExtractSubFile(), it must also check the KVSubFileExtractInfo structure’s
filePath parameter to verify the file name used for extraction. |
filePath
|
A pointer to the suggested path or file name to which the subfile is extracted. This can be a file name, partial path, or full path. You can use this in conjunction with extractDir to create the full output path. See KVExtractSubFileArg. |
extractDir
|
A pointer to the directory to which subfiles are extracted. This directory must exist. If you set this flag, the path specified in KVOpenFileArg->extractDir is ignored. You can use this in conjunction with filePath to create the full output path. |
stream
|
A pointer to an output stream defined by KVOutputStream. See KVExtractSubFileArg below. |
If the document character set is detected and is also specified in srcCharset
, the detected character set is overridden by the specified character set. If the source character set is not detected and is not specified, character set conversion does not occur. The Supported Formats section lists the formats for which the source character set can be determined.
The KVSubFileExtractInfoFlag_CharsetConverted
flag in the KVSubFileExtractInfo structure indicates whether the character set of the subfile was converted during extraction.
The following applies when the output is to a file:
If filePath
is a valid full path, filePath
is the output path, and the path in extractDir
is ignored.
If filePath
is a file name or partial path, the target directory specified in either KVExtractSubFileArg->extractDir
or KVOpenFileArg->extractDir
is used to create the full path. See KVOpenFileArg.
If filePath
is a full path or partial path, and createDir
is TRUE
, the directory is created if it does not already exist.
If filePath
is not specified, a default name and the target directory specified in either KVExtractSubFileArg->extractDir
or KVOpenFileArg->extractDir
are used to create a full path.
If both filePath
and extractDir
are not specified or are invalid, an error is returned.
If filePath
is valid, but extractDir
is not valid, an error is returned.
The following applies when the output is to a stream:
Set filePath
and extractDir
to NULL
.
The file format (docInfo
) and extraction file path (filePath
) are not returned in KVSubFileExtractInfo.
The KVExtractionFlag_CreateDir
and KVExtractionFlag_Overwrite
flags are ignored.
|