Функция LZOpenFile


Функция LZOpenFile создает, открывает, повторно открывает или удаляет указанный файл.

Синтаксис

INT LZOpenFile(
  LPTSTR lpFileName,       // имя файла
  LPOFSTRUCT lpReOpenBuf,  // буфер данных файла
  WORD wStyle              // предпринимаемое действие
);

Параметры

lpFileName

[in] Указатель на символьную строку, которая устанавливает имя файла.

lpReOpenBuf

[out] Указатель на структуру OFSTRUCT, которая должна получить информацию о файле, когда файл открывается в  первый раз. Структура может использоваться при последующих вызовах функции LZOpenFile, которые относятся к открытому файлу.

Член szPathName  этой структуры содержит буквы и знаки символьного набора фирмы-изготовителя комплектного оборудования (OEM) .

wStyle

[in] Предпринимаемое действие. Этот параметр может состоять из одного или нескольких нижеследующих значений.
Значение Предназначение
OF_CANCEL Игнорируется. Предусмотрен только для совместимости с 16-разрядным Windows. Используйте стиль OF_PROMPT , чтобы показать на экране диалоговое окно, содержащее кнопку Cancel (Отменить).
OF_CREATE Предписывает функции LZOpenFile создать новый файл. Если файл уже существует, он обрезается до нулевой длины.
OF_DELETE Удаляет файл.
OF_EXIST Открывает файл, и затем закрывает его, чтобы убедиться в существовании файла.
OF_PARSE Заполняет структуру OFSTRUCT, но не выполняет никакого другого действия.
OF_PROMPT Показывает на экране диалоговое окно, если затребованный файл не существует. Диалоговое окно сообщает пользователю о том, что система не может найти файл и оно содержит кнопки Retry (Повторить) и Cancel (Отменить). Щелчок по кнопке Cancel предписывает функции LZOpenFile  возвратить сообщением об ошибке file not found (файл не найден).
OF_READ Открывает файл только для чтения.
OF_READWRITE Открывает файл для  чтения и записи.
OF_REOPEN Открывает файл, используя информацию в буфере повторного открытия.
OF_SHARE_DENY_NONE Открывает файл, не отказывая в доступе в файл для чтения или записи другим процессам. LZOpenFile завершается ошибкой, если файл открылся в режиме совместимости любым другим процессом.
OF_SHARE_DENY_READ Открывает файл и не  дает  доступ для чтения  в файле другим процессам. LZOpenFile завершается ошибкой, если файл открылся в режиме совместимости или открылся для доступа к чтению любым другим процессом.
OF_SHARE_DENY_WRITE Открывает файл и не  дает доступ для записи в него другим процессам. LZOpenFile завершается ошибкой, если файл открылся в режиме совместимости или открылся для доступа к записи любым другим процессом.
OF_SHARE_EXCLUSIVE Открывает файл в режиме монопольного использования, не давая, доступ ни  для чтения, ни  для записи в файле другим процессам. LZOpenFile завершается ошибкой, если файл открылся в любом другом режиме  доступа для чтения или записи, даже текущим процессом.
OF_WRITE Открывает файл только для записи.

Возвращаемые значения

Если функция завершается успешно, а значение, заданное параметром wStyle - не OF_READ, возвращаемое значение - дескриптор, идентифицирующий файл. Если файл сжимается и открывается с установленным флажком OF_READ в параметре wStyle, возвращаемое значение - специальный дескриптор файла.

Если функция завершается ошибкой, возвращаемое значение - код LZERROR_*. Эти коды имеют значения меньше чем нуль. Для этой функции дополнительной информации об ошибке нет; вызов GetLastError бесполезен.

Обратите внимание! на то, что функция LZOpenFile не вызывает ни функцию SetLastError, ни SetLastErrorEx; в соответствии с этим, её сбой не влияет на на код последней ошибки потока.

Ниже следует  список кодов ошибок, которые LZOpenFile  может возвратить при сбое в работе.

Значение Предназначение
LZERROR_BADINHANDLE Дескриптор, идентифицирующий исходный файл не допустим. Файл не может читаться.
LZERROR_GLOBALLOC Превышено максимальное количество открытых сжатых файлов или не может быть назначена локальная память.
 

Замечания

Если параметр wStyle имеет флажок OF_READ (или OF_READ и любой из флажков OF_SHARE_), и файл сжимается, LZOpenFile вызывает функцию LZInit, которая исполняет обязательную инициализацию для операций восстановления сжатых данных.

Дескриптор  возвращенный этой функцией совместим только с функциями в LzExpand.dll; он не должен использоваться для других файловых операций.

Windows NT/2000/XP: Если LZOpenFile не в состоянии открыть файл, заданный параметром lpFileName, она пытается открыть файл с именем близким к имени  файла, кроме последнего символа, который заменяет знаком подчеркивания ("_"). В соответствии с этим, если попытка открыть файл MyProgram.exe завершается ошибкой, LZOpenFile пробует открыть MyProgram.ex_. Инсталляционные пакеты часто занимают место подчеркивания последней буквой расширения имени файла, чтобы обозначить, что файл сжат. Например, файл MyProgram.exe в сжатом виде может быть назван MyProgram.ex_. Чтобы выяснить имя открытого файла  (если он имеется), проверьте член szPathName структуры OFSTRUCT в определенной в параметре lpReOpenBuf.

Смотри также 

Функции, используемые для распаковки файлов, LZClose, LZInit, LZRead, OFSTRUCT

Размещение и совместимость LZOpenFile

К

Windows XP

Да 

л

Windows 2000 Professional

Да

и

Windows NT  Workstation

Да

е

Windows Me

Да

н

Windows 98

Да

т

Windows 95

Да

 
С

Windows Server 2003

Да

е Windows 2000 Server Да
р Windows NT Server Да 
в    
е    
р    

Используемая библиотека

Lz32.lib

Используемая DLL -
 Заголовочный файл  

- объявлено в

Lzexpand.h

 - включено в

Windows.h

 Unicode

Реализуется как версии Unicode и ANSI в Windows NT/2000/XP.

 Замечания по платформе

Не имеется

 

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz