fpOpenFileFromFilterSession()
This function opens a container file so that you can extract its subfiles.
Syntax
KVErrorCode (pascal *fpOpenFileFromFilterSession)(
KVFilterSession session,
KVOpenFileArg openArg,
void** pFile
);
Arguments
session
|
A Filter session that you initialized by calling fpInit(). |
openArg
|
A KVOpenFileArg, which contains the parameters necessary to open a file for extraction. Before you initialize the KVOpenFileArg structure, use the macro KVStructInit to initialize the KVStructHead structure. |
pFile
|
A handle for the opened file. Use this handle in subsequent file extraction calls to identify the source file. |
Returns
- If the file is opened successfully, the return value is
KVERR_Success. - If the file is not opened, the return value is an error code and
pFilepoints toNULL.
Lifetime and Memory Management
After you have finished extracting the file, call fpCloseFile() to free the memory allocated by this function.
When extracting out-of-process in stream mode, you can only open one container at a time (per session).
Example
KVOpenFileArgRec openArg;
// Initialize the structure using KVStructInit
KVStructInit(&openArg);
openArg.extractDir = destDir;
openArg.document = pDocument;
/*Open the main file */
if (error = extractInterface->fpOpenFileFromFilterSession(session, &openArg, &pFile))
{
extractInterface->fpCloseFile(pFile);
pFile = NULL;
}