AsyncLoadFile

Starts loading a file asynchronously.

Synopsis

Err AsyncLoadFile (char *fname, LoadFileInfo *lf)

Description

Starts loading the specified file asynchronously, using the options in the LoadFileInfo structure.

The function opens the file, gets status information like filesize, then starts the I/O process. Upon successful return from this function you can refer to the buffer, bufSize, and bf (BlockFileInfo) fields of the LoadFileInfo structure, even while the I/O is still in progress. The contents of the buffer are, of course, indeterminate until the I/O process completes.

The LoadFileInfo structure is defined in blockfile.h. It contains values that control the load operation. If the buffer pointer in the structure is NULL, a buffer is allocated for you. If the buffer pointer is non-NULL, it is a pointer to a buffer you allocated for the file. If the ioDonePort value in the structure is non-zero, the I/O is set up to notify you via message when the load completes.

If you store a NULL buffer pointer into the LoadFileInfo structure and allow this function to allocate a buffer for you, use the UnloadFile() function to release the buffer when you no longer need its contents.

You must eventually follow a call to this function with a call to either AbortAsyncLoadFile(), WaitAsyncLoadFile(), or FinishAsyncLoadFile().

Arguments

fname
Name of the file to load.
lf
Pointer to a LoadFileInfo structure which describes the buffer and file characteristics.

Return Value

Returns zero on success or a negative error code.

Implementation

Library call implemented in lib3do.lib.

Associated Files

lib3do.lib, blockfile.h

See Also

AbortAsyncLoadFile, LoadFile, LoadFileHere, UnloadFile