Ценность |
Значение |
-
fdintCABINET_INFO
- 0x00
|
Общие сведения о кабинете.
При установке этого значения структура FDINOTIFICATION заполняется следующими сведениями:
-
psz1 указывает на имя следующего кабинета (за исключением сведений о пути)
-
psz2 указывает на имя следующего диска.
-
psz3 указывает на имя пути к кабинету
-
setID равно идентификатору набора текущего кабинета
-
iCabinet будет равен номеру кабинета в наборе кабинетов (0 для первого кабинета, 1 для второго кабинета и т. д.)
Приложение должно вернуть значение 0, чтобы указать успешность или -1, чтобы указать сбой, что приведет к прерыванию ПИИCopy. Уведомление fdintCABINET_INFO будет предоставлено один раз для каждого кабинета, открытого ПИИCopy; сюда входят шкафы продолжения, открытые из-за файлов, охватывающих границы шкафов.
|
-
fdintPARTIAL_FILE
- 0x01
|
Первый файл в кабинете является продолжением файла из предыдущего кабинета.
При установке этого значения структура FDINOTIFICATION заполняется следующими сведениями:
-
psz1 указывает на имя файла, продолжающегося из предыдущего кабинета
-
psz2 указывает на имя шкафа, на котором существует первый сегмент файла.
-
psz3 указывает на имя диска, на котором существует первый сегмент файла.
Уведомление fdintPARTIAL_FILE вызывается для файлов в начале кабинета, который продолжался с предыдущего кабинета. Это уведомление будет происходить только в том случае, если ПИИCopy запущен на втором или последующем кабинете в серии, в котором файлы продолжались из предыдущего кабинета. Приложение должно возвращать значение 0 для успешного выполнения или -1, чтобы указать ошибку.
|
-
fdintCOPY_FILE
- 0x02
|
Сведения, определяющие скопированный файл.
При установке этого значения структура FDINOTIFICATION заполняется следующими сведениями:
-
psz1 указывает на имя файла в кабинете
-
cb будет равно несжатой размер файла
-
дата равно 16-разрядной дате MS-DOS файла
-
время равно 16-разрядному MS-DOS файла
- равно 16-разрядным атрибутам MS-DOS файла. Кроме того, флаг _A_NAME_IS_UTF задается, если имя файла должно быть интерпретировано как UTF-8.
Обратите внимание, что указанные выше члены приходят непосредственно из файла кабинета.
Если файл шкафа является вредоносным, имя может содержать недопустимые или вредоносные символы имени файла.
Приложение должно возвращать одно из трех значений; 0, чтобы пропустить (т. е. не копировать) файл; -1 (отрицательный) для прерывания ПИИCopy; или дескриптор ненулевого (и неотрицательного) файла, указывающий место записи файла. Дескриптор файла должен быть совместим с функцией PFNCLOSE, предоставленной ПИИCreate. Уведомление fdintCOPY_FILE вызывается для каждого файла, который начинается в текущем кабинете, предоставляя приложению возможность запрашивать копирование или пропуск файла.
|
-
fdintCLOSE_FILE_INFO
- 0x03
|
Закройте файл, задайте соответствующие сведения.
При установке этого значения структура FDINOTIFICATION заполняется следующими сведениями:
-
psz1 указывает на имя файла в кабинете
-
hf будет дескриптором файла (который был создан из fdintCOPY_FILE)
- дата даты равно 16-разрядной дате MS-DOS файла
-
время времени равно 16-разрядному MS-DOS файла
- атрибуты будут равны 16-разрядным атрибутам MS-DOS файла (минус _A_EXEC биту).
-
cb равно 0 или 1, указывая, следует ли выполнять файл после извлечения (1), или нет (0)
Это ответственность за выполнение файла, если cb равно 1. Уведомление fdintCLOSE_FILE_INFO вызывается после записи всех данных в целевой файл. Приложение должно закрыть файл (используя предоставленный hf дескриптор) и задать дату, время и атрибуты файла. Приложение должно возвращать TRUE для успешного выполнения и FALSE или -1 для прерывания ПИИCopy. ПИИ предполагает, что целевой файл был закрыт, даже если этот обратный вызов возвращает сбой; ПИИ не попытается использовать PFNCLOSE закрыть файл.
|
-
fdintNEXT_CABINET
- 0x04
|
Файл продолжался в следующем кабинете.
При установке этого значения структура FDINOTIFICATION заполняется следующими сведениями:
-
psz1 указывает на имя следующего кабинета, на котором продолжается текущий файл.
-
psz2 будет дескриптором файла (который был получен из fdintCOPY_FILE)
-
psz3 указывает на сведения о пути к кабинету
-
пии равно успешному или ошибке значению
Это уведомление вызывается только в том случае, если fdintCOPY_FILE предписывается скопировать файл, который продолжается из последующего кабинета, в текущий кабинет. Так как приложение может изменить имя шкафа, важно, чтобы имя пути к шкафу, указанное psz3, проверялось перед возвратом. Кроме того, приложение должно убедиться, что кабинет существует и доступен для чтения перед возвратом; При необходимости приложение должно отправить запрос на изменение диска, чтобы подтвердить.
Когда эта функция возвращается к ПИИ, ПИИ убедитесь, что setID и поля iCabinet предоставленного кабинета соответствуют ожидаемым значениям для этого кабинета. Если нет, ПИИ будет продолжать отправлять fdintNEXT_CABINET уведомления с полем FDIERROR_WRONG_CABINETпии пии FDIERROR_WRONG_CABINET, пока не будет указан правильный файл кабинета, или до тех пор, пока эта функция не вернет -1 и не прерывает вызов ПИИCopy. Если после возвращения из этой функции файл шкафа отсутствует, доступен для чтения или поврежден, поле пии будет равно одному из следующих значений:
-
FDIERROR_CABINET_NOT_FOUND
-
FDIERROR_NOT_A_CABINET
-
FDIERROR_UNKNOWN_CABINET_VERSION
-
FDIERROR_CORRUPT_CABINET
-
FDIERROR_BAD_COMPR_TYPE
-
FDIERROR_RESERVE_MISMATCH
-
FDIERROR_WRONG_CABINET
Если не было ошибки, пии будет равным FDIERROR_NONE. Приложение должно вернуть значение 0, чтобы указать успешность или -1, чтобы указать сбой, который будет прерывать ПИИCopy.
|
-
пиинтENUMERATE
- 0x05
|
Состояние перечисления.
|