Platform SDK: Files and I/O |
The LZOpenFile function creates, opens, reopens, or deletes the specified file.
INT LZOpenFile( LPTSTR lpFileName, // file name LPOFSTRUCT lpReOpenBuf, // file information buffer WORD wStyle // action to take );
The szPathName member of this structure contains characters from the original equipment manufacturer (OEM) character set.
Value | Meaning |
---|---|
OF_CANCEL | Ignored. In the Win32-based application programming interface (API), the OF_PROMPT style produces a dialog box containing a Cancel button. |
OF_CREATE | Directs LZOpenFile to create a new file. If the file already exists, it is truncated to zero length. |
OF_DELETE | Deletes the file. |
OF_EXIST | Opens the file and then closes it to test for a file's existence. |
OF_PARSE | Fills the OFSTRUCT structure but carries out no other action. |
OF_PROMPT | Displays a dialog box if the requested file does not exist. The dialog box informs the user that the system cannot find the file, and it contains Retry and Cancel buttons. Clicking the Cancel button directs LZOpenFile to return a file not found error message. |
OF_READ | Opens the file for reading only. |
OF_READWRITE | Opens the file for reading and writing. |
OF_REOPEN | Opens the file using information in the reopen buffer. |
OF_SHARE_DENY_NONE | Opens the file without denying other processes read or write access to the file. LZOpenFile fails if the file has been opened in compatibility mode by any other process. |
OF_SHARE_DENY_READ | Opens the file and denies other processes read access to the file. LZOpenFile fails if the file has been opened in compatibility mode or has been opened for read access by any other process. |
OF_SHARE_DENY_WRITE | Opens the file and denies other processes write access to the file. LZOpenFile fails if the file has been opened in compatibility mode or has been opened for write access by any other process. |
OF_SHARE_EXCLUSIVE | Opens the file in exclusive mode, denying other processes both read and write access to the file. LZOpenFile fails if the file has been opened in any other mode for read or write access, even by the current process. |
OF_WRITE | Opens the file for writing only. |
If the function succeeds and the value specified by the wStyle parameter is not OF_READ, the return value is a handle identifying the file. If the file is compressed and opened with wStyle set to OF_READ, the return value is a special file handle.
If the function fails, the return value is an LZERROR_* code. These codes have values less than zero. There is no extended error information for this function; do not call GetLastError.
Note LZOpenFile calls neither SetLastError nor SetLastErrorEx; thus, its failure does not affect a thread's last-error code.
The following is the list of the error codes that LZOpenFile can return upon failure.
Value | Meaning |
---|---|
LZERROR_BADINHANDLE | The handle identifying the source file is not valid. The file cannot be read. |
LZERROR_GLOBALLOC | The maximum number of open compressed files has been exceeded or local memory cannot be allocated. |
If the wStyle parameter is the OF_READ flag (or OF_READ and any of the OF_SHARE_ flags) and the file is compressed, LZOpenFile calls the LZInit function, which performs the required initialization for the decompression operations.
The handle this function returns is compatible only with the functions in LZEXPAND.DLL; it should not be used for other file operations.
Windows NT/ 2000: If LZOpenFile is unable to open the file specified by lpFileName, it attempts to open a file with almost the same file name, except the last character is replaced with an underscore ("_"). Thus, if an attempt to open MyProgram.exe fails, LZOpenFile tries to open MyProgram.ex_. Installation packages often substitute the underscore for the last letter of a file name extension to indicate that the file is compressed. For example, MyProgram.exe compressed might be named MyProgram.ex_. To determine the name of the file opened (if any), examine the szPathName member of the OFSTRUCT structure in the lpReOpenBuf parameter.
Windows NT/2000: Requires Windows NT 3.1 or later.
Windows 95/98: Requires Windows 95 or later.
Header: Declared in Lzexpand.h; include Windows.h.
Library: Use Lz32.lib.
Unicode: Implemented as Unicode and ANSI versions on Windows NT/2000.
Data Decompression Library Overview, Data Decompression Library Functions, LZClose, LZInit, LZRead, OFSTRUCT